DEAデータオペレーションとサポート
あるデータエンジニアリングチームは、毎日Amazon S3に届く取引データをAWS Glue ETLジョブで加工しAmazon Redshiftにロードしています。ロード前にnullチェック・一意性・数値範囲などのデータ品質検証を行い、品質スコアが閾値を下回った場合は後続のロードを自動的に停止したいと考えています。追加の運用負荷を最小限にしつつ、これを実現する方法はどれですか。
AAWS Glue Data QualityでDQDLルールセットを定義し、ETLジョブ内のEvaluateDataQualityで評価して閾値未満なら後続を停止する
✓ 正解
DQDLでnull・一意性・範囲のルールを宣言的に定義し、EvaluateDataQualityトランスフォームでジョブ内評価できる。スコアが閾値未満ならジョブを失敗させ後続ロードを停止でき、追加基盤不要で運用負荷も最小に抑えられる。
BAWS Glueクローラーを定期実行してスキーマの変更を検知し、変更が検出された場合にETLジョブの実行を中止する
クローラーはS3やJDBCのスキーマとパーティションをData Catalogに登録する機能で、行レベルのnullや数値範囲といったデータ品質の検証はできず、品質スコアに基づく自動停止も実現できない。
CAWS Glue DataBrewのプロファイルジョブで列統計を生成し、担当者が毎日ダッシュボードを目視確認してから手動でロードする
DataBrewのプロファイルジョブは列統計の可視化には有効だが、担当者の目視確認と手動ロードが前提となり自動停止にならない。日次運用に人手が介在し続けるため運用負荷最小の要件を満たさない。
DLambda関数でレコードごとにnullや数値範囲を検証するカスタムスクリプトを実装し、結果をDynamoDBに記録して集計する
Lambdaでの独自検証はスクリプトの保守、同時実行制御、大量レコード処理のスケーリングをすべて自前で担う必要があり運用負荷が増大する。マネージドな品質評価機能を持つ手段が存在するため最適ではない。
解説
AWS Glue Data Qualityは、DQDL(Data Quality Definition Language)でnull率・一意性・値の範囲などのルールを宣言的に定義でき、Glue ETLジョブ内のEvaluateDataQualityトランスフォームとして組み込めます。
評価結果(スコアや行レベルの合否)を分岐に使い、閾値未満ならジョブを失敗させて後続のロードを止められるため、追加基盤なしで自動化と最小運用を両立できます。
選択肢Bのクローラーはテーブルのスキーマ・パーティションを検出する機能であり、行データのnullや範囲などの品質検証はできない。
選択肢CのDataBrewプロファイルは統計取得には有効だが、目視確認と手動ロードが前提で自動停止にならず運用負荷も増える。
選択肢DのLambdaカスタム実装はスクリプトの保守・スケーリング・大量データ処理の負荷が大きく、運用負荷最小の要件に反する。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDEAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →