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

物流会社のデータエンジニアリングチームは、荷物の追跡イベントをAmazon Kinesis Data Streamsに送信しています。「予定配達時刻と実際のスキャン時刻の差が2時間を超えた荷物」を遅延とみなし、10分間のタンブリングウィンドウ(一定時間ごとに重複なく区切る集計ウィンドウ)内で地域別の遅延件数をリアルタイム集計するダッシュボードを構築しようとしています。ソリューションはサーバーレスであり、カスタムJava/Pythonコードを書かずにSQL構文でストリーム処理を実装できることが要件です。最も適切な構成はどれですか?

A
Amazon Managed Service for Apache Flinkを使用し、Flink SQLのTUMBLE関数でKinesis Data Streamsからデータを読み取り、10分ウィンドウ内の地域別遅延件数を集計してリアルタイムに出力する
✓ 正解
Amazon Managed Service for Apache Flink(旧称: Amazon Kinesis Data Analytics for Apache Flink)は、Flink SQLによるウィンドウ集計(TUMBLE・HOP・SESSION関数)をサポートするフルマネージドのサーバーレスサービスです。カスタムコードなしにSQLでイベント時刻に基づく複雑なストリーム処理を実装でき、本要件に最も適しています。
B
AWS LambdaにKinesisトリガーを設定し、各レコードを個別に処理しながらAmazon DynamoDBのカウンターを使って地域別・10分単位の遅延件数を集計する
LambdaはKinesisから個別レコードを処理しますが、ネイティブなタイムウィンドウ集計機能を持たず、DynamoDBカウンターによるウィンドウ境界の管理は複雑になりスケーラビリティにも課題があります。
C
Amazon Data Firehoseにデータ変換Lambda関数を設定し、10分分のデータをバッファリングしてから集計結果をAmazon S3に書き込む
Firehoseはデータ配信サービスであり、リアルタイムのウィンドウ集計は行えません。Lambda変換も実行時間制限があり、集計ロジックの実装には不向きです。
D
AWS Glueストリーミングジョブを使用し、PySparkで10分間のマイクロバッチ間隔でKinesis Data Streamsからデータを読み込んで集計する
GlueストリーミングはSparkマイクロバッチ処理であり、イベント時刻に基づく真のストリームウィンドウ処理ではありません。またSQL構文のウィンドウ関数もネイティブにはサポートされていません。

解説

正解: Amazon Managed Service for Apache Flinkを使用し、Flink SQLのTUMBLE関数でKinesis Data Streamsからデータを読み取り、10分ウィンドウ内の地域別遅延件数を集計してリアルタイムに出力する。 Amazon Managed Service for Apache Flink(旧称: Amazon Kinesis Data Analytics for Apache Flink)は、Flink SQLによるウィンドウ集計(TUMBLE・HOP・SESSION関数)をサポートするフルマネージドのサーバーレスサービスです。カスタムコードなしにSQLでイベント時刻に基づく複雑なストリーム処理を実装でき、本要件に最も適しています。 選択肢Bは、LambdaはKinesisから個別レコードを処理しますが、ネイティブなタイムウィンドウ集計機能を持たず、DynamoDBカウンターによるウィンドウ境界の管理は複雑になりスケーラビリティにも課題があります。 選択肢Cは、Firehoseはデータ配信サービスであり、リアルタイムのウィンドウ集計は行えません。Lambda変換も実行時間制限があり、集計ロジックの実装には不向きです。 選択肢Dは、GlueストリーミングはSparkマイクロバッチ処理であり、イベント時刻に基づく真のストリームウィンドウ処理ではありません。またSQL構文のウィンドウ関数もネイティブにはサポートされていません。

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

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

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