DEAデータオペレーションとサポート
あるデータエンジニアリングチームは、毎晩Amazon S3に蓄積される新規ログファイルをAWS Glue ETLジョブで処理し、Amazon Redshiftへロードするパイプラインを運用しています。しかしジョブを実行するたびにS3バケット内のすべてのファイルが処理されてしまい、Redshiftに重複データが発生しています。
チームは前回のジョブ成功実行以降に追加された新規ファイルのみを処理するよう変更したいと考えています。最も適切な対応はどれですか?
AGlue ETLジョブの設定でJob Bookmarksを有効化する
✓ 正解
AWS Glue Job Bookmarksは、ジョブが以前に処理したデータの状態(S3オブジェクトのETagやパスなど)を自動追跡する機能です。有効化するだけで次回実行時に未処理のデータのみが対象となり、重複処理を防ぎます。追加のコーディングや外部システムへの依存なしにインクリメンタル処理を実現できます。
BAmazon S3イベント通知を使用して新規ファイルの到着時にのみGlue ETLジョブをトリガーする
S3イベント通知によるトリガーはリアルタイム処理向けであり、バッチスケジュール実行における「前回成功実行以降の差分」を厳密に管理するには不向きで、失敗時の再処理設計も複雑になります。
CGlueジョブのスクリプト内でAmazon Redshiftをクエリして既存レコードの最終タイムスタンプを取得し、それ以降のファイルのみをフィルタリングする
Redshiftへの照合は処理コストと実装の複雑さを増加させ、ジョブの依存性が高まります。
DAWS Glue Crawlerのスケジュールを最適化し、新規ファイルのみをデータカタログに登録するよう設定する
Glue Crawlerはデータカタログのスキーマ更新が目的であり、ETLジョブ側の処理対象ファイルの差分管理とは別の機能です。
解説
AWS Glue Job Bookmarksは、ジョブが以前に処理したデータの状態(S3オブジェクトのETagやパスなど)を自動追跡する機能です。有効化するだけで次回実行時に未処理のデータのみが対象となり、重複処理を防ぎます。追加のコーディングや外部システムへの依存なしにインクリメンタル処理を実現できます。
選択肢BのS3イベント通知によるトリガーはリアルタイム処理向けであり、バッチスケジュール実行における「前回成功実行以降の差分」を厳密に管理するには不向きで、失敗時の再処理設計も複雑になります。
選択肢CのRedshiftへの照合は処理コストと実装の複雑さを増加させ、ジョブの依存性が高まります。
選択肢DのGlue Crawlerはデータカタログのスキーマ更新が目的であり、ETLジョブ側の処理対象ファイルの差分管理とは別の機能です。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDEAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →