データ分析基盤におけるデータ品質の管理(2)- AWS Glueによるデータ品質評価プロセスの実装例
重要:個人情報や機密情報の使用に関する注意喚起(必ずお読みください)
当検証で紹介している技術やサービスの使用は、読者の皆様自身の判断と責任で行ってください。特に、個人情報や機密情報を含むデータの取り扱いについては、最大限の注意を払い、適切なセキュリティ対策を講じることが不可欠です。
検証や実際の利用を行う際には、常にプライバシー保護の法律、規制、およびベストプラクティスを遵守するよう心掛けてください。また、第三者のデータを使用する場合は、必要な同意を得ること、及びそのデータの使用が法律に準じていることを確認することが重要です。
本ブログや筆者、所属する団体は、紹介する技術を用いて行われるいかなる活動から生じる直接的または間接的な損害に対して、責任を負いかねます。技術を使用することによって生じ得るリスクを理解し、自己の責任で慎重にご活用ください。
ご不明点や懸念がある場合は、クラウドベンダーや専門家に相談することをお勧めします。
当検証の情報を活用することで、読者の皆様が新たな知識やスキルを安全に身に付け、ビジネスでの活用をすすめていただければ幸いです。

本投稿では、「データ分析基盤におけるデータ品質の管理(1)- データ品質の評価基準」を基に、実際のETLツールの品質チェック機能を利用して、品質評価基準「正確性」「完全性」「整合性」の一部について評価プロセスを実装し、その検証を行います。
検証概要
想定される利用局面は、エンタープライズデータウェアハウスに顧客データを登録する際に、データ内容をチェックする機能です。概念的なフローは下図の通りです。

この機能を実現するために、Amazon Web ServiceのS3とGlueの機能を使って、下図のような構成を行います。

検証内容詳細
検証データ仕様
検証対象の入力データとして、次の簡易サンプルを使用します。
- ファイル仕様
- ファイル形式:CSV
- 文字コード:UTF-8
- 項目定義とルール
- データ内容 データ内容は下表のとおりです。上記ルールに基づくエラー値は黄色いセルと赤い文字で表しています。
項目名 | カラム名 | 説明 | ルール |
---|---|---|---|
顧客コード | custCode | 顧客を表す識別子 | ・データ内でユニーク ・先頭アルファベット+6桁の数値 |
性別 | gender | 性別をあらわす記号(F:女性、M:男性、N:無回答、その他) | F,M,Nのいずれか |
姓 | lastName | 姓(英名) | すべての文字が大文字小文字のA-Zで構成される |
名 | firstName | 名(英名) | すべての文字が大文字小文字のA-Zで構成される |
生年月日 | birthDate | 生年月日 | 日付の型、1900/01/01以降の値 |
都道府県コード | prefCode | 居住地の都道府県コード | 参照データ「都道府県」に存在する値 |

実行結果
上記のジョブの実行により、次の3つのファイルが出力されました。
- エラーデータ 品質チェックの結果、問題が認められたため、運用者などにより対応が必要なデータとなります。結果のうち1件を取り出します。
- DataQualityEvaluationResult(3行目) 値”Failed”により、このレコードには何らかのエラーがあると評価されました。
- DataQualityRulesFail(6行目) エラーの原因となったチェックルールを表しています。 例えば、「"custCode": "AAAA003"」は、顧客コードのルールである「先頭アルファベット+6桁の数値」に違反しています。
- DataQualityRulesPass(12行目) このレコードはエラーとなりましたが、これらのルールには則っていることを表しています。
- 正常データ 品質チェックの結果、問題が認められなかったため、このあとのデータウェアハウスやデータマートへの連携対象となるデータです。
- DataQualityEvaluationResult(3行目) 値”Passed”により、このレコードにはエラーがないことを表しています。
- 結果のサマリ 実行結果のサマリは次の通り出力されます。 指定した各ルールに対して、合格した割合を表しています。
まとめ
本稿では、実際のETLサービスを利用して一部のデータ品質評価プロセスを検証しました。AWS Glueの中のData Qualityは新しい機能ですが、今回の検証では実装していないデータ品質評価プロセスを実現する機能も備わっていることがわかりました。これにより、エンタープライズDWHの実現において、データ品質評価プロセスの実装に関してもAWS Glueが有力な選択肢の一つであると感じました。
検証時には以下の点が気になりましたが、今後改善されることが期待されます。
- ルール定義時に日本語の項目名が指定不可
- 一部の機能ノードが正常に動作しない現象
- ルールを事前に定義して再利用できるようになると便利。