従来、データ基盤は「データレイク」と「データウェアハウス」を組み合わせるのが一般的でした。
しかしこの構成は、システムの複雑さや運用コストの増大といった課題を抱えていました。
データレイクハウス(以下、レイクハウス)は、これらの課題を解決するために登場した新しいアーキテクチャです。
本記事では、その概要と、実現の鍵となる「Delta Lake」について紹介します。
レイクハウスとは
レイクハウスとは、一言でいえば「データレイク」と「データウェアハウス」を統合させた、新しいデータ基盤のアーキテクチャです。
まず、レイクハウスを構成する「データレイク」と「データウェアハウス」の主な用途と課題について、簡単に説明します。
データウェアハウス(例: Amazon Redshift)
用途: BIツールでの集計やレポーティング。構造化されたデータを高速に分析できる。信頼性が高いのが特長。
課題: 画像やテキストといった非構造化データの扱い。
データレイク(例: Amazon S3)
用途: あらゆる種類(構造化、非構造化)のデータを、そのままの形式で低コストに大量保存できる。
課題: そのままでは信頼性が低く、データの品質が管理されないデータスワンプになりがち。
従来は、これら2つをETLという処理で繋ぎ合わせる「2層アーキテクチャ」が一般的でしたが、レイクハウスはこの構造を根本から変えます。
出典:Databricks Japan Blog「レイクハウス探訪 - Databricksの全貌に迫る」
レイクハウスは、低コストなデータレイクを土台とし、その上にDelta Lakeなどのオープンテーブルフォーマット技術を使って、データウェアハウスの信頼性や管理機能を直接実装します。
これにより、単一のシステムで多様なデータを高い信頼性をもって扱えるようになります。
レイクハウスの特徴
レイクハウスアーキテクチャには、主に以下の特徴があります。
シンプルアーキテクチャ
データウェアハウスとデータレイクを別々に持つ必要がなくなります。
構造化データから非構造化データまで、あらゆるデータを一つの基盤で管理し、BIツールでの分析も直接行えるため、アーキテクチャ全体がシンプルになり、運用コストも削減されます。
高い柔軟性とコスト効率
計算処理能力とデータ保存領域が分離されています。
これにより、大量のデータを安価なクラウドオブジェクトストレージに保存しつつ、処理量に応じてコンピューティングリソースを柔軟に拡張・縮小できるため、コスト効率が向上します。
信頼できるデータの共有
データが複数のシステムに散在しなくなるため、「どのデータが正しいのか?」という問題が解消され、常に信頼できるデータにアクセスして協業を進めることができます。
このように信頼できるデータを段階的に構築していくための代表的な設計パターンとして「メダリオンアーキテクチャ」があります。
高度なデータ活用
データの信頼性が担保されることで、単なる集計・分析だけでなく、リアルタイム分析や機械学習といった高度なデータ活用を、安心して同じ基盤の上で行うことが可能になります。
また、DatabricksのUnity Catalogを使えば、誰がどのデータにアクセスできるかを一元的に管理し、データのリネージを追跡することも可能です。
Delta Lakeとは
レイクハウスアーキテクチャを実現するための中核技術が「オープンテーブルフォーマット」です。
これはデータレイク上のファイル群に、データベースのような信頼性や管理機能を与える仕組みを指します。
この分野には、Delta Lakeの他にApache IcebergやApache Hudiといったオープンソース技術も存在しますが、本記事ではDatabricksプラットフォームの中核をなすDelta Lakeに焦点を当てて解説します。
Delta Lakeは、Databricksのレイクハウスを支える最適化されたストレージレイヤーです。
その本質は、一般的なデータファイル(Parquet形式)にファイルベースのトランザクションログを組み合わせる点にあります。
このログが、テーブルに対する全ての変更を正確に記録することで、データレイクでは難しかったACIDトランザクションや、ペタバイト規模のデータを扱うスケーラビリティ、さらにはリアルタイムのストリーミングとバッチ処理の統合を実現します。
ここでは、Delta Lakeが提供する主な機能を紹介します。
ACIDトランザクション
取引の信頼性を保証する仕組み(原子性、一貫性、分離性、耐久性)です。
これにより、データ処理ジョブが失敗してもデータが破損したり、複数人が同時に書き込みを行ってもデータが不整合な状態になったりするのを防ぎます。
データレイク上でミッションクリティカルな処理を実行する上で不可欠な機能です。
スキーマ強制とスキーマ進化
スキーマ強制は、テーブルに定義されたデータ型(例:数値型)と異なるデータ(例:文字列)が書き込まれるのを防ぎ、テーブルの汚染を未然に防止します。
一方でスキーマ進化は、ビジネスの変化に応じて、後からテーブルに新しい列を追加したい場合も、既存のデータを壊すことなく安全にスキーマを変更できます。
タイムトラベル
トランザクションログに全ての変更履歴がバージョンとして保存されているため、テーブルを過去の任意の時点の状態に戻すことができます。
誤ってデータを削除・更新してしまった際に操作前の状態にテーブルを復元したり、過去の特定の時点のデータでレポートを再作成したり、監査証跡として利用したりできます。
DML操作(UPDATE, DELETE, MERGE)のサポート
従来のデータレイクでは困難だった、特定の行に対する更新・削除といった操作を、標準的なSQLで簡単に行えます。
これにより、業務データベースからの変更差分を反映したり、GDPRなどで求められる個人データの削除要求に対応したりすることが効率的に実現できます。
まとめ
レイクハウスは、データレイクの柔軟性とデータウェアハウスの信頼性を兼ね備えた、シンプルで効率的なアーキテクチャです。
その実現の核となるオープンテーブルフォーマット(Delta Lakeなど)は、データレイク上にトランザクションログを追加することで、ACIDトランザクションやタイムトラベルといった強力な機能を提供し、レイクハウスを実現します。
データ活用の重要性が増す中で、信頼性が高く、柔軟で、コスト効率の良いデータ基盤を構築することは、企業の競争力を左右します。
レイクハウスアーキテクチャは、そのための最も有力な選択肢の一つと言えるでしょう。
参考
データレイクとデータウェアハウスとは?それぞれの強み・弱みと次世代のデータ管理システム「データレイクハウス」を解説
Databricks の Delta Lake とは何ですか?
Build Lakehouses with Delta Lake
Yuki Oda(記事一覧)