「データレイクとデータウェアハウス、両方の良さを取りたい」というのは、データ基盤の長年の願いでした。レイクは安く何でも貯められるけど、ACIDトランザクションや高速クエリは弱い。DWHは速くて整っているけど、生データや非構造化に弱い。これを両立させようとするのが「レイクハウス」で、それを技術的に成立させているのが、新世代の「テーブルフォーマット」です。
Apache Iceberg・Delta Lake・Apache Hudiの3つが、レイクハウステーブルフォーマットの三強です。どれもParquetなどのファイル群にメタデータを足し、「ファイルの集まり」を「ACIDテーブル」として扱えるようにします。3者の違いと選び方を整理します。
なぜテーブルフォーマットが必要か
クラウドストレージ(S3、GCS、ADLS)はファイルが安く貯められますが、「テーブル」としての性質、つまり一貫性、トランザクション、スキーマ進化、過去への参照といったものは持ちません。Parquetファイルが複数あっても、それは「ファイルの集まり」であって「テーブル」ではないのです。
| 機能 | 素のParquetファイル群 | テーブルフォーマット |
|---|---|---|
| ACIDトランザクション | 無し | あり |
| UPDATE/DELETE | 難しい | サポート |
| タイムトラベル | 無し | 過去時点を参照 |
| スキーマ進化 | 手作業 | 安全に変更 |
| 同時書き込み | 衝突する | 正しく管理 |
| パーティション運用 | 固定 | 動的に進化 |
「ファイル群にメタデータを足して、テーブルとして振る舞わせる」というのがテーブルフォーマットの中核です。レイクハウスの考え方はDatabricksとはでも触れています。
3つのテーブルフォーマット比較
| Apache Iceberg | Delta Lake | Apache Hudi | |
|---|---|---|---|
| 発祥 | Netflix(2017) | Databricks(2019) | Uber(2017) |
| 運営 | Apacheソフトウェア財団 | Linux Foundation | Apacheソフトウェア財団 |
| 強み | 高度なメタデータ管理・ベンダー中立 | Spark/Databricksとの統合・運用の安定 | 更新と削除の高速性・CDC連携 |
| 主なエンジン対応 | Spark/Flink/Trino/Snowflake/BigQuery | Spark/Databricks/各社対応拡大中 | Spark/Flink/Presto |
| 商用バックアップ | Tabular(Databricks買収)他 | Databricks | Onehouse他 |
| 採用が広い領域 | ベンダー中立な企業データ基盤 | Databricks中心のデータ基盤 | 更新の多い業務データ |
2024年にDatabricksがIcebergの主要商用プレイヤー「Tabular」を買収したことで、Delta vs Icebergの「対立」構造が崩れ、業界全体としてIceberg互換性を重視する流れが強まっています。3者は実装の違いより「どのエコシステムで動かすか」が選定の主軸になってきています。
それぞれの特徴
Apache Iceberg
Netflixで生まれ、いまや「ベンダー中立な業界標準」として急速に支持を広げている。メタデータ管理が3層構造(catalog、manifest list、manifest)で、巨大テーブルでも効率的に動く。SnowflakeとBigQueryが両方Iceberg対応を強化しており、「データを1か所に置き、複数のエンジンから読む」アーキテクチャの中核として注目される。詳細はApache Iceberg とはで扱う。
Delta Lake
Databricks発で、最も成熟したテーブルフォーマット。Spark/Databricksとの統合が深く、運用ノウハウが豊富だ。Linux Foundationに移管されてOSSとして広がり、Databricksユーザー以外でも採用が広がっている。Delta UniFormという機能で、IcebergとHudiとも読み取り互換が取れるようになり、選択の自由度が増している。詳細はDelta Lake とはで扱う。
Apache Hudi
Uberで生まれ、特に「データ更新と削除の高速性」「CDC統合」に強みを持つ。Copy-on-WriteとMerge-on-Readの2つのストレージタイプを使い分けられ、ユースケースに応じた最適化ができる。IcebergとDeltaに比べると採用は限定的だが、CDC中心のリアルタイム系で評価されている。詳細はApache Hudi とはで扱う。
クラウドDWHでの対応状況
主要クラウドDWHの対応は、ここ1〜2年で急速に進みました。
| DWH | Iceberg | Delta Lake | Hudi |
|---|---|---|---|
| Snowflake | External Tables・Native Iceberg Tablesで対応 | External Tablesで読み取り | External Tablesで限定的 |
| BigQuery | BigLake Tablesで対応 | BigLake Tablesで読み取り | BigLake Tablesで限定的 |
| Databricks | UniForm経由で対応 | ネイティブ・最深 | サポート |
| Athena | ネイティブ | 読み取り対応 | 読み取り対応 |
各クラウドDWHの基本はクラウドDWH入門、Snowflake・BigQuery・Databricksの個別解説はSnowflakeとは・BigQueryとは・Databricksとはを参照してください。
選定の判断軸
| 判断軸 | 選び方 |
|---|---|
| ベンダー中立性を重視 | Iceberg(複数DWHで読み書き) |
| Databricks中心のデータ基盤 | Delta Lake(最深の統合) |
| 更新・削除が多いデータ(CDC等) | Hudi検討、ただしIceberg/Deltaも進化中 |
| 新規プロジェクト | IcebergかDelta(採用人口が多い) |
| 既存資産 | 既存のDeltaやHudi資産を活かす |
「最新の技術選定」の正解はIcebergですが、「既にDatabricksで作り込んでいる」資産があるなら、Delta Lakeの活用が現実的です。Hudiは特殊要件向けという立ち位置に落ち着きつつあります。
レイクハウスとdbt・データモデリングの関係
テーブルフォーマットは「データの置き場所」を提供します。その上で「どうモデリングするか」は別の話で、dbt(dbt実装ガイド)、メダリオン(メダリオンアーキテクチャ)、Data Vault(Data Vault 2.0)といったモデリング手法と組み合わせて使います。「Icebergで作ったSilver層を、dbtでGoldマートに変換する」という構成は、現代の典型的なレイクハウスアーキテクチャです。
まとめ
- テーブルフォーマットは「ファイル群をACIDテーブルに変える」レイクハウスの中核技術。
- 三強はApache Iceberg・Delta Lake・Apache Hudi。Iceberg=ベンダー中立、Delta=Databricks統合最深、Hudi=更新の多い領域。
- 主要クラウドDWHはどれも Iceberg・Delta 対応を強化中。Hudiは限定的。
- 新規プロジェクトはIcebergが安全な選択。既存Delta資産は活かす。
- テーブルフォーマットは「置き場」、その上のモデリング(dbt・メダリオン・Data Vault)と組み合わせて使う。
各テーブルフォーマットの詳細はApache Iceberg とは・Delta Lake とは・Apache Hudi とはにまとめています。レイクハウスの設計や移行の壁打ちは、DE-STKの初回相談(30分・無料)もご利用ください。
よくある質問(FAQ)
Q. なぜいま、テーブルフォーマットがホットなのですか?
A. 「データのロックインを避けたい」「複数のクエリエンジンから同じデータを読みたい」というニーズが強まったためです。従来は「Snowflakeに入れたデータはSnowflakeでしか使えない」のが常識でしたが、Icebergが普及することで、同じデータをSnowflake・BigQuery・Databricks・Trinoから読める世界が現実になりました。データのオープン化と相互運用性が、テーブルフォーマット競争の本質です。
Q. ParquetやAvroと何が違うのですか?
A. Parquet/Avroは「ファイル形式」で、データそのもののエンコード方法です。Iceberg/Delta/Hudiは「テーブルフォーマット」で、複数のファイル(多くはParquet)の集まりを「テーブル」として扱うためのメタデータの仕組みです。「Parquetは紙、テーブルフォーマットはファイリングシステム」のような関係です。
Q. Databricksユーザーは、Delta以外を選ぶ理由がありますか?
A. 同じ場所のデータを他のクラウドDWHからも読みたい場合、Iceberg互換のUniForm形式で書く選択肢があります。Databricksで作ったテーブルをSnowflakeやBigQueryから直接読めるようになります。Delta Lakeのまま運用しつつ、Iceberg互換も持つ、というハイブリッド構成です。
Q. テーブルフォーマットを変えるのは難しいですか?
A. 既存データの変換が必要なので、ゼロコストではありません。ただし、データの「再書き込み」だけで済むケースが多く、ロジック側の変更は最小限です。新規テーブルから新しいフォーマットで作る、既存はそのまま、という段階的な移行が現実的です。一気に全テーブル変換すると停止時間が長くなるため、段階移行が安全です。