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

ある小売企業がAmazon S3上のデータレイクでAWS GlueとAmazon Athenaを使った分析基盤を運用しています。 月次の在庫調整バッチ処理でデータが上書きされるケースがあり、データエンジニアは「3日前の状態のデータ」を参照して差異を確認したい要件が発生しました。 また複数のGlueジョブが同一テーブルへ並行書き込みを行う際のデータ整合性も課題です。 既存のAthenaクエリへの変更を最小限に抑えながらこれらの要件を満たすテーブルフォーマットはどれですか?

A
S3バージョニングを有効にしてParquetファイルの旧バージョンを保持し、Athenaから特定バージョンIDを指定して過去状態を参照する
S3バージョニングはオブジェクト単位でのバージョン保持には使えますが、テーブルを構成する複数のParquetファイル全体の特定時点スナップショットをAthenaから一括参照する標準的な仕組みがなく、テーブルレベルのタイムトラベル要件は実現できません。
B
Apache Icebergテーブル形式を採用し、タイムトラベルクエリで過去のスナップショットを参照しつつACIDトランザクションで整合性を保証する
✓ 正解
Apache Icebergはスナップショットベースのタイムトラベル・ACIDトランザクション・並行書き込みの整合性保証をサポートするオープンテーブルフォーマットです。AthenaとGlueがネイティブサポートしており既存クエリへの変更を最小限に抑えながら両要件を同時に満たせます。
C
Apache Avro形式に変換してAWS Glue Schema Registryにスキーマ管理を委ね、並行書き込みの競合によるスキーマ不整合を防止する
Avro形式とGlue Schema Registryはスキーマのバージョン管理と互換性チェックには有効ですが、タイムトラベルクエリ(過去時点データの参照)やACIDトランザクション(並行書き込みの整合性保証)の機能は提供しておらず要件を満たせません。
D
Glueジョブで書き込み前のデータを別S3プレフィックスにコピーしてから上書きし、必要時にそのプレフィックスをAthenaで参照する
Glueジョブでの手動バックアップは実装・管理コストが高くバックアップのタイミング設計・世代管理・追加ストレージコストが課題になります。Athenaから過去データを参照するためのクエリ構造も大きく変わり既存クエリへの影響が大きくなります。

解説

選択肢BのApache IcebergはS3などのオブジェクトストレージ上にACIDトランザクション・タイムトラベル・スキーマ進化などの機能を提供するオープンテーブルフォーマットです。書き込みごとにスナップショットが自動作成されるため、SELECT * FROM table FOR SYSTEM_TIME AS OF 'timestamp' 構文で過去時点のデータを参照できます。オプティミスティック同時実行制御(OCC)により複数Glueジョブの並行書き込みでもデータ整合性が保証されます。AthenaはIcebergをネイティブサポートしているため既存クエリへの変更が最小限で済みます。 選択肢AのS3バージョニングは個々のオブジェクト(ファイル)単位のバージョン管理は可能ですが、複数ファイルで構成されるテーブル全体の特定時点スナップショットをAthenaから参照する標準的な仕組みはなく、タイムトラベル要件を実現できません。 選択肢CのAvro形式とGlue Schema Registryはスキーマバージョン管理と互換性チェックには有効ですが、タイムトラベル(過去時点の参照)とACIDトランザクション(並行書き込みの整合性)の機能を持っていません。 選択肢DのGlueジョブでの手動バックアップは実装・管理コストが高く、バックアップタイミングの設計・世代管理・ストレージコスト増加の課題があります。Athenaから過去データを参照するクエリ変更も大きくなります。

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

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

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