データバリデーションの実装

HOME技術コラムデータバリデーションの実装

1. データバリデーションとは

データバリデーションとは、システムや業務で扱うデータが、あらかじめ定められた型や形式、制約(例:必須・範囲・桁数・フォーマット等)に合致しているかを、検証する仕組みや工程です。これにより、不適切なデータの登録や流入を未然に防ぐことができます。

メリット ・データ誤登録の防止
・システムの安定運用
・データ品質の維持

2. 処理仕様説明

DataSpiderにはデータチェック処理機能があり、エラーデータの詳細を取得することが可能です。
今回はDataSpiderを使用して、データバリデーションを行う手順を説明します。
処理フローと処理内容は以下の通りです。

読み取り
  • CSVファイル「/data/work/test/SalesData.csv」からデータを読み取る
データバリデーション
  • 読み取ったデータに対しデータチェック処理を実施する
  • チェック内容は、以下の通り
  • 1. 注文ID:必須項目
  • 2. 注文番号:4桁の数字
  • 3. 注文日:yyyy/MM/dd形式
  • 4. 商品コード:先頭1桁がアルファベット、残り3桁が数字
  • 5. 数量、金額:0以上の数値
書き込み
  • データチェック処理の条件に一致しないエラーデータの詳細を、
    CSVファイル「/data/work/test/SalesData_Error.csv」に書き込む

3. 前提

・DataSpiderファイルシステム上にCSVファイル格納フォルダが作成されていること

今回使用するCSVファイル「/data/work/test/SalesData.csv」の内容は以下の通りです。
入力元データは、下記の特徴があります。
・注文IDがNULL値で登録されているデータがある
・注文番号が最大桁数を超えるデータがある
・注文日、商品コードが指定の形式と不一致のデータがある
・数値が範囲外のデータがある
・金額が全角数値のデータがある
※全項目を必須項目とします。
CSVファイルの内容

4. プロジェクトとスクリプトの作成

プロジェクト、スクリプトを新規に作成します。

[プロジェクト名]:任意のプロジェクト名
[スクリプト名]:任意のスクリプト名

プロジェクトの作成 スクリプトの作成

【4-1】CSVファイルのデータ抽出

入力元データとなるCSVファイルの読み取り設定を行います。

ツールパレットから[ファイル]-[CSV]-[CSVファイル読み取り]を、スクリプトキャンバスにドラッグ&ドロップします。
CSVファイル読み取り

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

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

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

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

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

【4-2】データチェック処理(データバリデーション)

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

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

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

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

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

【4-3】データチェックエラー詳細取得

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

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

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

【4-4】CSVファイルへのエラー情報書き込み

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

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

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

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

【4-5】スクリプトの完成・実行

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

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

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

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

入力データ

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

お問い合わせ

  • 資料のご請求
  • 製品Q&A
  • 詳細説明希望
  • 製品デモ希望
  • 製品価格
  • その他

何でもお気軽にご質問ください

top