無限ノック › DEA 練習問題一覧 › 問題
DEAデータストアの管理

ある大手メディア企業は、Amazon S3上に数年分のユーザー行動ログデータレイクを構築しています。今後の要件として、以下の4点すべてを満たすストレージ形式・テーブル形式の採用を検討しています。 ①GDPRに基づく特定ユーザーの行レベル削除(DELETE操作) ②カラム追加などのスキーマ進化のサポート ③過去時点のデータを参照するタイムトラベルクエリ ④複数の書き込みプロセスからのACIDトランザクション 最も適切なテーブル形式はどれですか?

A
Hiveスタイルパーティショニングを使用したApache Parquet形式でデータを保存し、AWS Glue Data Catalog でメタデータを管理する
Apache Parquetは優れた列指向ファイル形式だが、単体ではACIDトランザクション・タイムトラベル・行レベル削除をネイティブサポートしない。Hiveスタイルパーティショニングでもこれらの機能は補完されず、4つの要件をすべて満たすことができない。
B
Apache Iceberg テーブル形式を採用し、AWS Glue Data Catalog または Amazon Athena からテーブルを管理する
✓ 正解
Apache IcebergはACIDトランザクション・スキーマ進化・タイムトラベル・行レベルDELETEの4要件をすべてネイティブサポートするオープンテーブル形式。AWS GlueおよびAthenaからネイティブ操作が可能であり、S3データレイクでの要件をすべて満たす最適な選択肢。
C
Amazon S3にApache Avro形式でデータを保存し、AWS Glue Schema Registry でスキーマの進化を管理する
Apache AvroはAWS Glue Schema Registryと組み合わせることでスキーマ進化を管理できるが、行指向のシリアライズ形式であるため分析クエリには不向き。ACIDトランザクションおよびタイムトラベルクエリをサポートしないため4要件を満たせない。
D
Apache ORC形式でデータを圧縮保存し、Amazon EMR の Hive メタストアでテーブルメタデータを管理する
Apache ORCはHive環境でACIDトランザクションをサポートするが、この機能はHDFSとHiveメタストアに依存する。Amazon S3上でAthenaやGlueから利用する場合、完全なACIDトランザクションとタイムトラベルクエリは提供されないため要件を満たさない。

解説

Apache Iceberg はS3上のデータレイクで使用できるオープンテーブル形式で、要件の4点すべてを満たします。 ①行レベルのDELETE/UPDATE操作:merge-on-readまたはcopy-on-writeで実現し、GDPR対応のレコード削除が可能です。 ②スキーマ進化:既存データを書き換えずにカラムの追加・削除・型変換が可能です。 ③タイムトラベル:スナップショット管理により `AS OF` 構文で過去時点のデータを参照できます。 ④ACIDトランザクション:楽観的同時実行制御により複数の書き込みプロセスからのACIDトランザクションをサポートします。 AWS GlueおよびAmazon AthenaはApache Icebergテーブルのネイティブサポートを提供しています。 選択肢AのApache Parquetは優れた列指向ストレージ形式ですが、単体ではACIDトランザクション、タイムトラベル、行レベル削除をサポートしていません。Hiveスタイルパーティショニングでもこれらの機能は提供されません。 選択肢CのApache AvroはAWS Glue Schema Registryと組み合わせることでスキーマ進化を管理できますが、行指向の直列化形式であり分析クエリに不向きなうえ、ACIDトランザクションやタイムトラベルもサポートしていません。 選択肢DのApache ORCはHive環境でのACIDトランザクションが知られていますが、この機能はHDFSとHiveメタストアに依存しており、Amazon S3データレイクでAthenaやGlueから使用する場合には完全なACIDトランザクションとタイムトラベルクエリをサポートしません。

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

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

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