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

あるモバイルゲーム会社は、プレイヤーのゲームイベント(スコア記録、アイテム取得、ログイン等)をAmazon Kinesis Data Streamsに送信しています。データエンジニアリングチームは以下の要件を満たす処理パイプラインを構築する必要があります。 ・Amazon DynamoDBのプレイヤーマスターテーブルとゲームイベントデータを結合してエンリッチメントする ・イベントIDによる重複イベントの排除処理を行う ・処理済みデータをAmazon S3にParquet形式で書き込む ・Apache Sparkの知識を活用できるマネージドサービスを使用する ・数分以内のレイテンシ(ニアリアルタイム)で継続的に処理すること 最も適したアーキテクチャはどれですか?

A
AWS Glue Streaming ETLジョブでKinesis Data Streamsを読み取り、DynamoDBとの結合・重複排除・S3へのParquet書き込みを行う
✓ 正解
AWS Glue Streaming ETLはKinesis Data StreamsをネイティブサポートするマネージドSparkストリーミングサービスです。DynamoDBとのJOIN、dropDuplicates()による重複排除、Parquet形式でのS3書き込みをSparkコードで実装でき、クラスター管理が不要です。マイクロバッチ処理でニアリアルタイム要件も満たします。
B
Amazon Data FirehoseにLambdaトランスフォーマーを設定してDynamoDBルックアップとParquet変換を行う
Amazon Data FirehoseはLambdaトランスフォーマーと組み合わせても、DynamoDBとの動的JOINや重複排除ロジックの実装がLambdaの実行時間制限(最大15分)やステートレスな性質と相性が悪く、大規模ストリームには不向きです。
C
Amazon Managed Service for Apache FlinkでDynamoDBと結合し、S3にParquetで書き込む
Amazon Managed Service for Apache Flink(旧:Kinesis Data Analytics for Flink)はFlinkアプリケーションを実行するサービスです。FlinkはJava/Scala/PyFlinkで実装するため、チームのApache Sparkスキルを直接活用できません。
D
Amazon EMR on EC2クラスターでSpark Structured Streamingを使いKinesis Data Streamsを処理する
EMR on EC2は技術的には要件を満たせますが、クラスターのプロビジョニング・管理・スケーリングが必要で、マネージドサービスを求める要件に対して運用負荷が高くなります。

解説

AWS Glue Streaming ETLはKinesis Data StreamsをネイティブサポートするマネージドSparkストリーミングサービスです。DynamoDBとのJOIN、dropDuplicates()による重複排除、Parquet形式でのS3書き込みをSparkコードで実装でき、クラスター管理が不要です。マイクロバッチ処理でニアリアルタイム要件も満たします。 選択肢BのAmazon Data FirehoseはLambdaトランスフォーマーと組み合わせても、DynamoDBとの動的JOINや重複排除ロジックの実装がLambdaの実行時間制限(最大15分)やステートレスな性質と相性が悪く、大規模ストリームには不向きです。 選択肢CのAmazon Managed Service for Apache Flink(旧:Kinesis Data Analytics for Flink)はFlinkアプリケーションを実行するサービスです。FlinkはJava/Scala/PyFlinkで実装するため、チームのApache Sparkスキルを直接活用できません。 選択肢DのEMR on EC2は技術的には要件を満たせますが、クラスターのプロビジョニング・管理・スケーリングが必要で、マネージドサービスを求める要件に対して運用負荷が高くなります。

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

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

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