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

あるデータエンジニアリングチームは、毎日新しいCSVファイルが追加されるAmazon S3バケットを対象に、AWS Glue ETLジョブを毎夜実行してデータをAmazon Redshiftにロードしています。ジョブは毎回S3バケット内のすべてのファイルをスキャン・処理するため、処理時間とコストが増大しています。前回のジョブ実行以降に追加されたファイルのみを処理するよう改善したい。追加インフラの管理を最小限に抑えながら実現できる方法はどれですか?

A
AWS Glue ジョブのジョブブックマーク(Job Bookmark)機能を有効化する
✓ 正解
AWS Glueジョブブックマークは前回処理済みS3オブジェクトを自動追跡し、追加コードなしで次回実行時に新規追加分のみを処理できます。
B
S3バケットにイベント通知を設定し、新しいファイルが追加されるたびにAWS Lambda経由でGlueジョブをトリガーする
S3イベント通知+Lambda経由でのファイル単位ジョブ起動は、大量ファイル到着時に過剰なジョブ実行が発生しバッチ処理設計に適しません。
C
Glueジョブのスクリプト内で前日のタイムスタンプをパラメータとして渡し、S3オブジェクトのLastModifiedでフィルタリングするコードを実装する
LastModifiedタイムスタンプによるフィルタリング実装は複雑で、ジョブ失敗時の再処理境界管理が困難になりエッジケースが増えます。
D
処理済みファイルのキーをAmazon DynamoDBテーブルに記録し、実行時にS3ファイル一覧と比較して未処理ファイルのみを選択する
Amazon DynamoDBによる処理済みファイルキー管理は技術的に可能ですが、ジョブブックマークで解決できる問題に対して実装・運用コストが過大です。

解説

AWS Glue のジョブブックマークは、前回実行で処理済みのS3オブジェクトを自動追跡し、次回実行時に新規追加分のみを処理する増分処理機能です。追加コードや外部サービスなしにネイティブで実現でき、ジョブ失敗時の再実行でも重複処理を防ぎます。 選択肢BのS3バケットにイベント通知を設定し、新しいファイルが追加されるたびにAWS Lambda経由でGlueジョブをトリガーする方法は、ファイル単位でジョブを起動するため、大量ファイルが届く場合に過剰なジョブ実行が発生しバッチ処理の設計と合いません。 選択肢CのGlueジョブのスクリプト内で前日のタイムスタンプをパラメータとして渡し、S3オブジェクトのLastModifiedでフィルタリングするコードを実装する方法は、実装が複雑で、ジョブ失敗時の再処理境界の管理が困難です。 選択肢Dの処理済みファイルのキーをAmazon DynamoDBテーブルに記録し、実行時にS3ファイル一覧と比較して未処理ファイルのみを選択する方法は、DynamoDBによる自前の状態管理は可能ですが、ジョブブックマークで解決できる問題に対して実装・運用コストが過大です。

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

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

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