データレイクハウスに関するFAQ

[What Is a Data Lakehouse and Answers to Other Frequently Asked Questions \- The Databricks Blog](https://databricks.com/blog/2021/08/30/frequently-asked-questions-about-the-data-lakehouse.html)の翻訳です。

# データレイクハウスとは何ですか？

簡単にいうと、データレイクハウスは、データレイクに蓄積された大量データに対して、直接AIおよびBIをセキュアかつ効率的に実行できるアーキテクチャです。

現在、多くの企業はデータをあらゆる種類のデータ(構造化データ、非構造化データ)を管理でき、処理を行うあらゆるツールに対してオープンなインタフェースを提供する低コストストレージシステムである[データレイク](https://databricks.com/discover/data-lakes/introduction)に格納しています。これらデータレイクでは、企業のフルセットのデータを活用したデータ変換、先進的な分析ワークロード(AIのような)のほとんどが実行されます。これとは別に、ビジネスインテリジェンス(BI)ユースケースにおいては、より小規模な構造化データのサブセットに対してプロプライエタリなデータウェアハウスシステムが使用されます。これらのデータウェアハウスは主にBIをサポートしており、SQLを用いて過去に対する問い合わせ(例：前四半期の売り上げは？)に答えますが、データレイクにはより膨大なデータが蓄積されており、SQLと非SQLインタフェースの両方を用いた分析をサポートしており、これには予兆分析やAI(例：我々の顧客の誰が解約しそうか、顧客に対していつ、どのようなクーポンを提供すべきか)が含まれます。歴史的に、AIとBIの両方を実現するには、複数のデータコピーを持たなくてはならず、データレイクとデータウェアハウスの間でデータを移動する必要があります。

[データレイクハウス](https://qiita.com/taka_yayoi/items/438f762126f57868aa35)によって、お持ちのデータすべてをデータレイクに格納し、そのデータに対して直接AI、BIを実施することが可能となります。企業の大量データ全てに対するAI、BIの両方を効率的に実行するための機能が提供されています。例えば、データレイクに対するBIを高速にするために、SQLとパフォーマンス機能(インデックス、キャッシング、MPPプロセッシング)を提供しています。また、SQLベースのデータウェアハウスの使用を強制することがないように、Python、データサイエンス、AIフレームワークのダイレクトサポート、ダイレクトのファイルアクセスをサポートしています。データレイクハウスを実装するために使用されているキーテクノロジーは、[Delta Lake](https://delta.io/)や、Hudi、Icebergのようなオープンソースです。データレイクハウスにフォーカスしているベンダーには、Databricks、AWS、Dremio、Starburstが含まれます。データウェアハウスを提供しているベンダーには、Teradata、Snowflake、Oracleなどが含まれます。

データウェアハウスの父と呼ばれたBill Inmonは最近、データレイクに対するデータサイエンスのフォーカスとデータウェアハウスのエンドユーザーの分析を組み合わせつつも、オープンな環境でデータ管理を行うレイクハウスのユニークな機能を説明したブログ記事[データレイクハウスへの進化](https://qiita.com/taka_yayoi/items/1ebbce9b76fb923d5e21)を公開しました。

# データウェアハウスとデータレイクハウスは何が違うのですか？

レイクハウスは、多くのケースで企業のデータの90%以上を格納している既存のデータレイク上に構築されます。多くのデータウェアハウスはそのようなデータにアクセスできるように「外部テーブル」をサポートしていますが、深刻な機能上の制限(例：読み取りオペレーションのみのサポート)と性能上の制限があります。レイクハウスは代わりに、既存データレイクに対して従来型のデータウェアハウスの機能を導入します。これには、ACIDトランザクション、きめ細かいデータセキュリティ、低コストの更新削除、ファーストクラスのSQLサポート、SQLクエリー性能の最適化、BIスタイルのレポーティングが含まれます。データレイク上に央地区することで、レイクハウスはデータレイクの全ての既存データ、テーブルに格納されている構造化データに加え、テキスト、音声、動画のようなあらゆる種類のデータを蓄積、管理します。また、オープンなAPIを用いたデータへの直接アクセスを提供することに加え、データウェアハウスとは異なり、PyTorch、TensorFlow、XGBoostなどのPython/Rライブラリと様々な機械学習をサポートすることで、データサイエンス、機械学習のユースケースをネイティブでサポートしています。このように、レイクハウスはBIからAIまで幅広い範囲をサポートしつつも、企業の全てのデータを管理するための単一のシステムを提供します。

一方、データウェアハウスは、構造化データおよび特定のタイプの準構造化データに対するSQLベースの分析に特化したプロプライエタリなデータシステムです。デーウェアハウスの機械学習のサポートは限定的であり、(ODBC/JDBC経由あるいはデータレイクに)データをエクスポートすることなしに、人気のオープンソースツールをネイティブに利用することができません。現在、データレイクに既に格納されている既存の音声、画像、動画データをネイティブでサポートしているデータウェアハウスシステムは存在しません。

# データレイクとレイクハウスは何が違うのですか？

データレイクに対して最も多い不満は、データレイクがデータスワンプ(沼)になってしまうというものです。誰でもあらゆるデータをデータレイクに投げ込みます。レイクにはデータに対する構造やガバナンスは存在しません。パフォーマンスを考慮してデータが整理されていないのでパフォーマンスは出ず、データレイクの分析は限定的なものになってしまいます。データレイクが低コストのオブジェクトストレージを使用していることから、多くの企業はデータレイクをデータのランディングゾーンとして使用し、価値を抽出するためにデータウェアハウスのような後段の別のシステムデータを移動しています。

レイクハウスは、データレイクがデータスワンプになってしまう根本的な問題に取り組んでいます。複数のユーザーがデータを同時に読み書きする際に、一貫性を保持するためにACIDトランザクションを追加します。スター/スノーフレークスキーマのようなデータウェアハウスのスキーマアーキテクチャをサポートし、堅牢なガバナンス、監査機構をデータレイクに提供します。高速な分析を実現するために、適切なサイズへのファイル圧縮や、ファイルの統計情報を用いたデータスキッピング、多次元クラスタリング、キャッシングなどのパフォーマンス最適化テクニックを活用しています。また、データガバナンスのために、きめ細かいセキュリティ機能や監査機能を提供します。オープンなデータレイクにデータマネジメントとパフォーマンスの最適化を追加することで、レイクハウスはネイティブでBI、MLアプリケーションをサポートすることができます。

# データアナリストがデータレイクハウスを使うのはどのくらい簡単ですか？

データレイクハウスは、従来型のデータウェアハウスと同様のSQLインタフェースを実装しているので、アナリストはワークフローを変更することなしに、既存のBI、SQLツールでデータレイクハウスに接続することができます。例えば、Tableau、PowerBI、Qlik、Lookerのような著名なBIツールからデータレイクハウスシステムに接続することができ、Fivetranやdbtのようなデータエンジニアリングを実行することもでき、アナリストはMicrosoft Excelのようなデスクトップツールにデータをエクスポートすることができます。レイクハウスのANSI SQLサポート、きめ細かいアクセス管理、ACIDトランザクションによって、管理者はデータウェアハウスと同じように管理を行うことができるだけではなく、一つのシステムで全ての企業データを管理することが可能となります。

シンプルさに関するレイクハウスシステムの重要な利点の一つは、企業の全てのデータを管理するので、データアナリストはデータウェアハウスにロードされたデータのサブセットではなく、最新の生データへのアクセスを許可されるというものです。アナリストは、複数の過去のデータセットに対する質問を行うことができ、データベース管理者やデータエンジニアに適切なデータのロードを依頼することなしに、新たなデータセットに対して新たなパイプラインを確立することができます。AIのビルトインのサポートによって、機械学習が構築したモデルを、アナリストは容易に任意のデータに対して実行することができます。

# データウェアハウスとレイクハウスの性能、コスト比較はどのようになりますか？

データレイクハウスシステムは、運用コストを最小化し、パフォーマンスを最大化するために、分離され、柔軟にスケールする計算資源とストレージをベースに構築されています。最新のシステムは、従来のデータウェアハウスとエンジン内で同じ最適化(例：クエリーのコンパイル、ストレージレイアウトの最適化)を講じたSQLワークロードを比較して、同等、あるいは優れたコストパフォーマンスを実現しています。さらに、レイクハウスシステムは、多くのケースで、スポットインスタンスプライシング(これを利用する際には、クエリー途中でワーカーノードが失われることを許容する必要があります)や、従来型のデータウェアハウスでは利用を想定していない低頻度アクセスストレージによる価格削減のようなクラウドプロバイダーのコスト競争力のある機能を活用します。

# データレイクハウスがサポートするデータガバナンスの機能にはどのようなものがありますか？

データレイクのストレージに管理インタフェースを追加することで、レイクハウスシステムは、データウェアハウスと同様の標準的なインタフェースを用いて、企業の全データに対するアクセスコントロール、データ品質、コンプライアンスを管理するために統合化された手段を提供します。モダンなレイクハウスシステムは、SQL経由のきめ細かい(行、列、ビューレベル)アクセスコントロール、クエリーの監査、属性ベースのアクセスコントロール、データのバージョン管理、データ品質に対する制約、モニタリングをサポートしています。これらの機能は一般的に、既存の人材が企業の全データを統合的に管理できるように、データベース管理者に馴染みのある標準的なインタフェース(例えば、SQLのGRANT文)を用いて提供されます。単一の管理インタフェースを用いて、レイクハウスシステムで全てのデータを集中管理することで、管理の負荷および、複数の分離したシステムを管理することによる潜在的なエラーを削減することができます。

# レイクハウスには集中管理されるべきですか、それともデータメッシュに分散することができますか？

いいえ、企業は必ずしも全てのデータを一つのレイクハウスに集中化させる必要はありません。レイクハウスを使用している多くの企業は、データを格納、処理する際には分散的なアプローチをとる一方、セキュリティ、ガバナンス、検索に関しては集中的なアプローチを採用しています。組織の構造、ビジネス要件に応じて、いくつかの共有的なアプローチが存在します。

- それぞれのビジネスユニットが、製品開発から顧客獲得、カスタマーサービスに至る自身のビジネスの完全なビューを捕捉するために自身のレイクハウスを構築する。
- 製品製造、サプライチェーン、セールス、マーケティングのような個々の機能領域が、自身のビジネス領域のオペレーションを最適化するために自身のレイクハウスを構築する。
- いくつかの組織では、カスタマー360のような機能横断の新たな戦略的取り組みや、COVIDパンデミックのような予期しない災害に対する迅速なアクションの実行などのケースで、新たなレイクハウスを立ち上げている。

レイクハウスアーキテクチャの統合化された特徴によって、データアーキテクトは、BIやMLのために、サイロ化されたデータスタックにまたがってデータを移動するための複雑なオーケストレーションを行うことなしに、ビジネス要件に対応するシンプルなデータアーキテクチャを構築することができます。さらに、レイクハウスのオープン性によって、企業は異なるビジネスユニットあるいは機能領域固有のニーズに取り組む際に、ベンダーロックインを恐れることなく、オープンな技術のエコシステムを活用することができます。通常レイクハウスは、分離され、スケーラブルなクラウドストレージ上に構築されているので、複数のチームがそれぞれのレイクハウスにアクセスするのもシンプルかつ効率的です。最近、[Delta Sharing](https://databricks.com/jp/blog/2021/05/26/introducing-delta-sharing-an-open-protocol-for-secure-data-sharing.html)は、数多くのベンダーのサポートとともに、レイクハウス間のデータ共有のためのオープンかつ標準的なメカニズムを提案しました。

# レイクハウスとデータメッシュにはどのような関係がありますか？

Zhamak Dehghaniは、データメッシュの実装を具現化する4つの基本的な組織上の原則を説明しました。レイクハウスアーキテクチャはこれらの組織上の原則を実装するために活用することができます。

- **ドメイン指向の分散データオーナーシップ、アーキテクチャ:** 上のセクションで議論したように、レイクハウスアーキテクチャはデータオーナーシップに関して分散アプローチを採用しています。組織は、ビジネスグループの個々のニーズに対応するために、異なるレイクハウスを作成することができます。彼らのニーズに応じて、画像、動画、テキスト、構造化された表形式データ、そして、機械学習モデルや、変換や洞察を再現するために用いられたコードなど関連するデータアセットを蓄積、管理することができます。
- **製品としてのデータ:** レイクハウスアーキテクチャは、ドメイン固有のチームにいる異なるデータチームのメンバーに、データライフサイクルに対する完全なコントロールを提供することで、企業が製品としてデータを管理することを支援します。データオーナー、データエンジニア、アナリスト、データサイエンティストから構成されるデータチームは、データ(適切なリネージュとセキュリティコントロールを有する構造化、準構造化、非構造化データ)、コード(ETL、データサイエンスノートブック、MLトレーニング、デプロイメント)、サポートするインフラストラクチャ(ストレージ、計算資源、クラスターポリシー、様々な分析・MLエンジン)を管理することができます。ACIDトランザクション、データのバージョン管理、0コピーのクローンのようなレイクハウスプラットフォームの機能によって、これらのチームがデータを製品として公開、維持することを容易にします。
- **プラットフォームとしてのセルフサービスデータインフラストラクチャ:** レイクハウスアーキテクチャは、幅広いツールのエコシステムとの統合によって、データ管理、データエンジニアリング、アナリティクス、データサイエンス、機械学習に対するエンドツーエンドのデータプラットフォームを提供します。既存のデータレイクにデータ管理を追加することで、データアクセス、データ共有をシンプルなものにします。誰でもアクセスをリクエストすることができ、リクエスト元には安価なBLOBストレージに対する課金が発生するのみで、すぐにセキュアなアクセスを行うことができます。さらに、オープンなデータフォーマットを用い、ダイレクトなファイルアクセスを実現することで、データチームはデータに対して最も優れたアナリティクス、MLフレームワークを適用することができます。
- **連携された計算資源のガバナンス:** レイクハウスアーキテクチャにおけるガバナンスは、きめ細かい(行、列レベル)アクセスコントロールを伴う集中管理されたカタログで実装されており、データやコードやMLモデルなどの他のアーティファクトの発見が容易となります。企業は、データ資産の管理とコントロールを分散するために、カタログの異なる部分を異なる管理者に割り当てることができます。このように集中管理されるカタログと連携されたことんとロールによるハイブリッドのアプローチによって、チーム間のデータ資産の再利用を可能にし、共通のセキュリティ、ガバナンスモデルを全体に強制しつつも、独立性と、それぞれのドメイン固有チームの俊敏性を維持することができます。

### Databricks 無料トライアル

[Databricks 無料トライアル](https://databricks.com/jp/try-databricks)