Data Lakehouse:
データレイクハウス

用語集のトップページへ

データレイクハウスとは?

データレイクハウスとは、データレイクの柔軟性、経済性、スケーラビリティとデータウェアハウスのデータ管理や ACID トランザクションの機能を取り入れたオープンで新たなデータ管理アーキテクチャで、あらゆるデータにおけるビジネスインテリジェンス(BI)と機械学習(ML)を可能にします。

シンプル、柔軟で低コストなデータレイクハウス

データレイクハウスは新たなオープンシステムデザインによって構築されており、データウェアハウスと類似のデータ構造とデータ管理機能を、データレイクに使用される低コストのストレージに直接実装しています。データレイクとデータウェアハウスを単一のシステムに統合することで、データ部門が複数のシステムにアクセスする必要がなくなり、データ処理が迅速化します。さらに、データレイクハウスは、データサイエンス、機械学習、ビジネスアナリティクスのプロジェクトに利用できる、有用で最新のデータを組織に提供します。 データウェアハウスからデータレイク、レイクハウスへ、データストレージの革新

データレイクハウスを実現する主要テクノロジー

次のような主要な技術の向上により、データレイクハウスは実現しました。
  • データレイクのためのメタデータレイヤー
  • データレイクで高性能な SQL 実行を可能にする新たなクエリエンジン設計
  • データサイエンスと機械学習ツールへの最適化されたアクセス
メタデータレイヤーは、オープンソースの Delta Lake のように、Parquet ファイルなどのオープンなファイル形式上に配置され、異なるテーブルバージョンに含まれるファイルを追跡して、ACID 準拠のトランザクションなどの豊富な管理機能を提供します。メタデータレイヤーにより、ストリーミングの I/O サポート(Kafka のようなメッセージパスは不要)、古いテーブルバージョンへのタイムトラベル、スキーマの適用と展開、データの検証など、データレイクハウスでの一般的な機能が有効になります。性能は、データウェアハウスが 2 層アーキテクチャで存在する重要な理由の 1 つであり、データレイクハウスを企業の主要なデータアーキテクチャにするための鍵です。低コストのオブジェクトストアを使用するデータレイクでは、これまでアクセスに時間がかかっていましたが、レイクハウスは新たなクエリエンジンの設計により、高性能な SQL 分析が可能になります。これらの最適化には、RAM/SSD でのホットデータのキャッシュ(より効率的な形式にトランスコードされる可能性があります)、クラスタの同時アクセスデータのデータレイアウトの最適化、統計やインデックスなどの補助的なデータ構造、最新 CPU でのベクトル化された実行が含まれます。データレイクハウスは、これらの技術が統合されることにより、一般的なデータウェアハウスに匹敵する性能(TPC-DS 基準)を実現します。データレイクハウスで使用されるオープンなデータ形式(Parquet など)により、 レイクハウスのデータへのアクセスが容易になります。データサイエンティストや機械学習エンジニアは、Parquet や ORC などのソースにすでにアクセスがある pandas、TensorFlow、PyTorch、その他の DS/ML エコシステムにおける一般的なツールを使用できます。Spark DataFrames は、これらのオープンフォーマットに対応した宣言型のインターフェイスを提供し、さらなる I/O の最適化を可能にします。その他、データレイクハウスには、監査履歴やタイムトラブルなどの機械学習の再現性を高める機能も備わっています。データレイクハウスへの移行を支えるテクノロジーの進化については、CIDR レポート「レイクハウス:データウェアハウスと高度な分析を統合する新世代のオープンプラットフォーム」、またはリサーチペーパー「Delta Lake︓クラウドオブジェクトストアによる高性能ACID テーブルストレージ」で詳細をお読みいただけます。

データアーキテクチャの歴史

データウェアハウスの背景

データウェアハウスはこれまで、意思決定支援や BI(ビジネスインテリジェンス)アプリケーションにおいて広く利用されてきており、これには長い歴史があります。しかし、データウェアハウスには、構造化データの処理には適しているが、非構造化・半構造化データの処理には適していないという問題があり、高速で多様なデータの大規模処理やコスト効率に課題がありました。

データレイクの誕生

そこで、データサイエンスや機械学習用の安価なストレージで多様な形式の生データに対応するデータレイクが構築されました。データレイクはデータの格納には適していましたが、重要な機能が欠けており、トランザクションのサポートやデータ品質の保証がありません。一貫性と分離性の欠如により、アペンドと読み取り、バッチとストリーミングジョブを混在させることはほぼ不可能です。

一般的な 2 層データアーキテクチャ

そのため、データ部門はデータレイクとデータウェアハウスのデータで BI や ML を実行可能にするために、これらのシステムをつなぎ合わせる必要がありました。しかしその結果、重複データ、余分なインフラコスト、セキュリティ上の課題、大きな運用コストが発生します。 2 層データアーキテクチャでは、まず、データは運用データベースからデータレイクに ETL されます。このデータレイクは、企業のデータを低コストのオブジェクトストレージに格納します。データは一般的な機械学習ツールと互換性のある形式で保存されますが、適切に整理、維持されていない場合がほとんどです。次に、重要なビジネスデータの小さなセグメントで ETL をもう一度実行し、BI やデータ分析のためにデータウェアハウスにロードします。 2 層アーキテクチャでは、ETL ステップが複数あるため、定期的なメンテナンスを必要とし、データが古くて使えない場合もあります。データアナリストとデータサイエンティストはこの問題に大きな懸念を抱いていることが、 KaggleとFivetran による最近の調査でわかっています。 2 層アーキテクチャの問題点 の詳細は、こちらのブログで解説しています。

関連リソース


用語集のトップページへ