DEAデータストアの管理
あるメディア企業は S3 に年/月/日でパーティション化されたクリックストリームデータを保存しています。3年分で 1,000 以上のパーティションが蓄積した結果、AWS Glue クローラーの完了に2時間以上かかり、新しい日付パーティションが到着しても次回クローラー実行まで Amazon Athena からクエリできません。最小の運用負荷で新規パーティションを即時クエリ可能にする方法はどれですか?
AGlue クローラーのスケジュールを15分ごとに設定し、新規パーティション検出の頻度を上げてクローラースキャン範囲を最新日付のみに限定する
Glue クローラーのスケジュール間隔を短縮しても、1,000 件超のパーティションを持つテーブルの2時間超というクローラー完了時間は解消されない。スキャン範囲を限定する設定もクローラー自体の構造的な遅延を根本的に解決しない。
BS3 データ到着を EventBridge で検知し、Lambda 関数から Athena の MSCK REPAIR TABLE を実行してパーティションを再スキャンする
MSCK REPAIR TABLE は S3 のパーティションプレフィックス全体を再スキャンするため、パーティション数が多い環境ではクローラーと同様に処理時間とコストが増大し、即時クエリの要件を安定して満たせない。
CGlue Data Catalog テーブルにパーティションプロジェクションを設定し、S3 パスパターンと日付範囲から動的にパーティションを生成する
✓ 正解
パーティションプロジェクションは Athena がクエリ時に S3 パスパターンと設定した日付範囲からパーティションを動的に計算する機能で、クローラー実行ゼロかつメタデータ登録不要で新規パーティションを即時参照できる。
DAWS Glue ジョブで S3 の新規プレフィックスを検出し、BatchCreatePartition API を呼び出して Glue Data Catalog に毎時パーティションを自動登録する
AWS Glue ジョブによる BatchCreatePartition API の呼び出しは個別パーティション追加には対応できるが、ジョブの開発・スケジューリング・エラーハンドリングが必要で、プロジェクション設定より運用負荷が著しく高い。
解説
パーティションプロジェクションは Athena がクエリ実行時に S3 パスのパターンと設定した日付範囲からパーティションを動的に計算する機能で、Glue Data Catalog へのメタデータ登録が不要になる。クローラーの実行コストをゼロにしながら、新規日付パーティションが S3 に追加されると即時クエリ可能になるため、運用負荷が最小化される。
選択肢Aの Glue クローラーのスケジュール短縮は2時間超というクローラー完了時間を解消せず、スキャンコストも増加する。根本的な遅延解消にならない。
選択肢Bの EventBridge + Lambda + MSCK REPAIR TABLE は S3 全パスを再スキャンするため、パーティション数が多い環境では処理時間とコストが増大し、即時クエリの要件を満たせない。
選択肢Dの AWS Glue ジョブによる BatchCreatePartition 登録はジョブの開発・スケジューリング・エラーハンドリングが必要で運用負荷が高く、プロジェクション設定より複雑。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDEAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →