無限ノック › DEA 練習問題一覧 › 問題
DEAデータオペレーションとサポート

あるデータエンジニアリングチームは、毎日 AWS Glue ETL ジョブを実行して販売トランザクションデータを処理し、Amazon Redshift にロードしています。以下の要件を満たすデータ品質検証の仕組みを導入したいと考えています。 ・order_id カラムにNULL値が含まれていないこと(完全性チェック) ・transaction_amount カラムが正の値のみであること(範囲検証) ・email カラムが有効な形式に一致していること(フォーマット検証) ・全体のデータ品質スコアが80%を下回った場合はETLジョブを失敗させること 最も少ない運用オーバーヘッドでこれらの要件を満たすアプローチはどれですか?

A
Glue ETLスクリプトにPythonのアサーション文と正規表現チェックを追加し、検証失敗時は例外を発生させる
Pythonアサーションは実装可能ですが、ルール管理・レポート生成・スコア計算を自前で実装する必要があり、運用負荷が大きくなります。
B
AWS Glue Data Quality の DQDL(Data Quality Definition Language)ルールを使用した EvaluateDataQuality トランスフォームを Glue ジョブに組み込み、品質スコアの閾値に基づいてジョブを制御する
✓ 正解
AWS Glue Data Quality は DQDL を使ってデータ品質ルールを宣言的に定義できるマネージドサービスです。EvaluateDataQuality トランスフォームをワークフローに組み込むことで、ルール評価・スコア算出・閾値判定・ジョブ制御をほぼコードなしで実現できます。Completeness(完全性)・ColumnValues(数値範囲)・ColumnValues matches(正規表現)などの標準ルールが用意されており、スコアが80%未満の場合にジョブを失敗させる設定も容易に行えます。
C
Amazon Deequ ライブラリをカスタムライブラリとして Glue ジョブに追加し、制約を定義して検証レポートをS3に生成する
Amazon Deequ はオープンソースライブラリで機能は豊富ですが、カスタムライブラリ管理やレポートパイプラインの整備が必要で、マネージドサービスに比べ運用負荷が増大します。
D
Glue ジョブ完了後に AWS Lambda 関数を起動し、Redshift に対してデータ検証クエリを実行する
Lambdaによる事後検証は、不正データが既にRedshiftに取り込まれた後に実行されるため、ETLパイプラインを事前に止めることができず、データ修正コストが増大します。

解説

AWS Glue Data Quality は DQDL を使ってデータ品質ルールを宣言的に定義できるマネージドサービスです。EvaluateDataQuality トランスフォームをワークフローに組み込むことで、ルール評価・スコア算出・閾値判定・ジョブ制御をほぼコードなしで実現できます。Completeness(完全性)・ColumnValues(数値範囲)・ColumnValues matches(正規表現)などの標準ルールが用意されており、スコアが80%未満の場合にジョブを失敗させる設定も容易に行えます。 選択肢AのPythonアサーションは実装可能ですが、ルール管理・レポート生成・スコア計算を自前で実装する必要があり、運用負荷が大きくなります。 選択肢CのAmazon Deequ はオープンソースライブラリで機能は豊富ですが、カスタムライブラリ管理やレポートパイプラインの整備が必要で、マネージドサービスに比べ運用負荷が増大します。 選択肢DのLambdaによる事後検証は、不正データが既にRedshiftに取り込まれた後に実行されるため、ETLパイプラインを事前に止めることができず、データ修正コストが増大します。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDEAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← DEA の問題一覧に戻る