Skip to content

필사 모드: データレイクハウス & モダンデータエンジニアリング 2026 — Iceberg / Delta / Hudi / Paimon / Tabular (Databricks買収) / Trino / Spark 4 / Flink 2 / DataFusion 徹底ガイド

日本語
0%
정확도 0%
💡 왼쪽 원문을 읽으면서 오른쪽에 따라 써보세요. Tab 키로 힌트를 받을 수 있습니다.
원문 렌더가 준비되기 전까지 텍스트 가이드로 표시합니다.

プロローグ — 「データウェアハウス」という言葉が古びた場所

2010年代初頭、「データをどこに置くか」は単純だった。構造化データはデータウェアハウス(Teradata・Oracle Exadata・Vertica)、ログや半構造化データはHadoop HDFSに投げる。間をETLツール(Informatica・Talend)が橋渡しし、アナリストはSQLを、データエンジニアはMapReduceやSparkを使った。

2026年の風景はまったく違う。

- **レイクハウス**が標準になった。S3・GCS・ADLSの上にParquetファイルを置き、Apache Icebergのようなテーブルフォーマットがその上にトランザクション・スキーマ・タイムトラベルを載せる。「レイク」の柔軟性と「ウェアハウス」の信頼性を同じ屋根の下で得る。

- **Apache Iceberg**が2024-25年のテーブルフォーマット戦争の事実上の勝者になった。Netflixが作りApple・LinkedIn・Stripe・Airbnbが合流し、AWS・Snowflake・Cloudera・Dremioが一級市民として支援する。

- **Databricksが2024年6月、Tabularを10億ドル超で買収した。** Iceberg共同創設者Ryan Blueを迎え入れ、「Delta LakeとIcebergを同じメタデータとして扱う」というUniForm戦略を加速した。

- **Apache Hudi (Uber発)** はOnehouseという商用会社で生き残った。ニッチだがCDC・インデックス・差分処理では依然として最強。

- **Apache Paimon (Flinkチーム)** は「ストリーミング・レイクハウス」という新カテゴリを携えて登場した。LSMツリーを基盤に、同じテーブルで実時間更新と分析の両方をこなす。

- **クエリエンジン**は多様化した。Trino (旧PrestoSQL)が分散OLAPの標準になり、DuckDBが「Analytics版SQLite」として単一ノードでほぼあらゆる分析問題を捌き、ClickHouse Cloudがリアルタイムタイムスタンプ分析を取り、Apache DataFusion (Rust)が次世代の組み込みSQLエンジンの座を狙う。

- **dbt**がSQL変換の標準になった。アナリティクスエンジニアという職種が生まれた。

この記事では、その全景を — テーブルフォーマット3強 (Iceberg・Delta・Hudi)と挑戦者Paimon、エンジン (Spark 4・Flink 2・Trino・DuckDB)、クラウドデータプラットフォーム (Databricks・Snowflake・BigQuery・ClickHouse)、日本・韓国企業の実例まで — 一気に整理する。

1章 · 2026年データレイクハウスの地図 — 3つの軸

まず1枚の図から始めよう。2026年のデータレイクハウスは**3つの直交する軸**として理解できる。

[ カタログ / ガバナンス ]

Unity Catalog · Polaris · BigLake

Glue · Nessie · Snowflake Horizon

|

|

[ 処理 / クエリエンジン ] ---+--- [ テーブルフォーマット / ストレージ ]

Spark 4 · Flink 2 · Trino | Iceberg · Delta · Hudi · Paimon

Presto · DuckDB | Parquet · ORC · Avro

ClickHouse · DataFusion | S3 · GCS · ADLS

|

|

[ 変換 / オーケストレーション ]

dbt · SQLMesh · Coalesce

Airflow · Dagster · Prefect

- **テーブルフォーマット** — Parquetファイル群の上にトランザクション・スキーマ・メタデータを被せる。Icebergが標準、DeltaはDatabricks陣営、Hudiはニッチ、Paimonはストリーミング。

- **エンジン** — そのデータを読み書きし変換する。SparkはETL・バッチ、Flinkはストリーミング、Trinoは分散OLAP、DuckDBは単一ノードOLAP。

- **カタログ** — テーブル・スキーマ・権限を管理する。2025年に最も熱くなった領域。Unity Catalog (Databricksがオープンソース化)、Polaris (Snowflake、Iceberg REST準拠の参照実装)、BigLake (GCP)、Nessie (Project Nessie)。

この3軸が分離できることがレイクハウスの核だ。**テーブルフォーマットはIcebergを使い、エンジンはSpark/Trino/DuckDBから選び、カタログはUnity** — そんな組み合わせが自然になった。

従来のウェアハウス (Snowflake・BigQuery)は3軸すべてが一社内に閉じていた。レイクハウスはその鍵を外す。だからSnowflakeもPolarisを作り、BigQueryもBigLakeで外部Icebergを読めるようにした。**「鍵を外すこと」自体が2026年のデフォルトになった。**

2章 · Apache Iceberg — テーブルフォーマット戦争の勝者

2.1 なぜ「テーブルフォーマット」が必要なのか

Parquetファイルは優秀だ。列指向、圧縮、統計プッシュダウン。しかしそれだけでは足りない。

- 1万個のParquetファイルが入った「テーブル」に1列追加するには? スキーマ変更をどう記録するか。

- 2つのジョブが同じテーブルに同時に書き込んだら? ACIDは?

- 昨日の状態を見たい? タイムトラベルは?

- 100億行のうち100万行だけ更新したい? ファイル単位の上書き以外に道はあるか?

**テーブルフォーマット**はこれを解決するメタデータ層だ。Parquetファイル群の上にJSONやAvroファイルで「このテーブルの現在のスナップショットはX、スキーマはY、次のトランザクションはZ」のような情報を持つ。

Iceberg・Delta・Hudiは、同じ問題を解く異なる方法だ。

2.2 Icebergのデータモデル

Icebergは3階層のメタデータを持つ。

[ Catalog ] ─ カタログ (Glue・Nessie・Polaris・REST)

|

v

[ Metadata file v0.json, v1.json ... ]

|

v

[ Snapshot ] ─── ある時点のテーブル状態

|

v

[ Manifest list ]

|

v

[ Manifest ] ─ どのデータファイルがどこにあり統計は何か

|

v

[ Data files (Parquet/ORC/Avro) ]

核となるアイデア:

- **スナップショット基盤。** すべての書き込みは新しいスナップショットを作る。古いスナップショットは削除されるまで生きている → タイムトラベル・ロールバックがタダで手に入る。

- **メタデータがメタデータを指す。** カタログは「現在のmetadataファイルがどこにあるか」だけを知る。その中にスナップショット一覧が、その中にmanifest listが、その中にmanifestが、その中にデータファイルがある。

- **パーティションが隠される。** ユーザーは`event_time`カラムだけを書き、Icebergが内部的に`day(event_time)`のようなパーティションを管理する。パーティションevolutionが可能。

2.3 Icebergが勝った理由

2023年までは「Iceberg対Delta対Hudi」は本物の競争だった。2025年末時点で、業界の重心は明確にIcebergに傾いた。理由は1文で要約できる。

> Icebergは**標準**であり、Deltaは**製品**である。

- **ベンダーニュートラル。** Netflixが作り、Apacheに寄贈した。Databricks・Snowflake・AWS・GCP・Cloudera・Dremio・Tabularすべてが一級で支援する。

- **REST Catalog標準。** 2024年にIceberg REST Catalog仕様が安定化し、「どのベンダーのカタログでも同じAPIで話せる」が現実になった。

- **クラウドベンダーロックインの解消。** Snowflakeで使っていたテーブルをそのままDatabricks・Trino・Sparkで読める。「データを移動せずエンジンだけ変える」が本物になった。

- **Tabular買収。** Databricksが10億ドル超で買った事件が決定打だった。「Deltaの会社がIcebergの創設者を買う」こと自体が市場に送ったシグナルが大きかった。

2024年6月にSnowflakeがPolaris Catalogを作り2025年にApacheに寄贈したこと、AWS S3 Tables (2024年12月)がIcebergを一級でサポートしたこと — すべて同じ流れだ。

2.4 Icebergを直に試す — PyIceberg

PyIceberg (PythonネイティブIcebergクライアント)で最小の例。

from pyiceberg.catalog import load_catalog

from pyiceberg.schema import Schema

from pyiceberg.types import LongType, StringType, TimestampType, NestedField

1. カタログのロード (Glue・REST・SQL・Hiveすべて対応)

catalog = load_catalog(

"my_catalog",

**{

"type": "rest",

"uri": "http://localhost:8181",

"warehouse": "s3://my-bucket/warehouse",

}

)

2. スキーマ定義

schema = Schema(

NestedField(1, "event_id", LongType(), required=True),

NestedField(2, "user_id", StringType()),

NestedField(3, "event_time", TimestampType()),

NestedField(4, "event_type", StringType()),

)

3. テーブル作成

table = catalog.create_table(

identifier="analytics.events",

schema=schema,

partition_spec=... # day(event_time)

)

4. データ追加 (Arrow Tableで)

data = pa.table({

"event_id": [1, 2, 3],

"user_id": ["u1", "u2", "u3"],

"event_time": [...],

"event_type": ["click", "view", "purchase"],

})

table.append(data)

5. 読み込み (スキャン)

result = table.scan(

row_filter="event_type == 'purchase'",

selected_fields=("event_id", "user_id"),

).to_pandas()

6. タイムトラベル

old_snapshot = table.history()[-2].snapshot_id

old_data = table.scan(snapshot_id=old_snapshot).to_pandas()

これがすべてだ。分散クラスタなしに、Python1行でIcebergテーブルを作り、読み、時点クエリまでする。**ここで「Icebergは『エンジン』ではなく『仕様』だ」ということが具体的になる。**

3章 · Delta Lake (Databricks) — 依然として強力な対抗馬

3.1 Deltaは何が違うのか

Delta Lakeは2019年にDatabricksがオープンソース化したテーブルフォーマットだ。本質はIcebergと同じ — Parquetファイル群の上にトランザクションログを載せてACID・タイムトラベル・スキーマ管理を提供する。違うのはメタデータ構造とエコシステム。

[ Delta Table ]

|

v

_delta_log/

00000000000000000000.json ← トランザクションログ (1行ずつJSON)

00000000000000000001.json

...

00000000000000000010.checkpoint.parquet

_last_checkpoint

|

v

data files (Parquet)

- **トランザクションログがJSON。** 10ログごとにチェックポイント (Parquet)に圧縮。Icebergがmetadata→snapshot→manifestのツリーであるのに対し、Deltaは平坦なログのシーケンスだ。

- **Databricksエコシステムと深く結合。** Liquid Clustering、Predictive I/O、Photon — 最も成熟した最適化はDatabricks内にある。

- **Delta Sharing。** データをコピーせずに他組織と共有するオープンプロトコル。Icebergにはまだ同等の標準がない。

3.2 UniForm — DeltaがIcebergを真似する

2023年にDatabricksが発表した**Delta UniForm**は、市場の方向を見せた事件だった。

> 同じParquetファイルを置いて、DeltaログとIcebergメタデータを**同時に**書く。外から見れば「そのテーブルはIcebergテーブルでもある」。

これでSnowflake・Trino・BigQueryからIcebergで読み、Databricks内ではDeltaで書くことが可能になる。**「Delta陣営」という陣営を無意味にする道**をDatabricks自身が開いた。

2024年6月のTabular買収以降、この戦略は一層深まった。2025年には「DeltaとIcebergを別々のフォーマットとして扱わず、同じメタデータとして見る」方向が固まった。

3.3 それでもDeltaが生き残る理由

- **Databricks内ではDeltaの方が速い。** Liquid Clustering、Predictive I/O、PhotonなどはDelta専用の最適化が多い。

- **Spark Structured Streamingとの統合。** Deltaが最も自然。

- **Delta Sharing。** データ共有標準として定着。

要するに: **「Icebergが標準になった世界で、DeltaはDatabricksの内部最適化フォーマットの座を得た。」** これが2026年の絵だ。

4章 · Apache Hudi (Uber) — ニッチな魅力

4.1 Hudiのアイデンティティ

Hudiは2016年にUberが作り2019年にApacheへ寄贈したテーブルフォーマットだ。**「upsert-first」**がアイデンティティ。

最初から「データレイクにどう頻繁な更新を反映するか」を解いた。Uberが分単位でCDC (Change Data Capture)イベントを反映する必要があったのが出発点だ。

Hudiの2つのストレージタイプ

[ Copy-on-Write (CoW) ]

書込: 影響を受けたParquetファイル全体を再書き込み

読込: 速い (ただのParquet)

向き: 読込多・書込少の分析

[ Merge-on-Read (MoR) ]

書込: 差分を別のログファイル(Avro)に積む

読込: Parquetとログをマージ (リアルタイムビュー)

向き: 頻繁な更新・削除 (CDC)

4.2 Hudiの強み — インデックスと差分クエリ

Iceberg・Deltaがまだ追いつけない2つ。

- **レコードレベルインデックス。** Bloomフィルタ、HBase、bucket indexなどで「このuser_idがどのファイルにあるか」を即座に見つける。upsertが速い根本的な理由。

- **差分クエリ (Incremental Query)。** 「このコミット以降に変わった行だけ」のようなクエリを一級でサポート。CDCパイプラインの下流にそのまま繋げる。

この2つはまさに**Iceberg v3が追いつこうとしている**領域だ。Iceberg v3はrow-level deletes・equality deletes・merge-on-readを強化中で、2026年に追いつく可能性が高い。だからHudiは「ニッチな強者」の座を守っている。

4.3 Onehouse — Hudiの商用化の道

Hudi共同創設者Vinoth Chandarが2021年に作った会社。**「Universal Data Lakehouse」**を旗印に、Hudi・Iceberg・Deltaすべてを扱うマネージドサービスを売る。Hudiの会社がHudiだけを売らないのが興味深い。

2024-25年にOnehouseがリリースした2つのツールが意味深かった。

- **Apache XTable (旧OneTable)。** Hudi・Iceberg・Delta間のメタデータ変換を行う。同じParquetを3つのフォーマットのメタデータで同時に露出。UniFormのオープン版。

- **Open Engines。** Hudiのインデックス・差分処理を他のフォーマットにも適用できるエンジン層。

5章 · Apache Paimon (Flinkチーム) — 新しい挑戦者

5.1 なぜまた新しいテーブルフォーマットなのか

Iceberg・Delta・Hudiはみな出発点が「バッチ分析」だ。ストリーミングはその上に乗せて使う形だった。

**Paimonは出発点が「ストリーミング」だ。** Apache Flinkチーム内で2022年に始まり、2024年にApache Top Level Projectに昇格した。核となる違いはLSMツリー (Log-Structured Merge Tree)。

Paimon = 「LSMツリーの上に作ったテーブルフォーマット」

- LevelDBやRocksDBが使うあの構造

- メモリ → L0 → L1 → L2 ... 段階的なマージ

- 速い書込 + 効率的な読込 + 自然なコンパクション

- Flinkのチェックポイントと自然に結合する

5.2 Paimonが解く問題

- **リアルタイム・マテリアライズドビュー。** Flinkで作った集計をPaimonテーブルに入れ、Trinoや Sparkから即座に読む。

- **ストリーミングCDC。** Debeziumから受け取ったCDCイベントを分単位でPaimonテーブルに反映。Icebergより自然。

- **Lookup join。** FlinkジョブからPaimonテーブルをlookupテーブルとして使う。Kafka StreamsのGlobalKTableのような役割。

2025年時点でPaimonは中国のアリババ・バイトダンス内で最も使われ、西側へ広がっている。Icebergがバッチの標準なら、**Paimonは「ストリーミング・レイクハウス」の標準の座を狙う。**

5.3 IcebergとPaimonは競争か、補完か

これまでの流れを見ると**補完に近い。**

- Iceberg: 巨大な分析テーブル、スナップショットベース、タイムトラベル。

- Paimon: ストリーミング取り込み、頻繁な更新、マテリアライズドビュー。

2026年は両フォーマットを同じデータプラットフォーム内に共存させる構成が標準になるだろう。FlinkがPaimonに書き、キューブや集計が形になったらIcebergに固める形。

6章 · Tabular買収 (Databricks 2024年6月、10億ドル超) — 意味

6.1 何があったのか

2024年6月、DatabricksがTabularを10億ドル超で買収した。Iceberg共同創設者のRyan Blue、Daniel Weeks、Jason Reidが作った会社で、Icebergベースのマネージドデータプラットフォームを売っていた。

同時期にSnowflakeもTabularを買おうとしているという噂が強く流れた。結局Databricksが取り、**買収価格はTabularのARRに対して非常に高かった。** Databricksが見ていたのは売上ではなく人と標準だった。

6.2 何が変わったのか

- **DatabricksがIceberg標準への直接的な影響力を得た。** Iceberg PMCとコミッターの多くがDatabricks内部に入った。

- **Delta UniFormが加速した。** DeltaがIcebergを「真似」するのではなく、同じ会社が両フォーマットを共に発展させる。

- **Polaris (Snowflake)対Unity Catalog (Databricks)** というカタログ戦争が本格化した。Snowflakeが2024年6月にPolarisを発表したのも同じ流れ。Databricksは2024年6月にUnity Catalogをオープンソース化した。

この事件は**「テーブルフォーマット戦争が終わった」というシグナル**だった。Icebergが標準になり、カタログ・エンジン・サービス層で本当の競争が始まる。

6.3 Ryan Blueが残したメッセージ

買収後最初のカンファレンス (Iceberg Summit 2024)でRyan Blueが言った言葉が印象的だ。

> 「テーブルフォーマットは標準であるべきだ。標準が決まったら、本当の競争はその上で始まる。」

その通りだ。2026年のデータエンジニアリングは「どのフォーマットを選ぶか」ではなく、**「Icebergの上でどのエンジン・カタログ・UXを選ぶか」**の問題になった。

7章 · Onehouse — Hudi陣営の商用化

OnehouseはダビデとゴリアテのダビデのフォーカスにいるDatabricks・Snowflakeが数百億ドルを動かす中で、OnehouseはシリーズBを終えた小さな会社だ。だが自分の場所をはっきり持っている。

- **Apache XTable** — Hudi/Iceberg/Deltaメタデータ互換層。オープンソース。

- **Onehouse Cloud** — マネージドレイクハウス。Hudiベースだが Iceberg・Deltaとして同時に露出。

- **Open Engines** — インデックス・マテリアライズドビュー・CDC最適化を他のフォーマットにも適用。

Onehouseの仮説は単純だ。

> 「一社一フォーマットの時代は終わった。一社内にIceberg・Delta・Hudiが同時に存在するだろう。その間を滑らかに繋ぐ者が勝つ。」

2026年時点でこの仮説はますます当たってきている。実際のエンタープライズで「DatabricksはDelta、SnowflakeはIceberg、自社分析はHudi」が一社内に共存する光景が普通になった。

8章 · dbt — 変換の標準

8.1 dbtが何を変えたのか

dbt (data build tool)は2016年にFishtown Analytics (現dbt Labs)が始めた。核となるアイデアは単純だ。

> 「モデルをSQLで書け。依存関係はこちらが解決する。テストもSQLだ。ドキュメントもSQLから出る。」

以前はアナリストがSQLを直接書いてBIツールに埋め込んでいた。変換ロジックがどこにあるか、依存関係は何か、テストはどうするか — すべてが散らばっていた。

dbtが整理したもの:

models/

staging/

stg_orders.sql ← 原本 → クレンジング

stg_customers.sql

marts/

core/

dim_customers.sql

fct_orders.sql ← stg_orders, dim_customersを参照

tests/

not_null_dim_customers_id.sql

dbt_project.yml ← プロジェクト設定

- **SQLがそのままモデル。** 各ファイルはSELECT 1本で、dbtがそれをCREATE TABLE ASまたはCREATE VIEWに変える。

- **参照はJinjaマクロで。** `ref('stg_orders')`のような形。dbtが依存グラフを自動的に作る。

- **テストはSQL。** 「このカラムはnot nullでなければならない」「uniqueでなければならない」のようなアサーションをSQLクエリで表現。

- **ドキュメントはYAML。** 各カラム・モデルに説明を付ければdbt docsで可視化。

8.2 アナリティクスエンジニアという職種

dbtが生んだ最大の変化は**「Analytics Engineer」**という職種の登場だ。SQLを道具に、変換・モデリング・テスト・ドキュメントまで責任を持つ人。データエンジニアとアナリストの中間にいる。

2026年にはこの職種が多くのデータチームの多数派になった。Python・Sparkを扱うデータエンジニアがデータ取り込みとインフラを見て、アナリティクスエンジニアがdbtでモデルを書き、データアナリストがその上でBIをする。

8.3 dbtの競合

dbtが標準になった後に挑戦者が現れた。

- **SQLMesh** — Tobiko Dataが作ったdbtの代替。**virtual data environments** (スキーマコピーなしに変更を試す)と**column-level lineage** (カラムレベルの依存性)が差別化点。CI/CDをより真剣に扱う。

- **Coalesce** — UIベースのdbt代替。コードを直接書かずGUIで変換を作る。

- **dbt Mesh / dbt Cloud** — dbt Labsのエンタープライズ回答。プロジェクト間依存性、モデルガバナンス。

2026年時点でdbtは圧倒的だが、SQLMeshが急速に追いついている。両ツールとも核となる価値は同じだ — **SQLはコードだ。だからバージョニング・テスト・CI/CDが必要だ。**

9章 · Trino (旧PrestoSQL) / Presto — 分散OLAPクエリエンジン

9.1 Prestoの分岐点

Prestoは2012年にFacebookが作った分散SQLエンジンだ。2019年、コア開発者グループが会社を離れ**Trino** (当初の名前PrestoSQL)に分岐した。Presto Foundation (Linux Foundation)に残った側がPrestoDBで、実質Meta社内中心。

2026年時点:

- **Trino** — 業界の事実上の標準。Starburstが商用化。Iceberg・Delta・Hive・MySQL・PostgreSQL・MongoDB・Kafkaなど50以上のコネクタ。

- **Presto (PrestoDB)** — Meta内のみで生き残る。外部での採用はほぼ止まった。

分岐から6年以上経った今、**TrinoがPrestoの正統な後継者**となった。

9.2 Trinoの位置

Trinoは「**フェデレーテッド** (federated)クエリエンジン」だ。自分自身はデータを持たない。S3のIcebergテーブル、MySQLの運用DB、Kafkaのトピックを同じSQL 1本でJOINする。

-- Icebergテーブル ⋈ MySQLテーブル ⋈ PostgreSQLテーブル

SELECT

i.user_id,

m.user_name,

p.last_login,

SUM(i.amount) AS total_spent

FROM iceberg.analytics.purchases i

JOIN mysql.app.users m ON i.user_id = m.id

JOIN postgres.crm.profiles p ON i.user_id = p.user_id

WHERE i.event_date >= DATE '2026-05-01'

GROUP BY 1, 2, 3

これが1つのクエリで可能なのがTrinoのアイデンティティだ。**Trinoはデータレイクハウスの OLAP標準として定着した。**

9.3 誰がTrinoを使うのか

- **Netflix** — 作った会社。Iceberg + Trinoがそのまま彼らのデータプラットフォーム。

- **LinkedIn、Shopify、Lyft** — 一級採用組。

- **Starburst** — Trino創設者たちが作った商用会社。Trino Galaxy (マネージド)とTrino Enterpriseを売る。

- **AWS Athena**はPrestoベースだが次第にTrinoに近づいている。

9.4 Trino対DuckDB — 単一ノードの挑戦

興味深いのは、単一ノードではDuckDBがTrinoより速い場合が多いことだ。データが小さいか中程度 (数十〜数百GB)の時、DuckDBで十分でしばしばより速い。**Trinoは「本当に分散が必要な大きなクエリ」の場所に狭まりつつある。**

10章 · Spark 4 (2024年8月) + Apache Flink 2 — 処理エンジン

10.1 Spark 4の変化

Apache Spark 4.0が2024年8月に正式リリースされた。核となる変化3つ。

- **Spark Connectが安定化** — クライアントとサーバを分離、gRPCで通信。Python・Scala・Go・Rustクライアントがすべて可能。ノートブックやCIで軽いクライアントから重いクラスタを操作する。

- **Pandas API on Sparkが成熟。** `import pyspark.pandas as ps`でPandasコードをほぼそのまま分散実行。

- **ANSI SQLがデフォルト。** 4.0からANSIモードがデフォルト。暗黙キャスト・NULL処理が標準に合わせられた。

Sparkはもはや「Hadoopの次」ではない。**「Iceberg・Delta・Hudiどのフォーマットにも書き読みするETL・バッチエンジンの標準」**だ。

10.2 Flink 2の変化

Apache Flink 2.0が2025年初頭にリリースされた。核は**状態管理のクラウドネイティブ化**だ。

- **Disaggregated state** — 状態をRocksDBローカルから分離してS3・GCSに置くモード。大きな状態を持つジョブ (joins・セッションウィンドウ)が1ノードのメモリに閉じ込められない。

- **Hybrid Source** — 同じソースからバッチ (過去)とストリーミング (現在)をシームレスに繋ぐ。

- **PyFlinkの成熟。** Pythonユーザーが一級市民になった。

Flink 2 + Paimonが2026年の「ストリーミング・レイクハウス」標準になりつつある。

10.3 Spark対Flink — 何をいつ使うか

| 軸 | Spark | Flink |

| --- | --- | --- |

| バッチ | 標準 | 可能 |

| ストリーミング | Structured Streaming (マイクロバッチ) | 真のストリーミング (イベント単位) |

| レイテンシ | 秒単位 | ミリ秒単位 |

| 状態管理 | 弱い | 一級 |

| ML / DataFrame | 非常に強い | 弱い |

| 人材プール | 非常に大きい | 中程度 |

**ETL・バッチ・MLはSpark、真のストリーミングはFlink。** 2026年にもこの構図は維持される。ただSparkのStructured Streamingが十分に良くなり、「秒単位レイテンシならSparkで十分」というケースが増えた。

11章 · Databricks / Snowflake / BigQuery / ClickHouse — クラウドデータプラットフォーム

11.1 Databricks — レイクハウスの元祖

- **Unity Catalog** — 2024年6月オープンソース化。データ・AI・ノートブック・feature・modelすべて1カタログに。

- **Delta + Iceberg両刀使い。** UniFormで同じデータを両フォーマットで露出。

- **Mosaic AI** — MosaicML買収後、モデル学習・サービングまで1プラットフォームで。

- **Photon** — ベクトル化されたネイティブクエリエンジン。Spark SQLがANSIを敷きPhotonがその下で速く回る。

2026年Databricksのメッセージ: 「データ + AI = 1プラットフォーム。」単純なETL・BIではなくモデル学習まで1箇所で。

11.2 Snowflake — ウェアハウスからレイクハウスへ

伝統的なウェアハウスとして始まったが、2024-25年に急速にレイクハウス方向へ動いた。

- **Polaris Catalog** — 2024年6月発表、2025年Apacheへ寄贈。Iceberg REST標準の参照実装。

- **Iceberg Tables** — Snowflake内でIcebergテーブルを一級に。外部エンジン (Spark・Trino)が同じデータを読む。

- **Snowpark** — Python・Java・ScalaでSnowflake内コード実行。UDF・UDTF・Stored Proc。

- **Cortex** — LLM・ML機能をSQLで呼ぶ。

Snowflakeのメッセージ: 「Icebergが標準になっても、私たちはその標準の一級市民だ。」

11.3 BigQuery — Googleの答え

- **BigLake** — 外部Iceberg・Delta・HudiテーブルをBigQueryで読み書き。

- **BigQuery Studio** — ノートブック・SQL・Pythonを1ワークベンチに。

- **Gemini in BigQuery** — 自然言語でSQL作成・コード補完。

BigQueryはGCP内にいる限り最も滑らかな選択だ。BigLakeでIcebergを受け入れたのが2025年の大きな変化。

11.4 ClickHouse Cloud — リアルタイムOLAPの強者

ClickHouseは正統なOLTP/HTAPではなく、**リアルタイム分析に特化した列指向DB**だ。2022年Yandexから分離してClickHouse Inc.として始まり、2024-25年にCloudが大きく成長した。

- **ミリ秒単位の応答。** 数十億行で1秒以内の集計。

- **Materialized Viewが一級。** 取り込み時点で集計が作られる。

- **使用例:** プロダクト分析 (Plausible・PostHog)、可観測性 (Logs・Metrics)、広告分析。

ClickHouseは「データレイクハウスの一部」というより**「リアルタイムOLAP用の別エンジン」**として定着した。Icebergとは外部テーブルで繋ぐ。

12章 · AWS Athena + Glue — クラウドマネージド

12.1 Athena — S3上のサーバレスSQL

AWS AthenaはPresto/Trinoベースのサーバレスクエリエンジンだ。S3にあるParquet・ORC・Iceberg・DeltaファイルをSQLでそのままクエリする。クラスタを立てたり管理したりしない。

-- Icebergテーブルクエリ (Athena v3エンジン)

SELECT

event_date,

COUNT(*) AS events,

COUNT(DISTINCT user_id) AS dau

FROM iceberg_catalog.analytics.events

WHERE event_date BETWEEN DATE '2026-05-01' AND DATE '2026-05-15'

GROUP BY 1

ORDER BY 1

- 課金はスキャンしたデータ量基準 ($5/TB)。

- Iceberg一級対応 (2022年から)。

- Athena for Spark (2022)でSparkジョブもサーバレスで回せる。

12.2 Glue — カタログ + ETL

- **Glue Data Catalog** — AWSの標準メタストア。Hive Metastore互換。Athena・Redshift Spectrum・EMR・SageMakerがすべてここを見る。

- **Glue ETL** — SparkベースのサーバレスETL。

- **Glue Studio** — ビジュアルETLビルダー。

Glue Data CatalogがIceberg RESTを真似るアダプタを2024年に出した。AWS内で「Iceberg + Athena + Glue Catalog + S3」が最も自然な組み合わせになった。

12.3 S3 Tables (2024年12月)

2024年12月にAWSが発表した**S3 Tables**が大きな変化だった。S3自体がIcebergテーブルを一級で管理する。自動コンパクション・スナップショット期限切れ・メタデータ管理までS3が直接。

S3 (オブジェクトストレージ)

|

v

S3 Tables (Iceberg一級) ← コンパクション・期限・統計を自動管理

|

v

Athena · EMR · Glue · Redshift · Trino · Spark

この1歩の意味が大きい。**クラウド事業者がIcebergを直接扱い始めた。** 「Icebergが標準だ」という最後の釘が打たれた。

13章 · DuckDB — 「Analytics版SQLite」

13.1 DuckDBの正体

DuckDBは2019年にオランダのCWIで始まった**インプロセスOLAPデータベース**だ。核となるスローガンは「SQLite for analytics.」サーバを立てず、ライブラリとしてインポートしてそのプロセス内でSQLを回す。

Parquetを直接クエリ。クラスタ・サーバなし。

result = duckdb.sql("""

SELECT

user_id,

COUNT(*) AS events,

SUM(amount) AS total

FROM 's3://my-bucket/events/*.parquet'

WHERE event_date >= '2026-05-01'

GROUP BY user_id

ORDER BY total DESC

LIMIT 100

""").df() # → Pandas DataFrame

これがすべてだ。PostgreSQLクライアントも、Sparkクラスタも、Snowflakeアカウントも要らない。

13.2 なぜDuckDBが爆発したのか

2024-25年にDuckDBのGitHubスターが4倍近く増えた。理由は単純だ。

- **クラウドのメモリ・ディスクが大きくなりすぎた。** 128GB・256GB RAMインスタンスが時間あたり数ドル。数十GBの分析は単一ノードで十分速い。

- **Apache Arrow / Parquetとの一級統合。** Pandas・Polarsとzero-copy。

- **インプロセス。** Lambda・ノートブック・CIどこでも回る。

- **MotherDuck** — 2022年に作られた商用。ローカルDuckDBとクラウドを繋ぐ「hybrid execution.」

13.3 DuckDBが占めた場所

- **ノートブック分析。** Pandasより速くSQLの方が自然な場合が多い。

- **CI・テスト。** Spark・BigQueryより速く検証。

- **組み込み分析。** デスクトップアプリ・CLI・BIツール内に組み込み。Tableau・Hexが内部的にDuckDBを使うケースが増えた。

- **Edge analytics。** WASMビルドでブラウザ内で回る。

**Spark・Trinoが「本当に分散が必要か?」という質問を受け始めた。** データが1TB以下なら、DuckDBで十分なケースが多い。

14章 · Apache Arrow / Parquet / ORC / DataFusion — 低レイヤの標準

14.1 Apache Arrow — インメモリ列指向標準

データをディスクに置く標準がParquetなら、メモリで扱う標準はApache Arrowだ。

- **列指向インメモリ形式。** 同じデータをPython・Java・C++・Rust・Goがzero-copyで共有。

- **Arrow Flight** — gRPCベースのデータ転送標準。Snowflake・BigQueryの結果をArrowで受け取るのが一般化された。

- **Arrow DataFusion** — 下で扱う。

Pandas 2.0 (2023)からArrowがバックエンドに入り、Polarsは最初からArrowベース。**「DataFrameはArrowの上にある」が標準になった。**

14.2 Parquet対ORC — ディスク形式

- **Apache Parquet** — Twitter・Cloudera出身。事実上の標準。Iceberg・Delta・Hudi・Paimonがすべてデフォルトで Parquetを使う。

- **Apache ORC** — Hortonworks・Hive出身。Hive・Presto エコシステムで一時強く今も生きているが、新規プロジェクトはほぼParquet。

差は小さい。圧縮率・スキャン性能でシナリオごとに入れ替わる。だがエコシステムのモメンタムがParquetに圧倒的だ。**2026年に新しいプロジェクトをParquet以外で始める理由は事実上ない。**

14.3 Apache DataFusion — Rustクエリエンジン

DataFusionはApache Arrowプロジェクトの一部として始まった**Rustで書かれたSQLクエリエンジン**だ。Andy Groveが作り、2021年にApacheに入った。

- **Arrowネイティブ。** インメモリ表現がArrow。

- **組み込み。** ライブラリとしてインポートして自プロセス内でSQL。

- **速い。** ベクトル化実行。SIMDを活用。

DataFusionの位置は興味深い。DuckDBと直接競争するのではなく、**他のシステムの内部エンジン**として採用されている。

- **InfluxDB 3.0** — 時系列DB。内部SQLエンジンをDataFusionに置き換え。

- **Comet** — Sparkの一部演算をDataFusionで加速。

- **LanceDB・GreptimeDB・Sail** — 新興DBがDataFusionをコアに。

- **Ballista** — DataFusionベースの分散実行。

**「RustでDBMSを作るならSQLエンジンはDataFusionから始めろ」**が2026年のデフォルトになった。

15章 · 韓国 / 日本 — Toss、Kakao KaaP、メルカリ、ZOZO

15.1 Tossデータ — 単一データプラットフォーム

韓国のフィンテックTossは2025年にデータプラットフォームをApache Iceberg + dbt + Trino + Airflowの組み合わせで再構成した。SLASH 25カンファレンス発表から:

- **Iceberg上に事実上すべての分析データ。** S3 + Glue Catalog + Iceberg。

- **dbtで変換。** アナリティクスエンジニア職種を運用。

- **Trino + Athenaでクエリ。** ユーザーはSQLだけ。

- **Airflowでオーケストレーション。** dbtジョブとSparkジョブの両方を管理。

特にTossが強調したのが**「データセルフサービス」**だった。データエンジニアが取り込みとインフラだけを担当し、分析・モデリングはアナリティクスエンジニア・アナリスト自身が。

15.2 Kakao KaaP (Kakao as a Platform)

KakaoはKaaPという名の社内データプラットフォームを運用する。核はマルチテナント分析インフラ。

- **S3 + HDFSハイブリッド。** 社内データセンターHDFS + クラウドS3。

- **Spark・Trino共有クラスタ。** チーム別ワークスペース。

- **Airflowベースのワークフロー標準化。**

- **自前メタストア** — 社内ガバナンス・権限の統合。

2025-26年KaaPはIceberg採用を急速に増やしている。既存のHiveテーブルからIcebergへの移行が大きな課題。

15.3 メルカリ — 日本のデータプラットフォーム

メルカリは日本を代表するC2Cマーケットプレイス。データプラットフォームはBigQuery + dbt + Lookerの組み合わせが中心。

- **BigQuery中心。** GCP上で運用。

- **dbtで変換。** アナリティクスエンジニア職種を早期導入。

- **LookerでBI。**

- **DataformとBigLake** — Iceberg・外部テーブルを次第に受け入れている。

2024年のメルカリエンジニアリングブログが「BigLakeで外部Icebergを受け入れる」を扱ったのが印象的だ。日本企業の中で最も速くレイクハウス方向へ動いた。

15.4 ZOZO — 日本のファッションコマース

ZOZOTOWNの親会社。データプラットフォームはBigQuery + Dataformの組み合わせがメイン。

- **BigQuery中心。**

- **Dataform** — Googleが買収したdbt代替。社内標準。

- **データメッシュ (Data Mesh)** — ドメイン別の分散運用。カタログ・ガバナンスが核となる課題。

ZOZOはデータメッシュを早期に試した日本企業の1つとして知られる。2024年ZOZO Tech Blogで「ドメイン別責任分散」を強調した記事がよく引用される。

16章 · 誰が何を選ぶべきか — SMB / エンタープライズ / ストリーミング / 分析

規模と要件別に整理。

16.1 SMB・スタートアップ (月コスト5,000ドル以下)

| 領域 | おすすめ |

| --- | --- |

| ストレージ | S3 + Parquet |

| テーブルフォーマット | 最初はただのParquet、大きくなったらIceberg |

| エンジン | DuckDB + (任意) Athena |

| 変換 | dbt-core |

| オーケストレーション | dbtスケジュール + GitHub Actions |

| BI | Metabase・Lightdash |

核: **クラスタを立てるな。** DuckDBが100GBまで十分。AthenaはSQLを投げるだけ。Snowflake・Databricksはデータが本当に大きくなりアナリストが5人を超えるまでは高い。

16.2 ミドルサイズ (月5,000〜50,000ドル)

| 領域 | おすすめ |

| --- | --- |

| ストレージ | S3 / GCS / ADLS |

| テーブルフォーマット | **Iceberg** |

| エンジン | Trino (Starburst Galaxy)、マネージドSpark |

| 変換 | dbt CloudまたはSQLMesh |

| カタログ | Glue・Polaris・Unity Catalog |

| BI | Looker・Hex・Mode |

ここからIcebergが意味を持つ。データエンジニアが2-3人いて、アナリストが10人以上、データインフラのコストが大きい区間。

16.3 エンタープライズ

| 領域 | おすすめ |

| --- | --- |

| ストレージ | マルチクラウド (S3 + GCS) |

| テーブルフォーマット | Iceberg (Delta UniForm併用可) |

| エンジン | Databricks (全社) + Snowflake (特定部門) + Trino (セルフサービス) |

| 変換 | dbt + アナリティクスエンジニア組織 |

| カタログ | Unity CatalogまたはPolaris (組織標準を確立) |

| ガバナンス | Atlan・Collibra・OpenMetadata |

エンタープライズで最も難しいのがガバナンスだ。カタログが標準になって初めて、100以上のチームが同じデータを見ることが可能になる。

16.4 ストリーミング中心

| 領域 | おすすめ |

| --- | --- |

| 取り込み | Kafka |

| 処理 | Flink 2 |

| テーブルフォーマット | **Paimon** (またはHudi) |

| 下流分析 | Iceberg + Trino |

ストリーミング・マテリアライズドビューはPaimon、巨大な分析テーブルはIceberg。両フォーマットを同じプラットフォーム内で運用。

16.5 リアルタイムOLAP (プロダクト分析・可観測性)

| 領域 | おすすめ |

| --- | --- |

| エンジン | **ClickHouse Cloud** |

| 取り込み | Kafka → ClickHouse直接 |

| データ | リアルタイム + 日別集計 |

データレイクハウスの一部というより、別エンジン。ミリ秒応答が必要な場所。

17章 · まとめ — 標準になってから始まること

2010年代後半に「データレイク対データウェアハウス」の議論があった。2020年代初頭に「Iceberg対Delta対Hudi」の戦争があった。2026年時点で、両方とも終わった。

- **レイクハウスが標準。** オブジェクトストレージ + Parquet + テーブルフォーマット。

- **Icebergがテーブルフォーマットの事実上の標準。** DeltaはDatabricks内部の最適化フォーマット、Hudiはニッチ、Paimonはストリーミング補完。

- **エンジンは分離された。** Spark・Flink・Trino・DuckDB・ClickHouseをワークロード別に選ぶ。

- **カタログが次の戦場。** Unity Catalog・Polaris・BigLakeが競争する。

- **dbtが変換の標準。** SQLはコードであり、アナリティクスエンジニアという職種が定着した。

Tabular買収後にRyan Blueが言った言葉をもう一度引用する。

> 「標準が決まったら、本当の競争はその上で始まる。」

これが2026年のデータエンジニアリングの1行要約だ。Icebergが標準であることは、もはや議論の対象ではない。今や本当の仕事はその上で起きる — カタログ・ガバナンス・UX・AI統合・リアルタイム同期・マルチクラウド。

**私たちが今作っているデータプラットフォームは、5年後も同じIcebergメタデータを抱えているだろう。** それが「標準」という言葉が意味するところだ。

参考 / References

- Apache Iceberg — https://iceberg.apache.org

- Apache Iceberg REST Catalog Spec — https://github.com/apache/iceberg/blob/main/open-api/rest-catalog-open-api.yaml

- Delta Lake — https://delta.io

- Delta UniForm — https://docs.databricks.com/aws/en/delta/uniform

- Apache Hudi — https://hudi.apache.org

- Apache Paimon — https://paimon.apache.org

- Tabular acquisition (Databricks blog, Jun 2024) — https://www.databricks.com/blog/databricks-tabular

- Unity Catalog OSS — https://www.unitycatalog.io

- Apache Polaris — https://polaris.apache.org

- AWS S3 Tables (re:Invent 2024) — https://aws.amazon.com/s3/features/tables/

- dbt Labs — https://www.getdbt.com

- SQLMesh — https://sqlmesh.com

- Trino — https://trino.io

- Starburst — https://www.starburst.io

- Presto — https://prestodb.io

- Apache Spark — https://spark.apache.org

- Spark Connect — https://spark.apache.org/docs/latest/spark-connect-overview.html

- Apache Flink — https://flink.apache.org

- Databricks — https://www.databricks.com

- Snowflake — https://www.snowflake.com

- BigQuery / BigLake — https://cloud.google.com/biglake

- ClickHouse Cloud — https://clickhouse.com/cloud

- AWS Athena — https://aws.amazon.com/athena/

- AWS Glue — https://aws.amazon.com/glue/

- DuckDB — https://duckdb.org

- MotherDuck — https://motherduck.com

- Apache Arrow — https://arrow.apache.org

- Apache Parquet — https://parquet.apache.org

- Apache ORC — https://orc.apache.org

- Apache DataFusion — https://datafusion.apache.org

- Onehouse — https://www.onehouse.ai

- Apache XTable — https://xtable.apache.org

- Project Nessie — https://projectnessie.org

- Toss SLASH 25 — https://toss.tech/slash-25

- メルカリ Engineering — https://engineering.mercari.com

- ZOZO TECH BLOG — https://techblog.zozo.com

현재 단락 (1/435)

2010年代初頭、「データをどこに置くか」は単純だった。構造化データはデータウェアハウス(Teradata・Oracle Exadata・Vertica)、ログや半構造化データはHadoop HDFS...

작성 글자: 0원문 글자: 22,451작성 단락: 0/435