ある企業が、Azure Databricks の Spark Structured Streaming を使って、Azure Event Hubs からリアルタイムに注文データを受信し、集計処理を行っている。処理の正確性を保証するために「Exactly-once」セマンティクスを実現するための Delta Lake の機能はどれか。
- A. Delta Lake の OPTIMIZE コマンド:小さなファイルを結合してクエリ性能を向上する
- B. Delta Lake のタイムトラベル:過去バージョンのデータを参照して重複を検出する
- C. Delta Lake のチェックポイントと ACID トランザクション:ストリーミング処理の進捗を記録し重複書き込みを防ぐ
- D. Delta Lake のスキーマ強制(Schema Enforcement):スキーマ不一致のデータを自動で除外する
解答と解説を見る
正解: C
Delta Lake はチェックポイント機能により Spark Structured Streaming の処理進捗(オフセット)を永続化し、障害発生時の再処理で重複書き込みが発生しないよう ACID トランザクションで整合性を保証する。この仕組みにより Exactly-once セマンティクスが実現され、イベントが1回だけ正確に処理されたことが保証される。選択肢 D のスキーマ強制は不整合スキーマのデータ書き込みを拒否する機能であり、ストリーミングの重複書き込み防止とは役割が異なる。選択肢 B のタイムトラベルは過去のデータスナップショットを参照する機能であり、リアルタイムの重複排除には使わない。選択肢 A の OPTIMIZE は小ファイル結合による読み取り性能向上のメンテナンス機能であり、Exactly-once 保証とは無関係である。