DEAデータオペレーションとサポート

あるログ分析チームは1日500GBのアプリケーションログをS3にフラット構造(プレフィックスなし)で保存し、Amazon Athenaでアドホッククエリを実行している。過去1週間のデータのみを対象とするクエリでも全量スキャンが発生してコストが高騰している。データ構造を整理してスキャン量を最大限削減する最も効果的な方法は?

A
Athena CTASでログを日付キーでパーティション分割しParquet形式に変換して別プレフィックスに保存し、Glue Data Catalogにパーティションを登録する
✓ 正解
Athena CTASによるParquet変換で必要列のみスキャン対象とし、日付パーティションでスキャンファイル数を削減できる。AthenaはWHERE句に応じたファイルのみをスキャンする。
B
Glue ETLで日次バッチ変換してORC形式・日付パーティション構造で別バケットに書き出し、Redshift Spectrumの外部テーブルとして定義して分析する
Glue ETLでORC・パーティション化は効果的だが、Redshift Spectrumの外部テーブルはAthenaとは別のサービスを追加するため必要以上に複雑になる。
C
S3 Transfer AccelerationとAthenaワークグループのデータスキャン上限を設定して、大規模クエリを自動キャンセルしてコスト上昇を抑制する
Athenaワークグループのスキャン上限はコストをキャップするがスキャン量自体を削減しない。S3 Transfer Accelerationはダウンロード高速化でありスキャンコスト削減に無関係。
D
Amazon OpenSearch ServiceにログをインデックスしてアドホッククエリをKibanaで実行することで、S3への直接スキャンを不要にする
Amazon OpenSearch Serviceへのインデックスは別途インジェスト処理とクラスター費用が発生し、アドホッククエリに最適化されておらずトータルコスト削減にならない。

解説

Parquet変換と日付パーティション分割の組み合わせが最も効果的。WHERE句でパーティションキーを指定することで対象ファイルのみスキャンされ、列指向フォーマットで必要列のみ読み取られコストが大幅に削減される。

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

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

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