LESSON 30分

ストーリー

田中VPoE
データレイクとDWH、それぞれの課題は何だった?
あなた
データレイクは「何でも入るが分析しにくい、ACIDトランザクションがない」。DWHは「構造化データに強いが、非構造化データやMLワークロードに弱い、コストが高い」
田中VPoE
まさにそうだ。レイクハウスは、データレイクの柔軟性とDWHの分析性能を統合した第4世代のアーキテクチャだ。Delta Lake、Apache Iceberg、Apache Hudiがそのテーブルフォーマットだ
あなた
データレイク上にDWHの機能を載せるイメージですか?
田中VPoE
その通り。オープンなストレージ(S3/GCS)上にACIDトランザクション、スキーマ管理、タイムトラベルを実現する。DWHのようにデータをコピーする必要がなく、コスト効率が高い

レイクハウスとは

データレイク、DWH、レイクハウスの比較

観点データレイクDWHレイクハウス
ストレージオブジェクトストレージ専用ストレージオブジェクトストレージ
データ形式構造化 + 非構造化構造化のみ構造化 + 非構造化
ACIDトランザクションなしありあり
スキーマ管理スキーマオンリードスキーマオンライト両方対応
クエリ性能低〜中
コスト
ML/AIサポート直接アクセス可データエクスポートが必要直接アクセス可
タイムトラベルなし限定的あり
オープン性オープンベンダーロックインオープン

レイクハウスのアーキテクチャ

レイクハウスアーキテクチャ:

┌─────────────────────────────────────────────┐
│          クエリエンジン                        │
│  Spark / Trino / Presto / Databricks SQL    │
└──────────────────┬──────────────────────────┘

┌──────────────────┴──────────────────────────┐
│          テーブルフォーマット                   │
│  Delta Lake / Apache Iceberg / Apache Hudi  │
│  ┌─────────────────────────────────────┐    │
│  │ ACIDトランザクション                   │    │
│  │ スキーマ管理・進化                     │    │
│  │ タイムトラベル                        │    │
│  │ パーティション管理                     │    │
│  └─────────────────────────────────────┘    │
└──────────────────┬──────────────────────────┘

┌──────────────────┴──────────────────────────┐
│          オブジェクトストレージ                 │
│  S3 / GCS / ADLS  (Parquet ファイル)         │
└─────────────────────────────────────────────┘

テーブルフォーマットの比較

主要3フォーマット

観点Delta LakeApache IcebergApache Hudi
開発元DatabricksNetflix → ApacheUber → Apache
エコシステムDatabricks中心マルチエンジンSpark中心
トランザクションログJSON(Delta Log)Avro/JSON(Metadata)タイムライン
スキーマ進化列追加、型変更列追加/削除/リネーム、型変更列追加
タイムトラベル対応対応(Snapshot)対応
パーティション進化制限的対応(Hidden Partitioning)制限的
Z-Order対応対応(Sort Order)対応
エンジン互換性Spark, Trino, FlinkSpark, Trino, Flink, Presto, DremioSpark, Flink
採用企業DatabricksユーザーNetflix, Apple, AdobeUber, ByteDance

Iceberg の特徴的な機能

Apache Iceberg の Hidden Partitioning:

従来のHiveスタイル:
  s3://data/orders/year=2025/month=01/day=15/

  ユーザーは WHERE year=2025 AND month=01 AND day=15 と
  パーティション列を意識してクエリを書く必要がある

Iceberg の Hidden Partitioning:
  パーティション変換関数でパーティションを定義

  CREATE TABLE orders (
    order_id BIGINT,
    order_date TIMESTAMP,
    amount DECIMAL(10,2)
  )
  PARTITIONED BY (day(order_date))

  ユーザーは WHERE order_date = '2025-01-15' と
  自然なクエリを書くだけでパーティションプルーニングが効く

レイクハウスの実装パターン

パターン1: Databricks + Delta Lake

コンポーネントツール
ストレージS3 / ADLS
テーブルフォーマットDelta Lake
クエリエンジンDatabricks SQL
ETL/ELTDatabricks Notebooks / dbt
BILooker / Tableau
メタデータUnity Catalog

パターン2: AWS + Iceberg

コンポーネントツール
ストレージS3
テーブルフォーマットApache Iceberg
クエリエンジンAthena / EMR (Spark / Trino)
ETL/ELTGlue / dbt
カタログGlue Data Catalog
BIQuickSight / Looker

パターン3: GCP + BigLake

コンポーネントツール
ストレージGCS
テーブルフォーマットIceberg / Delta Lake
クエリエンジンBigQuery (BigLake)
ETL/ELTDataproc / dbt
カタログBigQuery Metastore
BILooker

「レイクハウスのテーブルフォーマット選定は、エンジンの互換性で決めることが多い。Databricks中心ならDelta Lake、マルチエンジンならIceberg。技術的な差は縮まりつつあるが、エコシステムの差は大きい」 — 田中VPoE


タイムトラベルとデータバージョニング

活用シーン

シーン説明クエリ例
データ復元誤って削除したデータの復元SELECT * FROM orders VERSION AS OF 42
監査過去の特定時点のデータ確認SELECT * FROM orders TIMESTAMP AS OF '2025-01-15'
ML再現性モデル学習時のデータセット再現特定バージョンのスナップショットを参照
デバッグパイプライン障害時の原因調査障害前後のデータ差分を確認

まとめ

ポイント内容
レイクハウスデータレイクの柔軟性とDWHの分析性能を統合
テーブルフォーマットDelta Lake、Iceberg、Hudiが主要な選択肢
主な利点ACIDトランザクション、タイムトラベル、スキーマ進化、コスト効率
実装パターンDatabricks + Delta Lake、AWS + Iceberg、GCP + BigLake

チェックリスト

  • レイクハウスのメリットをデータレイク・DWHと比較して説明できる
  • 3つのテーブルフォーマットの特性を理解した
  • 実装パターンを自組織のクラウド環境に合わせて選択できる
  • タイムトラベルの活用シーンを理解した

次のステップへ

次は「ディメンショナルモデリング」を学びます。ファクトテーブルとディメンションテーブルの設計手法、Slowly Changing Dimensionの実装方法を身につけましょう。


推定読了時間: 30分