データバリデーションとは、システムや業務で扱うデータが、あらかじめ定められた型や形式、制約(例:必須・範囲・桁数・フォーマット等)に合致しているかを、検証する仕組みや工程です。これにより、不適切なデータの登録や流入を未然に防ぐことができます。
| メリット | ・データ誤登録の防止 |
|---|---|
| ・システムの安定運用 | |
| ・データ品質の維持 |
DataSpiderにはデータチェック処理機能があり、エラーデータの詳細を取得することが可能です。
今回はDataSpiderを使用して、データバリデーションを行う手順を説明します。
処理フローと処理内容は以下の通りです。
| 読み取り |
|
|---|---|
| データバリデーション |
|
| 書き込み |
|
・DataSpiderファイルシステム上にCSVファイル格納フォルダが作成されていること
今回使用するCSVファイル「/data/work/test/SalesData.csv」の内容は以下の通りです。
入力元データは、下記の特徴があります。
・注文IDがNULL値で登録されているデータがある
・注文番号が最大桁数を超えるデータがある
・注文日、商品コードが指定の形式と不一致のデータがある
・数値が範囲外のデータがある
・金額が全角数値のデータがある
※全項目を必須項目とします。

プロジェクト、スクリプトを新規に作成します。
[プロジェクト名]:任意のプロジェクト名
[スクリプト名]:任意のスクリプト名
入力元データとなるCSVファイルの読み取り設定を行います。
ツールパレットから[ファイル]-[CSV]-[CSVファイル読み取り]を、スクリプトキャンバスにドラッグ&ドロップします。

「CSVファイル読み取り処理」プロパティ設定ダイアログで、以下の通り設定を行います。
◎必須設定
[名前]:csv_read(任意)
[ファイル]:/data/work/test/SalesData.csv

[ファイルの一行目から列名を読み取り]をクリックします。

ファイルの選択画面が表示されるため、今回のデータ入力元CSVファイルである「/data/work/test/SalesData.csv」を選択し、[表示キャラセット]をWindows-31Jに設定します。
ファイルの中身が正常なことを確認し、[開く]を押下します。

列一覧に列名がセットされます。

[完了]を押下すると、プロパティ設定ダイアログが閉じ、「CSVファイル読み取り処理」アイコンがキャンパスに配置されます。

ツールパレットから「基本」-「データチェック」をスクリプトキャンバスにドラッグ&ドロップします。

「データチェック処理」プロパティ設定ダイアログで、以下の通り設定を行います。
◎必須設定
[名前]:data_check(任意)
[入力データ]:csv_read(4-1で作成したコンポーネント名)
[出力レコード]:条件に一致しないレコードのみ出力する

[追加]ボタンよりチェック項目の条件を追加します。
条件の設定内容は以下の通り。

◎条件評価設定
[複数条件の評価方法]を[AND評価]に設定します。
[AND評価]に設定することで、すべての条件を満たした場合のみチェックを通します。

[完了]を押下すると、プロパティ設定ダイアログが閉じ、「PostgreSQL書き込み処理」アイコンがキャンパスに配置され、マッピングの追加ダイアログが表示されます。
今回はマッピング不要のため、[いいえ]を押下します。

ツールパレットから「基本」-「データチェックエラー詳細取得」をスクリプトキャンバスにドラッグ&ドロップします。

「データチェックエラー詳細取得処理」プロパティ設定ダイアログが表示されます。
以下の通り設定を行い、[完了]を押下します。
[名前]:get_error_info(任意)

プロパティ設定ダイアログが閉じ、「データチェックエラー詳細取得処理」アイコンがキャンパスに配置されます。

ツールパレットから「ファイル」-「CSV」-「CSVファイル書き込み」をスクリプトキャンバスにドラッグ&ドロップします。

「CSVファイル書き込み処理」プロパティ設定ダイアログで、以下の通り設定を行います。
◎必須設定
[名前] : csv_write(任意)
[入力データ] : get_error_info(4-3で作成したコンポーネント名)
[ファイル] : /data/work/test/SalesData_Error.csv
[デリミタモード] : 一覧から選択
[デリミタ文字] : 半角カンマ
[列一覧] : 「追加」から列名を追加
[クォーテーション]にチェック

◎書き込み設定
[エンコード] : Windows-31J
[改行コード] : CR+LF
[上書き]、 [1行目に列名を挿入]にチェックを入れます。

[完了]を押下すると、プロパティ設定ダイアログが閉じ、「CSVファイル書き込み処理」アイコンがキャンパスに配置され、マッピングの追加ダイアログが表示されます。
今回はマッピング不要のため、[いいえ]を押下します。

処理の順番にプロセスフローを引きます。
(「Start」→「csv_read」→「data_check」→「get_error_info」→「csv_write」→「End」の順)

[プロジェクトの保存]を押下してプロジェクトを保存します。

[スクリプトの実行]を押下して処理を実行します。


エラーデータの詳細がCSVファイル「/data/work/test/SalesData_Error.csv」に書き込まれているか確認します。


※入力元データ

エラーデータの詳細情報が出力されていることが確認できました。
以上が、マッピング内でデータバリデーションを行う手順の説明になります。
何でもお気軽にご質問ください