DEAデータオペレーションとサポート
あるデータエンジニアリングチームは、毎時間Amazon S3の特定プレフィックスに追加される新しいCSVファイルをAWS Glue ETLジョブで処理して、Amazon Redshiftにロードするパイプラインを運用しています。
ジョブはインフラの一時的なエラーで稀に途中失敗することがあり、再実行時に処理済みファイルが再度処理されてRedshiftに重複データが投入される問題が発生しています。
追加のインフラを最小限に抑えつつ、未処理ファイルのみを効率的に処理する方法として最も適切なものはどれですか?
AAWS Glue ジョブブックマークを有効にし、各実行で処理済みのS3オブジェクトを自動追跡させる
✓ 正解
AWS Glue のジョブブックマーク機能は、ジョブがどのデータまで処理済みかをAWSが自動管理します。ジョブが途中で失敗しても、再実行時はS3オブジェクトのキーと更新タイムスタンプを基に未処理データのみを処理するため、Redshiftへの重複ロードを防げます。追加の外部ストアや独自管理が不要で、最小限のインフラ変更で要件を満たせます。
BAWS Lambda を使ってジョブ実行前に処理済みファイルのリストをAmazon DynamoDB に記録し、Glue ジョブ内でそのリストを参照してフィルタリングする
AWS Lambda(DynamoDB連携)は実現可能ですが、DynamoDBを追加で管理する必要があり、ブックマーク機能と比べて実装・運用コストが増大します。
CAmazon S3 イベント通知とAmazon SQS を組み合わせ、新着ファイルのみをキューに追加してGlue ジョブで消費する
Amazon SQSによる新着ファイル管理は有効なパターンですが、ジョブ失敗時のメッセージ可視性タイムアウト管理が複雑になり、追加インフラも必要です。
DAWS Glue クローラーを毎時実行してData Catalog を更新し、新規パーティションのみをクエリ対象にする
AWS Glue クローラーはスキーマ・パーティション検出用であり、処理済みオブジェクトの状態追跡はできません。
解説
AWS Glue のジョブブックマーク機能は、ジョブがどのデータまで処理済みかをAWSが自動管理します。ジョブが途中で失敗しても、再実行時はS3オブジェクトのキーと更新タイムスタンプを基に未処理データのみを処理するため、Redshiftへの重複ロードを防げます。追加の外部ストアや独自管理が不要で、最小限のインフラ変更で要件を満たせます。
選択肢BのAWS Lambda(DynamoDB連携)は実現可能ですが、DynamoDBを追加で管理する必要があり、ブックマーク機能と比べて実装・運用コストが増大します。
選択肢CのAmazon SQSによる新着ファイル管理は有効なパターンですが、ジョブ失敗時のメッセージ可視性タイムアウト管理が複雑になり、追加インフラも必要です。
選択肢DのAWS Glue クローラーはスキーマ・パーティション検出用であり、処理済みオブジェクトの状態追跡はできません。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDEAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →