はじめに
みなさんは、利用したいデータを見つけたけれど、データ内容が思ったような値でなくて、該当データの検索やクレンジング処理に時間がかかった!という経験はないでしょうか?
今回は、そんな手間を少しでも省くために、HULFT Squareを利用したデータチェック方法をご紹介したいと思います。
今回やってみること
データチェックを行いたいデータは以下のようなCSVファイルとなっています。
発注番号,発注日,発注先,品目,金額
A0000001,20250101,A株式売社,商品A,100000
B0000002,20250229,B株式売社,商品B,200000
C0000003,99999999,C株式売社,商品C,300000
D0000004,00000000,D株式売社,商品D,400000
E0000005,20250930,E株式売社,商品E,500000
2列目の「発注日」には、正しい日付ではないデータが混在しています。
このようなデータがあると、「2025/01/01」というように成型したくても、加工処理でエラーになってしまう可能性があります。
そのような事態を避けるために、今回は、以下のように日付のデータかをチェックして、正しい日付なら「OK」を正しくなければ「NG」をレコードの末尾の項目にセットして、後でデータの振分ができるように出力ファイルを作成します。
スクリプトの作成
加工処理の前にエラー候補のデータを選定したり、大量のデータの中から利用できるレコードの件数を調査したりするのに有効なのが「データチェック」アイコンとなります。
早速、「データチェック」アイコンを利用したスクリプトを作成してみましょう。
1.デザイナを開き、CSVファイルを読み取りアイコンを使って、入力ファイルを読み取ります。
[ツールパレット] より、 [ファイル]-[CSV]-[CSVファイル読み取り] アイコンを選択しドラッグ&ドロップしてスクリプトキャンパスへ配置します。
「CSVファイル読み取り」に必要な入力ファイルのファイル名を設定し、[列一覧の更新]メニューなどを利用して、列名をセットします。
2.データチェックアイコンを配置し、チェックしたい内容を設定していきます。
[ツールパレット] より、 [基本]-[処理]-[データチェック] アイコンを選択しドラッグ&ドロップしてスクリプトキャンパスへ配置します。
➀ 追加ボタンを押下して入力用レコードを追加します。
② チェックしたい項目が入力ファイルの何列目なのかを設定します。
③ 該当列の型を選択します。以下から選択できますが、今回は日付データのチェックを行いたいので、「日付/時間」を選択します。
・文字列(文字数)
・文字列(バイト数)
・整数
・10進数
・日付/時間
④ 日付データのフォーマットを設定ます。「DF=」の後に今回の日付データがどのような形式で格納されているかを記載します。西暦年4桁+月2桁+日2桁で格納されているべきなので、「DF=yyyyMMdd」と記載します。
この日付のフォーマットの定義方法は以下を参考にしてください。
SimpleDateFormatについては、
「Java(TM) Platform, Standard Edition 8 API Specification」
を参照してください。
日付や時間のフォーマットだけではなく、数値なら、10000~50000の値だけをOKとするなどの設定も可能ですし、正規表現に該当する値だけをOKとすることも可能です。
実は、「Mapping」アイコンの中にも多くのロジックアイコンが用意されているので、同様の処理を作ることもできるのですが、アイコンの数が多くなってメンテナンスしにくくなることがあります。
状況に合わせて使い分けを行ってください。
⑤ 出力レコードは以下の3種類から選択できます。
・条件に一致するレコードのみ出力する
・条件に一致しないレコードのみ出力する
・すべてのレコードとチェック結果を出力する
今回は、「すべてのレコードとチェック結果を出力する」 を選択します。
これを設定すると、出力ファイルの列の末尾に結果を出力する列を作成しておくことで、チェックの結果によって「OK」か「NG」が自動的に格納されます。
また、複数の列をチェックするように設定した場合、以下の画面のように「条件評価設定」画面にて評価方法などの詳細を設定することができます。
3.CSVファイル書き込みアイコンを使って、出力ファイルを設定します。
[ツールパレット] より、 [ファイル]-[CSV]-[CSVファイル書き込み] アイコンを選択しドラッグ&ドロップしてスクリプトキャンパスへ配置します。
「CSVファイル書き込み」に必要な出力ファイルのファイル名を設定し、[列一覧の更新]メニューなどを利用して、列名をセットした後、末尾に新しい項目を追加します。今回は「チェック結果」という列を追加します。
4.StartアイコンからEndアイコンまで順番に線を引いてスクリプトを完成させます。
5.スクリプトを実行してみましょう。
6.結果は??
CSV書き込みアイコンを開いてプレビューしてみましょう。
想定通り1行目と5行目のレコードのチェック結果が「OK」で、2~4行目のチェック結果が「NG」となっています。
「データチェック」と「CSVファイル書き込み」の間に「Mapping」アイコンを挟むことで、チェック結果を利用して加工処理を行うことも可能です。
とっても簡単ですよね!
このアイコンを活用することで、より品質の高いデータを利用することが可能になると思います。
実は、DataSpider Servistaでも同じことができるんですよ!
ぜひ、ご活用くださいね!











