レイクハウスアーキテクチャ
田中VPoE「DWHの設計は理解できたね。でも最近は、DWHだけでは対応しきれないユースケースも増えてきている。」
あなた「具体的にはどんなケースですか?」
田中VPoE「例えば、画像データや自然言語テキストを使った機械学習。こういう非構造化データはDWHに入れるのが難しい。そこで登場するのがレイクハウスというアーキテクチャだ。」
データレイクとは
データレイク(Data Lake)は、構造化・半構造化・非構造化のあらゆるデータをそのまま格納するストレージです。
データウェアハウスとの比較
| 項目 | データウェアハウス | データレイク |
|---|---|---|
| データ形式 | 構造化データのみ | あらゆる形式 |
| スキーマ | Schema-on-Write | Schema-on-Read |
| ストレージ | 専用ストレージ | オブジェクトストレージ |
| コスト | 高い(計算込み) | 安い(ストレージのみ) |
| ユーザー | アナリスト | データサイエンティスト |
| クエリ性能 | 高い | 低い(最適化なし) |
データレイクの課題
データレイクは柔軟性が高い反面、管理が不十分だと「データスワンプ(データの沼)」に陥りがちです:
| 課題 | 説明 |
|---|---|
| データ品質 | 誰でも書き込めるため品質が保証されない |
| メタデータ管理 | どのデータが何を意味するか不明 |
| ACIDトランザクション | 通常のオブジェクトストレージでは非対応 |
| クエリ性能 | インデックスやパーティションの管理が手動 |
| ガバナンス | アクセス制御や監査ログが不十分 |
レイクハウスとは
レイクハウス(Lakehouse)は、データレイクの柔軟性とDWHの信頼性を両立する新しいアーキテクチャです。
レイクハウスの構成
┌──────────────────────────────────────┐
│ Analytics / ML / BI │
├──────────────────────────────────────┤
│ Compute Engine │
│ (Spark / Presto / Trino) │
├──────────────────────────────────────┤
│ Table Format Layer │
│ (Delta Lake / Apache Iceberg / Hudi)│
├──────────────────────────────────────┤
│ Object Storage │
│ (S3 / GCS / ADLS) │
└──────────────────────────────────────┘
テーブルフォーマットの役割
テーブルフォーマットが、オブジェクトストレージにDWHの機能を追加します:
| 機能 | Delta Lake | Apache Iceberg | Apache Hudi |
|---|---|---|---|
| ACIDトランザクション | 対応 | 対応 | 対応 |
| スキーマ進化 | 対応 | 対応 | 対応 |
| タイムトラベル | 対応 | 対応 | 対応 |
| パーティション進化 | 限定的 | 対応 | 限定的 |
| 隠れたパーティション | なし | 対応 | なし |
| エコシステム | Databricks中心 | オープン | Uberが開発 |
| 採用傾向 | 広く普及 | 急成長中 | ニッチ |
タイムトラベルの例
-- Delta Lake: 過去のバージョンを参照
SELECT * FROM orders VERSION AS OF 5;
-- Apache Iceberg: タイムスタンプ指定
SELECT * FROM orders
FOR SYSTEM_TIME AS OF '2025-01-01 00:00:00';
メダリオンアーキテクチャ
レイクハウスで広く採用されているデータ管理パターンです。DWHの3層モデルと思想は同じですが、レイクハウスに最適化されています。
Bronze(ブロンズ層)→ Silver(シルバー層)→ Gold(ゴールド層)
生データ クレンジング済み ビジネス集計
| レイヤー | 対応するDWH層 | データの状態 | 例 |
|---|---|---|---|
| Bronze | Raw | 生データそのまま | JSONログ、CSVファイル |
| Silver | Staging | クレンジング・正規化済み | パース済みイベント |
| Gold | Mart | ビジネスロジック適用済み | KPIダッシュボード用集計 |
アーキテクチャの選定基準
| 要件 | DWH | データレイク | レイクハウス |
|---|---|---|---|
| 構造化データの分析 | 最適 | 可能 | 最適 |
| 非構造化データ | 不向き | 最適 | 最適 |
| 機械学習 | 限定的 | 最適 | 最適 |
| BIレポーティング | 最適 | 不向き | 良好 |
| コスト効率 | 中 | 高い | 高い |
| 運用複雑性 | 低い | 高い | 中 |
| 推奨規模 | 中小〜大 | 大規模 | 中〜大規模 |
NetShop社への提案
現状:MySQL → cron + シェルスクリプト → CSV → Excel
提案(Phase 1):
MySQL → Airbyte → BigQuery(DWH) → dbt → Looker
提案(Phase 2 - 将来):
MySQL ─────→ Airbyte → GCS(Lake)→ BigLake → dbt → Looker
画像データ ──→ │
ログデータ ──→ Iceberg format
Phase 1ではDWHで十分対応でき、将来的に非構造化データや機械学習の要件が出てきたらレイクハウスへ拡張する段階的アプローチが現実的です。
まとめ
| 項目 | ポイント |
|---|---|
| データレイク | あらゆる形式を格納できるが管理が難しい |
| レイクハウス | レイクの柔軟性 + DWHの信頼性 |
| テーブルフォーマット | Delta Lake / Iceberg がACID・スキーマ進化を提供 |
| メダリオン | Bronze → Silver → Gold の3層管理 |
| 選定基準 | 要件とフェーズに応じた段階的な導入が現実的 |
チェックリスト
- データレイクとDWHの違いを説明できる
- レイクハウスが解決する課題を理解している
- テーブルフォーマット(Delta Lake / Iceberg)の役割を説明できる
- メダリオンアーキテクチャの3層を理解している
次のステップへ
データ基盤のアーキテクチャパターンを理解しました。次は演習で、実際にNetShop社のデータパイプラインアーキテクチャを設計してみましょう。
推定読了時間:30分