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

あるeコマース企業は、ウェブサイトのクリックストリームデータをAmazon Data Firehoseを使ってAmazon S3に保存しています。各イベントのJSONには「customer_region」(例:tokyo、osaka)と「event_date」(例:2024-05-01)フィールドが含まれています。データエンジニアリングチームは以下を実現したいと考えています。 ・S3上のデータをcustomer_regionとevent_dateでパーティション分割し、Amazon Athenaのクエリを高速化する ・Firehoseのバッファリング期間中に到着したデータを正しいS3パーティションパスに格納する ・追加のAWS Lambda関数による変換処理を使わないこと これを最も適切に実現するAmazon Data Firehoseの設定はどれですか?

A
Firehoseの宛先S3プレフィックスを静的に固定し、後段のAWS Glue ETLジョブでパーティションを再配置する
後段ETL再配置方式は固定プレフィックスへの書き込み後にパーティションを再配置するため、処理遅延が発生し二重コストになります。
B
Amazon Kinesis Data StreamsとAWS Glue Streaming ETLを組み合わせ、Glue側でパーティション分割してS3に書き込む
Kinesis Data Streams + Glue Streaming ETLの組み合わせは複雑な構成であり、Firehoseのみで実現できる要件に対して過剰なアーキテクチャです。
C
Firehoseの動的パーティショニング(Dynamic Partitioning)を有効化し、JSONフィールドを参照するパーティションキー式を設定する
✓ 正解
Amazon Data Firehoseの動的パーティショニング機能を使用すると、受信データのJSONフィールドに基づいてS3のパーティションプレフィックスを動的に決定できます。インラインjqクエリでフィールドを抽出してパーティションキーを定義し、S3プレフィックスに「!{partitionKeyFromQuery:customer_region}/!{partitionKeyFromQuery:event_date}/」のようなパターンを設定します。Lambdaなしでリアルタイムに正しいパーティションへの書き込みが可能です。
D
Firehoseの前段にAWS Lambdaトランスフォーマーを設定し、S3パーティションプレフィックスを動的に付与する
Lambdaトランスフォーマーは「Lambdaによる変換処理を使わないこと」という要件に反します。

解説

Amazon Data Firehoseの動的パーティショニング機能を使用すると、受信データのJSONフィールドに基づいてS3のパーティションプレフィックスを動的に決定できます。インラインjqクエリでフィールドを抽出してパーティションキーを定義し、S3プレフィックスに「!{partitionKeyFromQuery:customer_region}/!{partitionKeyFromQuery:event_date}/」のようなパターンを設定します。Lambdaなしでリアルタイムに正しいパーティションへの書き込みが可能です。 選択肢Aの後段ETL再配置方式は固定プレフィックスへの書き込み後にパーティションを再配置するため、処理遅延が発生し二重コストになります。 選択肢BのKinesis Data Streams + Glue Streaming ETLの組み合わせは複雑な構成であり、Firehoseのみで実現できる要件に対して過剰なアーキテクチャです。 選択肢DのLambdaトランスフォーマーは「Lambdaによる変換処理を使わないこと」という要件に反します。

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

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

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