DEAデータの取り込みと変換
あるデータエンジニアは、Amazon S3のデータレイクに継続的に追加されるファイルをAWS Glue ETLジョブで処理しています。ジョブは毎時実行されますが、現在は毎回バケット内の全ファイルを再処理しており、データ増加に伴い実行時間とコストが増大しています。新規・変更分のファイルのみを処理して効率化するために、最小の追加実装で実現できる方法はどれですか。
AGlueジョブのジョブブックマークを有効化し、前回処理済みの状態を追跡して新規データのみ処理する
✓ 正解
ジョブブックマークは処理済みデータの位置を状態として保持し、次回実行時にS3の新規・変更ファイルのみを自動処理し処理済みをスキップします。設定で有効化するだけで追加インフラ不要のため、最小の実装で増分処理を実現できます。
BS3イベント通知でSQSキューに新規オブジェクトを送り、Lambdaが対象ファイルパスをGlueに渡す
S3イベント通知・SQS・Lambdaを組み合わせれば増分処理は可能ですが、複数サービスの構築と連携実装が必要になり、最小の追加実装という条件に反します。
CGlueクローラーを毎時実行してカタログを更新し、パーティション射影で最新分のみクエリする
クローラーはData Catalogのスキーマやパーティション情報を更新する役割であり、ETLジョブが再処理するデータ範囲を制御する仕組みではないため、全件再処理の問題を解決できません。
Dジョブ内でファイルの最終更新タイムスタンプを比較し、過去1時間以内のファイルだけ手動でフィルタする
ファイルの最終更新タイムスタンプを手動比較する方式は、遅延到着ファイルの取りこぼしリスクや独自フィルタの実装・保守負荷が大きく、ジョブブックマークに比べ信頼性と効率で劣ります。
解説
AWS Glueのジョブブックマークは、ジョブの実行状態(処理済みデータの位置)を保持し、次回実行時に前回以降の新規・変更データのみを処理する機能です。
S3ソースの場合、オブジェクトの追加を追跡し、すでに処理したファイルを自動的にスキップします。
ジョブの設定でブックマークを有効化するだけで実現でき、追加のインフラ実装が不要なため最小の実装で増分処理が可能です。
選択肢Bの S3イベント通知+SQS+Lambda は増分処理を実現できるが、複数サービスの構築が必要で「最小の追加実装」に反する。
選択肢Cの Glueクローラー はカタログのスキーマ・パーティション更新が役割であり、ETLジョブの再処理範囲を制御するものではない。
選択肢Dの タイムスタンプ手動フィルタ は遅延到着ファイルの取りこぼしや実装・保守の手間が大きく、ブックマークより信頼性・効率で劣る。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDEAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →