メインコンテンツまでスキップ

🧩 Data Lake / Lakehouse

✅ このスタイルの概要

生データを低コストに蓄積する“Data Lake”と、DWH の管理性を組み合わせた“Lakehouse”のアプローチ。

✅ 解決しようとした問題

  • DWH では柔軟に扱えない半構造化/非構造化データ
  • ETL の前に捨てられる可能性がある生データ
  • 分析/ML/探索用途の増加に対応したい

✅ 基本思想・ルール

Data Lake

  • S3/GCS などのオブジェクトストレージに生データを蓄積
  • スキーマは読取時に適用(Schema on Read)

Lakehouse

  • Delta Lake / Iceberg / Hudi などでテーブル管理を強化
  • ACID, バージョン管理, インデックスなど DWH 的機能を提供

✅ 得意なアプリケーション

  • ML モデル学習のデータ基盤
  • ログ・クリックストリームなど大量データ処理
  • 半構造化データ(JSON / Parquet)の利活用

❌ 不向きなケース

  • 固定フォーマットの定型レポート中心の業務
  • データガバナンスを強く求める領域(Lakehouse が必要)

✅ 歴史(系譜・親スタイル)

  • Data Lake → 実運用での課題から Lakehouse に発展
  • Hadoop → クラウドオブジェクトストレージ → ACID Table へ進化

✅ 関連スタイル

  • DWH:強いスキーマと統合分析で補完
  • Lambda/Kappa:Lake をストリーミングレイヤーと統合

✅ 代表的なフレームワーク

Data Lake

  • AWS S3 / Google Cloud Storage / Azure Data Lake Storage
    生データを大規模に蓄積する Data Lake の中心的ストレージ。

  • Apache Spark
    Lake 上のデータ処理の中心的存在。

  • Trino / Presto
    Data Lake に対する SQL クエリ実行エンジン。

Lakehouse

  • Delta Lake(Databricks)
    ACID テーブル/Time Travel/バージョニングの提供。

  • Apache Iceberg / Apache Hudi
    Lakehouse を OSS として実現するためのテーブルフォーマット。

✅ このスタイルを支えるデザインパターン

  • Iterator
    大規模データをストリーム/チャンク単位で扱う際に利用。

  • Strategy
    データ処理エンジン(Spark / Presto)ごとの実行方式を切り替える。

  • Template Method
    ETL / ELT の共通手順を統一する。

  • Facade
    Data Lake / Lakehouse の複雑な API を隠し、統一的に扱うメタレイヤで使われる。

✅ まとめ

Data Lake / Lakehouse は、
大量・多様・高速なデータを扱う現代のデータ基盤の中心的アプローチ である。