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

外部システムから送信される大量のJSON形式のログデータが、Amazon Data Firehoseを経由してAmazon S3にストリーミングされています。データ分析チームは、Amazon Athenaでのクエリパフォーマンスを向上させ、スキャンコストを削減するために、S3に保存する前にデータをApache Parquet形式に変換したいと考えています。カスタムコードを開発・保守せずにこの要件を満たす方法は何ですか。

A
Kinesis Data Streamsの拡張ファンアウトを使用して、S3に書き込む前にデータをParquet形式に変換する
Kinesis Data Streamsの拡張ファンアウトは、コンシューマーの読み取りスループットを向上させる機能であり、データそのもののフォーマット(JSONからParquetなど)を自動変換する機能は提供していません。
B
AWS Lambda関数をFirehoseの変換リソースとして指定し、Apache Arrowライブラリを用いてParquetに変換する
AWS LambdaをAmazon Data Firehoseのデータ変換(Transformation)に使用することは可能ですが、変換用のカスタムコードを作成し保守する必要があるため、「カスタムコードを開発・保守せずに」という要件を満たしません。
C
Amazon EMRクラスターをストリームの宛先として設定し、Spark Streamingでフォーマットを変換してからS3に保存する
Amazon EMRを使用してSpark Streamingでデータを処理・変換することは技術的には可能ですが、クラスターのプロビジョニングや複雑なジョブの管理が必要となり、フルマネージドな構成に比べて運用オーバーヘッドが大きすぎます。
D
Amazon Data Firehoseの設定で、AWS Glueデータカタログを使用してJSONからParquetへの形式変換を有効にする
✓ 正解
Amazon Data Firehoseの組み込みフォーマット変換機能を有効にし、AWS Glueデータカタログのスキーマを参照させることで、カスタムコードを一切記述せずにJSONデータを自動的にParquet形式に変換してS3に保存できます。

解説

Amazon Data Firehoseは、受信したJSON形式のストリーミングデータを、Apache ParquetまたはApache ORCといった列指向フォーマットに組み込み機能として自動変換してAmazon S3に保存することができます。この機能を有効にするには、AWS Glueデータカタログのテーブル定義(スキーマ情報)を指定するだけで済み、コードを1行も記述する必要がありません。列指向フォーマットへの変換により、Amazon Athenaでクエリを実行する際のデータスキャン量が大幅に削減され、パフォーマンス向上とコスト削減の両方が達成されます。Lambdaを用いた変換はカスタムコードの管理が必要になり、Kinesis Data StreamsやEMRはインフラ構築や運用のオーバーヘッドが発生するため、要件に合致しません。

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

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

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