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

あるモバイルゲーム会社は、ゲーム内のプレイヤーイベントデータをリアルタイムに収集しています。データストリームには毎秒約5,000件のイベントが流入し、各イベントにはplayer_idとplayer_tier(Bronze/Silver/Gold/Platinum)というフィールドが含まれています。 以下の要件があります。 ・Amazon S3にイベントデータを year/month/day/hour/player_tier の階層でパーティショニングして保存すること ・保存処理のコードを独自に記述・管理する運用負荷を最小限にすること ・データはほぼリアルタイムにS3へ書き込まれること この要件を最もよく満たすソリューションはどれですか?

A
Amazon Kinesis Data Streamsにイベントを取り込み、AWS Lambda関数をコンシューマーとして設定する。Lambda関数内でplayer_tierを解析し、該当するS3プレフィックスにオブジェクトを書き込む
Kinesis Data Streams + Lambdaは機能的には可能ですが、コンシューマーのスケーリング・エラーハンドリング・S3書き込みロジックをすべて自前で実装・管理する必要があり、運用負荷が大きくなります。
B
Amazon Data Firehoseにイベントを取り込み、動的パーティショニング(Dynamic Partitioning)を有効化する。インラインパースのjq式でplayer_tierを抽出し、S3プレフィックス式に組み込む
✓ 正解
Amazon Data Firehoseの動的パーティショニングは、ストリームレコード内のフィールド値を基にS3への書き込みプレフィックスをリアルタイムに動的決定できるマネージド機能です。jq式でplayer_tierを抽出し、S3プレフィックス(例:`player_tier=!{partitionKeyFromQuery:player_tier}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/...`)に組み込むことで、独自コードを書かずにパーティショニングが実現し、運用負荷を最小化できます。
C
Amazon MSKにイベントを取り込み、MSK Connect(S3 Sink Connector)を構成する。カスタムSMT(Single Message Transform)でplayer_tierを抽出し、S3のディレクトリパスに設定する
MSK + MSK ConnectはApache Kafkaエコシステムとの統合に適していますが、新規構築でのリアルタイムS3取り込みではFirehoseと比較して設定・管理コストが高くなります。
D
Amazon Data Firehoseにイベントを取り込み、Lambda変換関数でplayer_tierをレコードに付加する。その後、定期実行のAWS GlueジョブでS3内のデータをplayer_tierごとに再パーティショニングする
Firehose + Glue再パーティショニングは処理が二段階になりほぼリアルタイムの要件を満たせず、コストも二重に発生します。

解説

Amazon Data Firehoseの動的パーティショニングは、ストリームレコード内のフィールド値を基にS3への書き込みプレフィックスをリアルタイムに動的決定できるマネージド機能です。jq式でplayer_tierを抽出し、S3プレフィックス(例:`player_tier=!{partitionKeyFromQuery:player_tier}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/...`)に組み込むことで、独自コードを書かずにパーティショニングが実現し、運用負荷を最小化できます。 選択肢AのKinesis Data Streams + Lambdaは機能的には可能ですが、コンシューマーのスケーリング・エラーハンドリング・S3書き込みロジックをすべて自前で実装・管理する必要があり、運用負荷が大きくなります。 選択肢CのMSK + MSK ConnectはApache Kafkaエコシステムとの統合に適していますが、新規構築でのリアルタイムS3取り込みではFirehoseと比較して設定・管理コストが高くなります。 選択肢DのFirehose + Glue再パーティショニングは処理が二段階になりほぼリアルタイムの要件を満たせず、コストも二重に発生します。

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

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

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