DEAデータオペレーションとサポート
あるデータエンジニアリングチームは、Amazon S3 の特定のプレフィックスに毎時間新しい Parquet ファイルが追加される環境で、AWS Glue ETL ジョブを 6 時間ごとに実行しています。
ジョブは毎回 S3 バケット内のすべてのファイルを処理するため、Amazon Redshift に重複データが発生しており、処理コストも増大しています。
スクリプトの改修を最小限に抑えながら重複処理を防ぐ、最も適切な方法はどれですか?
AAWS Glue ジョブブックマーク(Job Bookmarks)を有効にし、前回実行以降に追加されたファイルのみを処理する
✓ 正解
Glue Job Bookmarks はジョブが処理済みのS3オブジェクトを記録し、次回実行時に未処理ファイルのみを自動選択します。スクリプト改修なしに重複処理を防げる最もシンプルな方法です。
BAmazon S3 ライフサイクルポリシーを設定し、処理済みファイルを別プレフィックスへ自動移動させる
Amazon S3 ライフサイクルポリシーはストレージクラスの変換やオブジェクトの期限切れ処理が主な機能であり、別プレフィックスへのファイル移動はサポートしていません。この方法には追加実装が必要で運用が複雑になります。
CGlue ETL スクリプト内でファイルの最終更新日時を取得し、前回実行タイムスタンプ以降のファイルのみフィルタリングするロジックを追加する
Glue ETL スクリプトへのタイムスタンプフィルタリング追加はスクリプト改修が必要であり、タイムスタンプ比較では境界値の誤差によって未処理ファイルを取りこぼすリスクがあります。
DAmazon S3 バージョニングと S3 オブジェクトタグを組み合わせ、処理済みオブジェクトに「processed=true」タグを付与してフィルタリングする
S3 バージョニングとオブジェクトタグを組み合わせる方法は、タグ付け実装とS3バージョニングのコスト増加を伴い、最小限の変更という要件を満たしません。
解説
Glue Job Bookmarks はジョブが処理済みのS3オブジェクトを記録し、次回実行時に未処理ファイルのみを自動選択します。スクリプト改修なしに重複処理を防げる最もシンプルな方法です。
選択肢Bの処理済みファイルを別プレフィックスへ移動する方法は、追加処理が必要で、運用が複雑になります。
選択肢Cのファイルの最終更新日時でフィルタリングする方法は、スクリプト改修が必要で、タイムスタンプ比較では境界値の誤差によって未処理ファイルを取りこぼすリスクがあります。
選択肢DのS3 バージョニングとオブジェクトタグを組み合わせる方法は、タグ付け実装とS3バージョニングのコスト増加を伴い、最小限の変更という要件を満たしません。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDEAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →