DEAデータオペレーションとサポート複数選択
あるデータエンジニアがAmazon Athenaを使用して、Amazon S3上の過去3年分の販売データ(CSV形式、合計5TB)に対してアドホック(即興)クエリを実行しています。データは日付ベースのフォルダ構造(s3://bucket/sales/year=2023/month=01/day=15/)で格納されており、クエリのたびに全5TBをスキャンしているためコストと実行時間が問題になっています。コストとクエリ性能を最も効果的に改善する対策を2つ選んでください。
AデータをApache ParquetなどのカラムナーフォーマットへAWS Glue ETLジョブで変換し、クエリが必要な列のみスキャンできるようにする
✓ 正解
選択肢:ParquetやORCなどのカラムナーフォーマットにより、必要な列のみを読み込む列プルーニングが機能し、スキャン量と実行時間を大幅に削減できます。さらに圧縮効率も高まります。
BAmazon Redshift Spectrumに移行し、AthenaではなくRedshiftからS3データをクエリするアーキテクチャに変更する
Redshift Spectrumも有効ですが、アーキテクチャ移行が必要で複雑です。
CAWS Glue Data Catalogでテーブルにパーティション(year/month/day)を定義し、クエリのWHERE句に日付フィルタを指定してパーティションプルーニングを活用する
✓ 正解
選択肢:Glue Data CatalogへのパーティションをYEAR/MONTH/DAYで定義し、WHERE句にフィルタを加えることでパーティションプルーニングが機能し、対象期間のデータのみをスキャンします。
DAmazon ElastiCache for Redisにクエリ結果をキャッシュし、Athenaへの重複クエリを削減する
ElastiCacheはAthenaとのネイティブ統合がなく、クエリキャッシュとしては使用できません。
EAthenaワークグループでスキャンバイト数の上限を設定し、上限超過クエリを自動キャンセルしてコストを抑制する
スキャン上限はコスト管理に有効ですが、スキャン量そのものを削減してパフォーマンスを改善するものではありません。
解説
Athenaのコストはスキャンしたデータ量(バイト)に基づくため、スキャン量を削減することが最も効果的な対策です。
選択肢Aの選択肢:ParquetやORCなどのカラムナーフォーマットにより、必要な列のみを読み込む列プルーニングが機能し、スキャン量と実行時間を大幅に削減できます。さらに圧縮効率も高まります。
選択肢Cの選択肢:Glue Data CatalogへのパーティションをYEAR/MONTH/DAYで定義し、WHERE句にフィルタを加えることでパーティションプルーニングが機能し、対象期間のデータのみをスキャンします。
選択肢B:Redshift Spectrumも有効ですが、アーキテクチャ移行が必要で複雑です。
選択肢D:ElastiCacheはAthenaとのネイティブ統合がなく、クエリキャッシュとしては使用できません。
選択肢E:スキャン上限はコスト管理に有効ですが、スキャン量そのものを削減してパフォーマンスを改善するものではありません。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDEAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →