[2023年12月版] Databricksとは何か？

Databricksの弥生です。Databricks Japanにjoinして3年が経ちました。

2021年には以下の記事を訳したり、

https://qiita.com/taka_yayoi/items/438f762126f57868aa35

自分でもJupyter notebookとの比較記事を書いたりしました。

https://qiita.com/taka_yayoi/items/d5ea3dede05a180091b2

そして、他のソリューションアーキテクトの方によっても記事が書かれています。

https://qiita.com/kohei-arai/items/83a8a54880defbf35fa0

しかし、Databricksは日進月歩で進化しています。2週間周期で新機能がリリースされるので、これらの記事も古くなってしまっている部分が少なからずあります。

と言うことで、2023年12月時点での「Databrikcsとは何か」を記事にします。

:::note info
[2024年版](https://qiita.com/taka_yayoi/items/e6a6e7b1a427d66b1cd9)も書きました。
:::


# Databricksとは何か？

まず、会社としてのDatabricksの説明をさせてください。同名のプラットフォームを提供している企業で、2013年に創業されました。今年でちょうど10年です。由来はユニークで、カルフォルニア大学バークレー校に在学していた大学院生と教授たちとで創業された会社です。そして、彼らは[Apache Spark](https://www.databricks.com/jp/spark/about)、[Delta Lake](https://www.databricks.com/jp/product/delta-lake-on-databricks)、[MLflow](https://www.databricks.com/jp/product/managed-mlflow)のオリジナルクリエーターです。このような背景から、企業全体としてオープンソースにコミットしています。
![Screenshot 2023-12-02 at 8.42.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/70d57f67-7732-d690-1bfb-d87da7acc235.png)

現在ではグローバルで従業員数は6000人を超えています。私が入社した3年前は1500人程度だったので成長著しいと言えます。未上場ですが先日[シリーズIの投資](https://xtech.nikkei.com/atcl/nxt/column/18/00001/08410/)を受けました。

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

2020年まではプラットフォームとしてのDatabricksの別名は「Unified Analytics Platform」でしたが、この時点で「[(データ)レイクハウスプラットフォーム](https://www.databricks.com/jp/product/data-lakehouse)」という名前になりました。レイクハウスの由来は**データレイク + データウェアハウス**です。両者のいいところどりをしていると言う意味からこのような名前となりました。名前を作り出したのはDatabricksですが、今では[他社様](https://learn.microsoft.com/ja-jp/fabric/data-engineering/lakehouse-overview)も使うようになって認知が進んだと言えます。
![](https://www.databricks.com/en-website-assets/static/b1cec6ed1d8bb95ac0386c146b61e1ae/11d44/unified.webp)

データウェアハウス、データレイク、データレイクハウスの説明、違いについてはこちらにまとめています。

https://qiita.com/taka_yayoi/items/1ebbce9b76fb923d5e21

非常にざっくり言うと、

- **データウェハウス**: 構造化データの取り扱いが得意でガバナンスも効いており、処理が高速。しかし、高価で専用フォーマットが必要。機械学習には適していない。
- **データレイク**: クラウドストレージとオープンフォーマットで安価に構造化データも非構造化データも格納でき、機械学習にも対応可能。しかし、ガバナンスが効かず読み書き性能が出ない。
- **データレイクハウス** データの格納場所はデータレイクなので、安価かつオープンで任意のタイプのデータを取り扱える。かつ、ガバナンスも効いており処理も高速。もちろん、機械学習でも活用可能。

また、近年においてデータ&AIを取り組む際には、機械学習、データウェアハウス、データレイク、BI、ストリーミング処理、オーケストレーションなど様々なツールを組み合わせる必要があります。これによってシステムの複雑さが増加している中、今年からは**生成AI**という新たな技術、それによる新たなユースケースへの取り組みも増えてきています。
![Screenshot 2023-12-02 at 9.03.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/a5c10a7b-7e52-03ef-ca09-521ef2e8fa3b.png)

結果として、以下のような課題がさらに深刻なものとなっています。
![Screenshot 2023-12-02 at 9.03.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/75f4dc38-e71a-4ce9-f286-e25e87df1c67.png)

- **サイロ化されたデータ、AI、ガバナンス**
    - データの格納場所だけではなく、大規模言語モデルを含む各種機械学習モデルが散在することで、管理コストを引き上げ、イノベーションの加速を阻害します。
- **AIがもたらすデータ、プライバシー&コントロールの課題**
    - 特に生成AIは幻覚やバイアスなどの新たな課題を我々に突きつけるようになりました。我々は生成AIに対する新たなコントロールの手段を必要としています。
- **高度に技術的なスタッフへの依存**
    - 生成AI以前においても、複雑な処理を行うためにはSQLやPythonの習熟者の協力が必須となっており、クイックな課題解決が困難でした。

2020年にリリースされたデータレイクハウスは主に最初の課題を解決するために提供されています。[Delta Lake](https://www.databricks.com/jp/product/delta-lake-on-databricks)と[Unity Catalog](https://qiita.com/taka_yayoi/items/530c922528e4269120bf)によってデータやAIのサイロを排除し、データとAIに対する包括的なガバナンスを実現することで、様々なデータ&AIワークロードを円滑に進めることができます。この結果、現在ではグローバル企業の74%がレイクハウスを導入しています。
![Screenshot 2023-12-02 at 9.07.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/9c4dbe91-3343-766b-6def-3d25e196d239.png)

それでは、その他の2つの課題についてはどうしたらいいのでしょうか？

# データインテリジェンスプラットフォームとは何か？

このため、我々は生成AIを用いてデータレイクハウスを**データインテリジェンスプラットフォーム**に進化させます。
![Screenshot 2023-12-02 at 9.10.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/e0fe095b-faac-a311-3c6c-c89a862c99f0.png)

データインテリジェンスプラットフォームでは、レイクハウスに新たに**データインテリジェンスエンジン**を付け加えます。
![Screenshot 2023-12-02 at 9.10.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/5757674f-7278-36f6-7ca0-2cbea30a6584.png)

これによって、Databricksの各コンポーネントも以下のように進化します。
![Screenshot 2023-12-02 at 9.13.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/8e1ae931-adc9-afb9-78aa-eadf961dd94f.png)

- Delta Lake: 利用パターンに基づき自動でデータレイアウトを最適化
- Unity Catalog: [自然言語でセキュアに洞察を取得](https://qiita.com/taka_yayoi/items/e93ac9b0d8af9209defd)
- Databricks AI(旧Lakehouse AI): カスタムLLMの作成チューニング、提供
- Delta Live Tables: データ品質の自動化
- Workflows: 過去の処理に基づくジョブコストの最適化
- Databricks SQL: テキストからSQL

特に、Databricks AIを活用することで、RAGなどの生成AIアプリケーションを容易に構築・運用できるようになります。
![Screenshot 2023-12-02 at 9.15.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/e25e34c3-dc81-4dce-54d7-751b31f7565d.png)

また、これ以外にも**Project Genie**というプロジェクトも進行中です。これによって、PythonやSQLを知らない方でも自然言語で容易にデータを操作できるようになります。
![Screenshot 2023-12-02 at 9.17.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/2876cae9-2d09-73d2-72aa-23e5199a3c5c.png)

Databricksのデータインテリジェンスプラットフォームによって、皆様に**シンプル**、**インテリジェント**、**プライベート**というメリットを提供することになります。

- **シンプル**: 自然言語が使いやすさと効率性を全員に提供
- **インテリジェント**: あなたのデータを理解するためにE2EでAIがインテグレーション
- **プライベート**: プライベートデータを用いて容易にカスタムモデルを構築

# Databricksの提供機能

上述したデータインテリジェンスプラットフォームの機能の一部はプライベートプレビュー、パブリックプレビューですが、順次リリースされていきます。こちらですべての機能をカバーすることはできませんが、プレビュー中のものを含めていくつかのDatabricksの機能を説明します。

## Databricksワークスペース

ブラウザからアクセスする作業場です。こちらでノートブックやクラスターを用いて様々な処理を実装します。ちなみに3年前は[日本語対応](https://qiita.com/taka_yayoi/items/ff4127e0d632f5e02603)してませんでした。今でも我々が日々翻訳しています！
![Screenshot 2023-12-02 at 9.25.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/707321bb-625c-8eeb-33f6-f7b05eab5133.png)

https://docs.databricks.com/ja/workspace/index.html

## Databricksクラスター

Databricksにおける計算資源です。ちなみに、Databricksの課金はこのクラスターのスペックと稼働時間によって決まります。つまり、クラスターが停止していればDatabricksのお金は発生しません。なお、背後のクラウドサービスのお金は発生します。
![Screenshot 2023-12-02 at 9.34.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/43a60dde-5e1d-a114-db4a-f8397c7f7fb0.png)

以下のような機能を提供しています。背後ではApache Sparkが動作しているので、大量データでも水平分散させることで高速な処理を実現できます。

- [Databricksランタイム](https://qiita.com/taka_yayoi/items/824b507019d3ade7eedc)(データ&AIの取り組みでよく使うソフトウェアを事前インストールするソフトウェアパッケージ)
- 追加[ライブラリ](https://qiita.com/taka_yayoi/items/66cec8cf4c159666c4e0)のインストール
- [initスクリプトの実行](https://qiita.com/taka_yayoi/items/88cb46be00a175085f87)
- シェル実行のためのWebターミナル
- [クラスターポリシー](https://qiita.com/taka_yayoi/items/93d7597d7fc739b48bb7)(ユーザーの設定範囲をコントロール)
- GPUクラスターの構築
- オートスケーリング
- 自動停止

https://docs.databricks.com/ja/clusters/index.html

また、[サーバレス](https://docs.databricks.com/ja/sql/admin/serverless.html)の機能も順次利用できるようになっています。起動がとても高速です！

## Databricksノートブック

Databricksで最も利用することになるインタフェースです。ノートブック形式ですので、Jupyterノートブックに慣れている方であればすぐに使い始められます。
![Screenshot 2023-12-02 at 9.35.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/cc3602cd-dcd6-5b4f-f948-455dbd648d7a.png)

以下のような便利機能がてんこ盛りです。

- アクセスコントロール
- 同時参照、同時編集
- バージョン管理
- 複数言語をサポート(Python、SQL、R、Scalaなど)、一つのノートブック内で言語を切り替えることも可能
- 結果からクリック操作でグラフを作成
- [Databricksアシスタント(生成AIアシスタント)](https://qiita.com/taka_yayoi/items/db3e9d976f9f7dbec86e)
- MLflowとのインテグレーション(モデルをトレーニングすると自動で記録されます)

https://docs.databricks.com/ja/notebooks/notebook-ui.html

## Databricks AI

従来の機械学習モデルだけではなく、生成AIモデルの開発、運用、管理を容易にするためのフレームワークです。

- [Vector Search](https://docs.databricks.com/ja/generative-ai/vector-search.html)
- [AI Functions](https://qiita.com/taka_yayoi/items/e0650e87dc33ded094e7)(SQLからLLMを呼び出せます)
- キュレーテッドモデル
- ファインチューニング
- モデルサービング(GPUも使えます)
- LLMのAutoML
- 特徴量ストア

AI Functionsを用いることで、SQLの関数にLLMを埋め込むことができます。
![Screenshot 2023-12-02 at 10.24.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/6b13dbc2-76e3-1090-77ff-69bedfb8111a.png)

モデルサービングを用いることで、LLMを含む機械学習モデルに対してREST APIを受け付けるエンドポイントを構築できます。
![Screenshot 2023-12-02 at 10.41.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/e4511f9e-0c00-2e35-834b-59f8b038ed1d.png)

GUIと組み合わせることで独自のRAGアプリケーションを構築できます。(こちらの画面は別マシンでホストしているstreamlitです)
![Screenshot 2023-12-02 at 10.41.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/5c2ed964-9279-6de7-b644-359c1d8c1da0.png)

こちらの機能はプレビューのものがありますので、続報に期待していてください！

https://docs.databricks.com/ja/generative-ai/generative-ai.html

## Unity Catalog

Databricksにおける各種資産に対するガバナンス管理を一手に引き受けているのがUnity Catalogです。

以下のような機能を提供しています。これも3年前はなかったので嬉しい限りです。

- テーブル、データベース、ファイル、機械学習モデルなどに対するアクセスコントロール
- 監査ログ
- リネージ(依存関係)の自動捕捉
- 洞察の自動抽出
- 生成AIによる自動コメント作成

カタログエクスプローラという機能で、データベース、テーブル、ファイル、機械学習モデルなどを管理できます。
![Screenshot 2023-12-02 at 9.41.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/a9c9bdbe-154b-6bcb-a632-0018163b203d.png)

洞察タブにアクセスするとテーブルがどのように使われているのか、誰がよくアクセスしているのかという情報にアクセスできるので、データ活用が捗ります。
![Screenshot 2023-12-02 at 9.41.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/506ca85d-804f-3139-d22c-97d16b53ab3f.png)

強力なリネージ機能、テーブル間の依存関係だけではなく、カラム間の依存関係やファイル、ノートブック、ダッシュボードなどとの依存関係もすべて自動でキャプチャされます。
![Screenshot 2023-12-02 at 9.41.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/5f6fcd88-71ae-e02e-77ab-d7e5f00f991b.png)

https://docs.databricks.com/ja/data-governance/unity-catalog/index.html

今後の新機能はすべてUnity Catalogを前提としていると言っても過言ではありません。是非ご活用ください！

## Databricksワークフロー

開発した処理を夜間バッチなどで定期運用するというのは、典型的なユースケースといえます。DatabricksマネージドのオーケストレーションツールがDatabricksワークフローです。

ノートブックはもちろん、データパイプラインを実装したDelta Live Tablesパイプライン、Databricks SQLのダッシュボードなど、様々なオブジェクトを組み合わせたジョブを簡単に実装することができます。条件分岐、エラー時の通知、リトライ機能なども搭載しています。
![Screenshot 2023-12-02 at 9.46.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/6e33009c-1701-06d0-2bc8-0858c67f3bc9.png)
![Screenshot 2023-12-02 at 9.46.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/8a4665f2-b357-6a54-670e-7bcad70a82fe.png)

https://docs.databricks.com/ja/workflows/index.html

https://qiita.com/taka_yayoi/items/e881769270f0ec0b7d06

## Databricks SQL

DatabricksにビルトインされているBI・データウェアハウス機能がDatabricks SQLです。簡単なBIダッシュボードであれば、Databricks上で簡単に作成できます。
![Screenshot 2023-12-02 at 9.50.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/ef1b9d42-9206-e8d7-835d-ea2cc034cdeb.png)

特に最近リリースされた[Lakeview](https://qiita.com/taka_yayoi/items/32afd1566b5bc3bedbec)を用いると、完全にノーコードでダッシュボードを作成することができます。
![Screenshot 2023-12-02 at 9.51.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/a5752532-8b74-cb5a-7165-3ec40169f7f3.png)

https://docs.databricks.com/ja/sql/index.html

# まとめ

Databricksは、これまでもレイクハウスプラットフォームとしてデータやAIのサイロ化、ガバナンスの不在などに関する課題を解決してきています。今回紹介した内容は、よりインテリジェントに処理を行えるようにし、企業における生成AIの活用を促進し、様々な方がデータ&AIを活用できるようにするために、生成AIのパワーを活用することでレイクハウスからデータインテリジェンスプラットフォームに進化しているのだと私自身は理解しています。これは、以前から掲げている理念である**データとAIの民主化**に即したものだと思います。Databricksの[データインテリジェンスプラットフォーム](https://www.databricks.com/jp/blog/what-is-a-data-intelligence-platform)の今後にご期待ください！

### Databricksクイックスタートガイド

[Databricksクイックスタートガイド](https://www.amazon.co.jp/dp/B09V1YXFVQ/)


### Databricks無料トライアル

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