Databricksレイクハウスとは何か？

[What is the Databricks Lakehouse? \| Databricks on AWS](https://docs.databricks.com/lakehouse/index.html) [2022/8/20時点]の翻訳です。

> [Databricksクイックスタートガイド](https://qiita.com/taka_yayoi/items/125231c126a602693610)のコンテンツです。

:::note warn
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
:::

Databricksレイクハウスは、すべてのデータに対するビジネスインテリジェンス(BI)と機械学習(ML)を実現するために、データウェアハウスのACIDトランザクションとデータガバナンスと、データレイクの柔軟性とコスト効率性を結合します。Databricksレイクハウスでは、オープンソースのデータスタンダードで高度にスケーラブルなクラウドオブジェクトストレージにデータを保持することで、皆様のデータをどのようにでも、どこでも好きなように活用できるようにします。

- [Databricksのメダリオンレイクハウスアーキテクチャとは？](https://qiita.com/taka_yayoi/items/f3d9028cf533e2c78b9d)
- [信頼できる唯一の情報源\(single source of truth\)の構築は何を意味するのか？](https://qiita.com/taka_yayoi/items/a8d6fce746688dbf2306)
- [レイクハウスはどのようにしてディスカバリーとコラボレーションを改善するのか？](https://qiita.com/taka_yayoi/items/e40311b4a1ef3deeb6e6)

# Databricksレイクハウスのコンポーネント

Databricksレイクハウスの主要なコンポーネントは以下の通りです。

- [Deltaテーブル](#deltaテーブル)
    - [ACIDトランザクション](https://qiita.com/taka_yayoi/items/94db8363720687d17d6e)
    - [データのバージョン管理](https://qiita.com/taka_yayoi/items/47b58eb8696b278a3a82#%E9%81%8E%E5%8E%BB%E3%81%AE%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%81%AE%E3%82%B9%E3%83%8A%E3%83%83%E3%83%97%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%E3%81%AE%E3%82%AF%E3%82%A8%E3%83%AA%E3%83%BC%E3%82%BF%E3%82%A4%E3%83%A0%E3%83%88%E3%83%A9%E3%83%99%E3%83%AB)
    - [ETL](https://qiita.com/taka_yayoi/items/7941f31844b33d2b655a)
    - [インデックス](https://qiita.com/taka_yayoi/items/a82b0b8fbdc74e6f9f01#%E3%83%87%E3%83%BC%E3%82%BF%E3%82%B9%E3%82%AD%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0)
- [Unity Catalog](#unity-catalog)
    - [データガバナンス](https://docs.databricks.com/data-governance/index.html)
    - [データ共有](https://qiita.com/taka_yayoi/items/bfa1c940af3fddd3201c)
    - [データ監査](https://docs.databricks.com/data-governance/unity-catalog/audit.html)

[Delta Lake](https://docs.databricks.com/delta/index.html)を用いてデータを格納することで、データが処理されるとすぐに皆様のコアのETLワークロードをサポートし、後段のデータサイエンティスト、アナリスト、機械学習エンジニアは同一のプロダクションデータを活用できるようになります。

Unity Catalogは、誰がどのデータに対するアクセスを有するのかに関して完全なコントロールを行えるようにし、データを複製することなしに、すべてのデータガバナンスとアクセスコントロールを管理するための集中管理されたメカニズムを提供します。

# Deltaテーブル

Databricksで作成されるテーブルは、デフォルトでDelta Lakeプロトコルを使用します。新規テーブルを作成すると以下の処理が行われます。

- 宣言されたスキーマあるいはデータベースでテーブルを参照するために使用されるメタデータがメタストアに追加されます。
- データと[テーブルのメタデータ](https://docs.databricks.com/delta/delta-resources.html#transaction-log)はクラウドオブジェクトストレージのディレクトリに保存されます。

Deltaテーブルに対するメタストアのリファレンスは、通常はオプションです。[Spark API](https://qiita.com/taka_yayoi/items/345f503d5f8177084f24)を用いて、ディレクトリパスと直接操作することでDeltaテーブルを作成することができます。Delta Lakeのいくつかの新機能はテーブルのディレクトリに追加のメタデータを格納しますが、すべてのDeltaテーブルには以下のものが含まれます。

- Parquetファイルフォーマットのテーブルデータを含むディレクトリ。
- JSON形式とParquet形式で保存されるテーブルバージョンに関するメタデータを格納するサブディレクトリ`/_delta_log`。

詳細に関しては、[Databricksレイクハウスにおけるデータオブジェクト](https://qiita.com/taka_yayoi/items/e90be9beeb1a744cee0d)をご覧ください。

# Unity Catalog

Unity Catalogは、Databricksにおけるデータガバナンスとディスカバリーを統合します。ノートブック、ジョブ、Databricks SQLで利用でき、Unity Catalogはデータレイクとデータウェアハウス両方向けに設計された、ワークロードやユーザーを支援する機能やUIを提供します。

- Unity Catalogメタストアのアカウントレベルの管理は、データベース、データオブジェクト、アクセス権がDatabricksワークスペース間で共有できることを意味します。
- データを整理し、アクセスを許可するために3層の名前空間(`<catalog>.<database>.<table>`)を活用することができます。
- 外部ロケーションとストレージ資格情報も、他のデータオブジェクトに対するACL設定でセキュリティ保護することができます。
- [データエクスプローラ](https://docs.databricks.com/data/index.html)は、データベースを探索し、アクセス権を管理するためのGUIを提供します。

# データレイクハウス vs データウェアハウス vs データレイク

データウェアハウスは30年以上に渡るデータフローをコントロールするシステムの設計上のガイドラインとしての進化を通じて、ビジネスインテリジェンス(BI)による意思決定をサポートしてきました。データウェアハウスは、BIレポートのためのクエリーを最適化していますが、結果を生成する際には数分から数時間を要することがあります。高い頻度で変化する可能性が低いデータ向けに設計されており、データウェアハウスは、同時実行されるクエリー間の競合を防ぐ方法を探索しています。多くのデータウェアハウスはプロプライエタリなフォーマットに依存しており、機械学習に対するサポートは多くの場合限定的です。

データの種類と量の指数関数的な増加によって促進されたデータストレージの技術的進歩に支えられ、過去十年間でデータレイクの利用が促進されました。データレイクは、多くの場合、データウェアハウスの対局にあるものとして位置付けられます。データウェアハウスは、BIアナリティクスのためにクリーンかつ構造化されたデータを提供しますが、データレイクは任意のフォーマットのデータをそのままの形で、恒久的かつ安価に格納します。多くの企業は、データサイエンスや機械学習の目的でデータレイクのデータを活用しますが、データが検証されていないためBI目的では使用されません。

データレイクハウスは、以下を望んでいるモダンデータカンパニーに対して、データレイクとデータウェアハウスに対する現在の依存性を置き換えるものです。

- 標準のデータフォーマットを用いて、オープンかつダイレクトにデータにアクセスしたい。
- 機械学習やデータサイエンスのために、最適化されたインデックスプロトコルを活用したい。
- BIや高度アナリティクスのために、クエリーの低レーテンシーと高い信頼性を実現したい。

クラウドオブジェクトストレージに標準フォーマットで検証済みのデータを格納するのに最適化されたメタデータレイヤーを組み合わせることで、データレイクハウスは、データサイエンティストとMLエンジニアは、BIレポートを推進するのと同じデータを用いて機械学習モデルを構築できるようになります。

### Databricks 無料トライアル

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