あるデータエンジニアリングチームは、AWS Glue ETLジョブを使って日次でAmazon S3からAmazon Redshiftにデータをロードしています。データ品質を確保するため、以下の要件を満たすソリューションを検討しています。 ・ソースデータ内の特定カラムの欠損値率が5%を超えた場合はパイプラインを停止したい ・数値カラムの値が許容範囲外の場合もパイプラインを停止したい ・品質ルールはコードを変更せずにデータチームが独自に更新できるようにしたい ・追加のインフラ管理を避け、AWSマネージドサービスで実装したい 最も適切なアプローチはどれですか?
AWS Glue Data QualityはDQDL(Data Quality Definition Language)を使い、Completeness(欠損値率)やColumnValues(値の範囲)などのルールを宣言的に定義できます。EvaluateDataQualityアクションをGlue ETLジョブに組み込むことで、ルール違反時にジョブを失敗させてパイプラインを停止できます。DQDLルールはGlue Data Catalog上で管理され、コード変更なしに更新可能なため、すべての要件を満たします。 選択肢BのLambda + Pandasは機能的には実現可能ですが、ルールの更新にコード変更が伴い、インフラ管理も必要となるため要件を満たしません。 選択肢CのCloudWatch Metrics Insightsはメトリクスの可視化ツールであり、ETLジョブ内でデータを検証してパイプラインを制御する機能は持ちません。 選択肢DのGlue DataBrewのプロファイリングジョブはスタンドアロンで実行するものであり、ETLパイプライン内にインライン統合してパイプラインの成否を直接制御する用途には適していません。