AWS認定資格 WEB問題集&徹底解説

データエンジニア-アソシエイト

正解 C問題
分野3:データ運用とサポート タスクステートメント3.4:データ品質の確保
合格に向けて、もっと深く学習する
豊富な問題と詳細なAWSサービス解説を、24時間無料でお試しいただけます
プレミアム会員機能を無料で試す ❯
問題文と選択肢
ある製造業の企業は、工場に設置したIoTセンサーから収集した稼働ログを AWS Glue の ETL ジョブで処理し、Amazon S3 のデータレイクに Parquet 形式で格納しています。データエンジニアは、格納前に「タイムスタンプが ISO 8601 形式であること」「必須項目である機器IDに欠損値がないこと」といったルールを検証し、違反したレコードを検知したいと考えています。

追加のジョブや外部ツールを構築せず、Glue ETL ジョブの中でこの検証を組み込みで実現するにはどうすればよいですか。
  • AWS Glue Schema Registry でスキーマバージョンを固定し、互換性のないレコードを拒否する
  • AWS Glue Crawler を定期実行してテーブル定義を再クロールし、スキーマの差分を検知する
  • AWS Glue Data Quality を使用し、DQDL ルールセットで欠損値やフォーマット逸脱を自動的に検証する
  • AWS Glue Job Bookmarks を有効化し、前回処理済みのレコードのみを次回実行時にスキップする
解説 頻出度★★★★
この問題は、「ETL ジョブの中で × レコード単位のルール検証 × 追加のジョブやツールを作らない」という要件から、AWS Glue に組み込みのデータ品質機能(DQDL ルールセット)を選べるかがポイント

A. AWS Glue Schema Registry でスキーマバージョンを固定し、互換性のないレコードを拒否する

AWS Glue Schema Registry は、Kinesis や MSK などのストリーミングデータについてスキーマ(フィールド構成やデータ型)のバージョンと互換性を集中管理する機能です。プロデューサー/コンシューマーが想定外の構造のデータを流し込むことを防ぐのが役割です。

そのため「型は string だが ISO 8601 形式になっていない」「機器ID の値が欠損している」といったレコードの中身の妥当性は判定できません。構造は正しいまま品質だけが悪いデータは素通りしてしまいます。

B. AWS Glue Crawler を定期実行してテーブル定義を再クロールし、スキーマの差分を検知する

AWS Glue クローラーは S3 などのデータストアをスキャンしてData Catalog のテーブル定義(スキーマ・パーティション)を自動生成・更新するコンポーネントです。検知できるのはスキーマの追加・変更といった構造レベルの差分にとどまります。

また、クローラーはデータを S3 に格納した後で走らせるものなので、「格納前に検証して違反レコードを検知したい」という本問のタイミング要件を満たしません。定期実行のジョブを別に組む点でも「追加のジョブを構築しない」という条件に反します。

正解

C. AWS Glue Data Quality を使用し、DQDL ルールセットで欠損値やフォーマット逸脱を自動的に検証する

AWS Glue Data Quality は、DQDL(Data Quality Definition Language) でルールセットを記述し、Glue ETL ジョブ内の「Evaluate Data Quality」変換として品質チェックを実行できる組み込み機能です。Data Catalog のテーブルに対しても、ジョブ内のデータに対しても評価できます。

DQDL には IsComplete(欠損値がないこと)、ColumnValues、ColumnDataType、ColumnLength といったルールタイプが用意されており、「機器ID に欠損がないこと」「タイムスタンプが所定のフォーマットであること」をそのまま宣言的に表現できます。

評価結果(合格/不合格)に応じてジョブを失敗させる、あるいは違反レコードだけを別の出力先に振り分けるといった動作も設定でき、外部ツールや検証専用ジョブを追加せずに ETL ジョブの中で検証を完結できます。

D. AWS Glue Job Bookmarks を有効化し、前回処理済みのレコードのみを次回実行時にスキップする

Glue ジョブブックマークは、ジョブが前回どこまで処理したかを記録し、次回実行時に未処理データだけを対象にするための状態管理機能です。増分処理と重複処理の防止が目的です。

データの中身が正しいかどうかはまったく評価しないため、欠損値やフォーマット逸脱の検知には使えません。選択肢の記述にある「処理済みのレコードをスキップする」という動作自体は正しいものの、要件そのものが違います

これだけ覚える(記憶フック)
「欠損値・フォーマット違反の検知」= Glue Data Quality(DQDL)。Schema Registry は「型・構造」、Data Quality は「中身」。
正解への思考ルート 問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。
要件 判断ポイント
格納前にレコード単位のルール(欠損値なし・ISO 8601 形式)を検証したい 値の中身を宣言的なルールで評価できるのは AWS Glue Data Quality の DQDL(IsComplete、ColumnValues 等)
→選択肢(C)が正解
検証対象は「型・構造」ではなく「値の妥当性」 Schema Registry が守るのはスキーマの互換性。構造が正しいまま値が不正なデータは検知できない
→選択肢(A)を消す
追加のジョブや外部ツールを構築しない クローラーの定期実行は別スケジュールのジョブを増やすうえ、検知できるのはスキーマ差分だけ
→選択肢(B)を消す
「違反したレコードを検知する」という目的 ジョブブックマークは増分処理のための状態管理であり、品質評価の機能を一切持たない
→選択肢(D)を消す
Glue ETL ジョブの中に組み込みで実現する Data Quality は Glue Studio の Evaluate Data Quality 変換としてジョブのフローに直接差し込める
→選択肢(C)が正解
ひっかけポイント
  • 「Schema Registry でスキーマを固定すれば不正データを弾ける」と読めてしまうのが最大の罠。弾けるのはスキーマ互換性に反するレコードだけで、「機器ID が空文字/NULL」「タイムスタンプが独自形式」のように型は合っているが品質が悪いデータは通過する
  • クローラーは格納済みデータを読んでカタログを更新する後追いの仕組み。「格納前に検証したい」という時系列の要件と噛み合わない
  • ジョブブックマークの説明文自体は正しいため見逃しやすいが、正しい説明=要件に合う、ではない。設問が問うているのは品質検証であって増分処理ではない
  • 「追加のジョブや外部ツールを構築せず」という条件が、Lambda での自作チェックや Deequ の自前実装といった手作り案を排除している。組み込み機能を探せという誘導と読む
出題バリエーション 同じ知識が本番では条件を変えて出題されます。
問題文がこう変わったら 正解はこう変わる
「変換前のデータを対話的にプロファイリングし、GUI でクレンジングのルールを作りたい」 AWS Glue DataBrew が正解軸に(ノーコードのデータ準備・プロファイル)。
Kinesis / MSK のストリームで、プロデューサーが想定外のスキーマを送るのを防ぎたい」 AWS Glue Schema Registry が正解に。スキーマ互換性の管理が主題になる。
「品質チェックに不合格だったレコードだけを別の S3 プレフィックスに退避したい」 Glue Data Quality の行レベル評価結果(新しい列)で分岐させる構成が問われる。
「S3 に格納済みのテーブルの品質を定期的に評価し、スコアを CloudWatch で監視したい」 Data Catalog のテーブルに対する Data Quality ルールセットのスケジュール実行+メトリクス監視が正解軸に。
「新しいファイルだけを毎回処理し、同じデータの二重処理を避けたい ジョブブックマークが正解に変わる(本問の選択肢 D が答えになる問題文)。
関連サービスの解説 Amazon Simple Storage Service (Amazon S3)
AWS Glue
+ 質問 / コメント
解答・解説に疑問がある場合や、よりよい解説がある場合など、お気軽にコメントください。ただし、短文コメントは表示されません。また、中傷などコメントの内容によっては、会員機能を停止させて頂きます。教え学び合える場になれば嬉しいです。(コメント投稿にはログインが必要です)
正答率 0%
No.17 解説
ある製造業の企業は、工場に設置したIoTセンサーから収集した稼働ログを AWS Glue の ETL ジョブで処理し、Amazon S3 のデータレイクに Parquet 形式で格納しています。データエンジニアは、格納前に「タイムスタンプが ISO 8601 形式であること」「必須項目である機器IDに欠損値がないこと」といったルールを検証し、違反したレコードを検知したいと考えています。

追加のジョブや外部ツールを構築せず、Glue ETL ジョブの中でこの検証を組み込みで実現するにはどうすればよいですか。
  • AWS Glue Schema Registry でスキーマバージョンを固定し、互換性のないレコードを拒否する
  • AWS Glue Crawler を定期実行してテーブル定義を再クロールし、スキーマの差分を検知する
  • AWS Glue Data Quality を使用し、DQDL ルールセットで欠損値やフォーマット逸脱を自動的に検証する
  • AWS Glue Job Bookmarks を有効化し、前回処理済みのレコードのみを次回実行時にスキップする

(会員限定)当問題の評価をお願いします。改善に活用します。