DEAデータオペレーションとサポート
あるデータエンジニアリングチームは、毎日Amazon S3に配信される販売データをAmazon Redshiftにロードする前に、自動的なデータ品質チェックをパイプラインに組み込みたいと考えています。チームが定義したいルールは以下の通りです:
・受注金額列のNULL値の割合が5%以下であること
・顧客IDが正の整数であること
・当日のレコード数が前日比±20%以内であること
ルール違反が検出された場合はパイプラインを停止させ、違反の詳細をAmazon S3に記録したい。最も適切な実装方法はどれですか?
AAWS Glue DataBrewのプロファイリングジョブでデータ品質スコアを取得し、AWS Step Functionsで閾値チェックを行ってパイプラインを制御する
DataBrewはビジュアルなデータ準備・探索ツールであり、ETLパイプラインへの品質チェックの組み込みやルール違反時のパイプライン停止制御には対応していません。Step Functionsとの組み合わせでも複雑な追加構成が必要です。
BAWS Lambda関数でバリデーションロジックを実装し、Amazon S3イベント通知でデータ着荷時に自動起動する
Lambdaによるカスタム実装は技術的に可能ですが、3つのルール定義・S3への違反詳細記録・パイプライン停止制御をすべて自前実装する必要があり、ルール追加・変更のたびにコード修正が発生して運用負荷が高くなります。
CAWS Glue Data Quality(DQDL)でルールセットを定義し、Glue ETLパイプラインの「Evaluate Data Quality」ノードとして組み込む
✓ 正解
DQDLでNULL率・値域・レコード数変動の3ルールを宣言的に定義し、「Evaluate Data Quality」ノードとしてGlueパイプラインに組み込めます。違反時のパイプライン停止とS3への結果出力もネイティブに設定可能で、要件をすべて満たします。
DAmazon CloudWatch Logs Insightsのスケジュールクエリでデータ品質メトリクスを定期抽出し、閾値超過時にSNSアラームを発行する
CloudWatch Logs Insightsはログの事後分析ツールであり、データロード前にリアルタイムでデータ品質を評価してパイプラインを即座に停止させる機能を持ちません。定期スキャンのため検出タイミングの遅延も避けられません。
解説
AWS Glue Data QualityはData Quality Definition Language(DQDL)を使用してデータ品質ルールを宣言的に定義できるマネージドサービスです。「ColumnNullness 'amount' < 0.05」「ColumnValues 'customer_id' > 0」「RowCountMatch」などのルールをDQDLで記述し、Glue Studioパイプラインの「Evaluate Data Quality」ノードとして組み込めます。評価結果はS3に出力でき、品質スコアはCloudWatchメトリクスとして発行できます。ルール違反時に「FAIL」モードでパイプラインを停止させる設定も可能で、要件をすべて満たします。
選択肢AのAWS Glue DataBrewはビジュアルなデータ準備ツールであり、プロファイリング機能はあるものの、ETLパイプライン内でのリアルタイムな品質評価とパイプライン停止制御はできません。
選択肢BのAWS Lambdaはカスタム実装として可能ですが、バリデーションルールの管理・S3記録・CloudWatch連携をすべて自前で実装する必要があり、運用負荷が高くなります。
選択肢DのAmazon CloudWatch Logs Insightsはログ事後分析ツールであり、データロード前にリアルタイムで品質を評価してパイプラインを停止させる機能はありません。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDEAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →