無限ノック › DEA 練習問題一覧 › 問題
DEAデータの取り込みと変換

あるIoT企業は、数千台のセンサーデバイスからJSON形式のテレメトリデータを収集し、Amazon Data Firehoseを通じてAmazon S3に配信しています。現在はすべてのデータが単一のS3プレフィックスに格納されており、Amazon Athenaでクエリを実行する際に全データをスキャンするためコストと処理時間が増大しています。 各レコードにはdevice_typeとregionフィールドが含まれており、Athenaでは主に特定のdevice_typeとregionを組み合わせたクエリが実行されます。 Amazon Data Firehoseの設定変更のみで、device_typeとregionに基づくS3パーティション分割を実現する最も適切な方法はどれですか?

A
LambdaトランスフォーメーションをFirehoseに追加し、Lambda関数がレコードを解析してS3への書き込み先プレフィックスをレコードごとに変更するよう実装する
Lambdaトランスフォーメーションはレコードの内容変換・フィルタリングに使用しますが、Amazon Data FirehoseのS3宛先プレフィックスをレコードごとに変える機能はダイナミックパーティショニングの役割であり、Lambdaトランスフォーメーションでは直接制御できません。
B
AWS Glueクローラーをスケジュール実行してS3データをクロールし、Glue Data Catalogにパーティション情報を自動登録する
GlueクローラーはS3上の既存データをスキャンしてData Catalogにパーティション情報を登録しますが、データの書き込み先パス自体を変更する機能はありません。
C
Firehoseのダイナミックパーティショニングを有効化し、JQ式でdevice_typeとregionを抽出してS3プレフィックスパターンに組み込む
✓ 正解
Amazon Data Firehoseのダイナミックパーティショニング機能を使うと、受信JSON内の任意フィールドをJQ式で抽出し、S3プレフィックスに動的に組み込めます。プレフィックスパターンを「data/device_type=!{partitionKeyFromQuery:device_type}/region=!{partitionKeyFromQuery:region}/」のように設定するだけで、追加のコンピューティングリソースなしにHive互換のパーティション構造でS3に書き込めます。AthenaはこのパーティションキーでクエリのスキャンS3範囲を絞り込めるため、コストと実行時間を大幅に削減できます。
D
FirehoseのS3バッファリングサイズとバッファリング間隔を最小値に設定してファイル書き出し頻度を上げる
バッファリングサイズとBuffer Intervalの調整はファイルサイズと書き出し頻度に影響しますが、S3プレフィックスのパーティション構造とは無関係です。

解説

Amazon Data Firehoseのダイナミックパーティショニング機能を使うと、受信JSON内の任意フィールドをJQ式で抽出し、S3プレフィックスに動的に組み込めます。プレフィックスパターンを「data/device_type=!{partitionKeyFromQuery:device_type}/region=!{partitionKeyFromQuery:region}/」のように設定するだけで、追加のコンピューティングリソースなしにHive互換のパーティション構造でS3に書き込めます。AthenaはこのパーティションキーでクエリのスキャンS3範囲を絞り込めるため、コストと実行時間を大幅に削減できます。 選択肢AのLambdaトランスフォーメーションはレコードの内容変換・フィルタリングに使用しますが、FirehoseのS3宛先プレフィックスをレコードごとに変える機能はダイナミックパーティショニングの役割であり、Lambdaトランスフォーメーションでは直接制御できません。 選択肢BのGlueクローラーはS3上の既存データをスキャンしてData Catalogにパーティション情報を登録しますが、データの書き込み先パス自体を変更する機能はありません。 選択肢DのバッファリングサイズとBuffer Intervalの調整はファイルサイズと書き出し頻度に影響しますが、S3プレフィックスのパーティション構造とは無関係です。

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

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

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