予期しないデータ型のパイプライン内でのハンドリング方法
データソースからくるデータがいつも期待したデータが必ず送られてくるとは限りません。そういったケースでは、パイプライン内でデータの品質を保証することができます 例えば、CSVで以下のようなデータを扱う場合、「価格」列に期待される値は数値です。しかし、実際のデータは数値ではない、「500円」や「値なし」といったデータが入ってきたとします。| No | Name | Status | Menu | Price |
|---|---|---|---|---|
| 1 | 山田 | OK | ハンバーグ | 500 |
| 2 | 田中 | NG | カレー | 500円 |
| 3 | 佐藤 | OK | 焼肉 | 300 |
| 4 | 齋藤 | NG | サラダ |
- 不正なデータをフィルタし、除外する
- 不正なデータがあった場合、ジョブをエラーで中止とする
フィルタ機能で不正な価格データ検知する
まず、不正なデータを検知し、除外する場合、Filterコンポーネントを使用します。
^[+-]?[0-9]+$
この場合、結果として上記の表の「ステータス=NG」のデータは、フィルタ条件に該当しないため、フィルタで除外されジョブの結果は以下のようになります。


アサート機能で不正な価格データを検知し、ジョブをエラー終了する
Assertコンポーネントは、条件にマッチした場合、ジョブをエラーとして中断する機能です。条件設定画面は、Filterと同様の設定画面なので、ここでは割愛しますが、条件にマッチした場合にエラーとしてジョブを終了させたい場合に便利です。また、以下のようにエラーメッセージを指定することが可能です。