DEAデータの取り込みと変換
あるeコマース企業は、AWS Glue ETLジョブで受注データをAmazon S3のデータレイクに書き込む前に、データ品質の自動検証を実施したい。「注文金額が0以上」「顧客IDがNULL以外」「配送先郵便番号が7桁の数値」というルールを設け、違反したレコードは隔離バケットに書き出し、ルールを通過したレコードのみデータレイクに投入する仕組みを構築したい。Glueの機能を最大限に活用しながら最小限の追加コンポーネントで実現するにはどれか。
AAWS Glue ETLジョブのPySparkコードにカスタムバリデーション関数を実装し、違反レコードをフィルタリングして別S3パスに書き込む
PySpark実装によるカスタムバリデーションは機能的には実現できますが、品質ルールをETLコードに埋め込むため、ルール変更のたびにコードの修正とデプロイが必要です。Glue Data Qualityの宣言的なルール管理と比べて保守コストが高くなります。
BAWS Glue Data Qualityルールセットをジョブに組み込み、QUARANTINEアクションで違反レコードを隔離バケットへ自動振り分ける
✓ 正解
AWS Glue Data QualityはDQDLでルールを宣言的に定義し、Glue ETLジョブと統合してレコード単位のバリデーションを行います。QUARANTINEアクションにより違反レコードを隔離バケットへ自動振り分けることができ、ルールとETLコードを分離して管理できます。
CAmazon CloudWatch Metricsでデータ件数や値域のカスタムメトリクスを収集し、アラームが発火したらAWS Lambdaで違反レコードを再処理する
CloudWatch MetricsとLambdaの組み合わせはデータ品質の監視・通知には有効ですが、ETLパイプライン内でリアルタイムにレコード単位の品質チェックを行い、その結果に基づいて即時に振り分ける用途にはアーキテクチャとして適していません。
DAWS Glue Crawlerをジョブ完了後に実行し、スキーマの不一致を検出して品質の低いレコードを別バケットに自動移動する
AWS Glue Crawlerはデータのスキーマを自動検出してData Catalogを更新するサービスです。レコード単位のデータ品質バリデーション(値の範囲チェック、NULL検証、フォーマット確認)や違反レコードの隔離機能は持っていません。
解説
選択肢BのAWS Glue Data Qualityは、DQDL(Data Quality Definition Language)を使ってデータ品質ルールを宣言的に定義できる機能です。ルールセットをGlue ETLジョブに統合し、各レコードに対してルール評価を行い、違反したレコードにQUARANTINEアクションを設定することで、自動的に隔離用S3バケットへ振り分け、合格レコードのみをデータレイクに書き込めます。ルールをETLコードと分離して管理でき、変更・再利用も容易です。
選択肢AのカスタムPySparkコードによるバリデーションも機能的には同等の結果が得られますが、バリデーションロジックをETLコードに埋め込む必要があり、ルールを変更するたびにコードの修正とデプロイが必要です。Glue Data Qualityと比べて宣言的な管理のしやすさで劣ります。
選択肢CのCloudWatch+Lambda構成は監視・通知には有効ですが、ETLパイプライン内でレコード単位のリアルタイム品質チェックと振り分けをインラインに実行する用途としては適切な構成ではありません。
選択肢DのAWS Glue CrawlerはS3をスキャンしてスキーマを推論しData Catalogを更新するサービスであり、レコード単位のデータ品質チェックや値の検証・違反レコードの隔離機能は持ちません。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDEAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →