Databricksにおけるデータ管理に関する資料のまとめ

**データ管理**という概念自体広範なものですが、これまでに書いた資料などをこちらにまとめます。個人的体験を踏まえて以下の観点で整理します。

![Screenshot 2025-01-26 at 11.43.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/4a508ea7-b078-288f-2506-cacfee76e0dd.png)
*[データエンジニアリングの基礎](https://www.amazon.co.jp/dp/4814400659)の図をベースに筆者がDatabricksの観点で加筆、修正*

- [**データモデリング**](#データのモデリング)(**どのようなデータを取り扱うのか**): 取り扱うデータを整理して理解しやすくします。具体的には、どんな情報があって、それぞれがどのように関係しているのかを図や表にして表現できるようにします。
- [**データエンジニアリング**](#データエンジニアリング)(**どのようにデータを処理するのか**): データアナリストやデータサイエンティストなどのデータの消費者がデータを活用できるように生のデータを加工します。加工を粉ぷデータパイプラインの開発、運用を行います。
- [**データガバナンス**](#データのガバナンス)(**どのようにデータを管理するのか**): 取り扱うデータを資産と捉え、その資産のライフサイクルを通じて管理できるようにするための原則、プラクティス、実践です。

# データのモデリング

DatabricksでスタースキーマやData Vaultなどのデータモデルを実装することができます。目の前にあるデータがどのような特性を持っており、どのように組み合わせることで目的とする情報を得るのかをデザインします。ER図を使うことが多いと思いますが、Databricksでは定義したテーブルから簡単に[ER図を表示](https://qiita.com/taka_yayoi/items/7f254c94fdcc1a3dfd04)することができます。

![Screenshot 2023-12-20 at 8.33.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/c58482c5-d983-1d7f-514f-38c1b61eb28b.png)

- [データ モデリング \- Azure Databricks \| Microsoft Learn](https://learn.microsoft.com/ja-jp/azure/databricks/transform/data-modeling)
- [スタースキーマを理解する \| Databricks](https://www.databricks.com/jp/glossary/star-schema)
- [データボルト \| Databricks](https://www.databricks.com/jp/glossary/data-vault)
- [Databricks レイクハウスプラットフォームでのデータウェアハウスのモデリングと実装 \| Databricks Blog](https://www.databricks.com/jp/blog/2022/06/24/data-warehousing-modeling-techniques-and-their-implementation-on-the-databricks-lakehouse-platform.html)
- [Delta Lakeを用いてDatabricksでスタースキーマを実装する5つのシンプルなステップ](https://qiita.com/taka_yayoi/items/f644b9c6d01feb853ab1)
- [DatabricksレイクハウスプラットフォームにおけるData Vault実装の規範的ガイド](https://qiita.com/taka_yayoi/items/7d75c3d1a35bee719582)
- [DatabricksレイクハウスにおけるData Vaultのベストプラクティスと実装](https://qiita.com/taka_yayoi/items/1476a5ce4a93857b7ec7)
- [モダンレイクハウスにおけるディメンションモデリングのベストプラクティスと実装](https://qiita.com/taka_yayoi/items/19e1a02227e91f03121a)
- [DatabricksのカタログエクスプローラでER図がサポートされます](https://qiita.com/taka_yayoi/items/7f254c94fdcc1a3dfd04)

以下の図は、Databricks提供機能においてデータモデリングと関係の深い箇所を赤枠で示したものとなります。

![Screenshot 2025-01-26 at 11.44.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/0868b425-e5aa-208b-6880-2f8f82b89988.png)


# データエンジニアリング

データモデリングが一段楽したら、そのデータモデルに基づいてテーブルを作成することになります。そして、テーブルは静的なものもあれば、日々データが投入されるものもあります。データの消費者が常に高品質で新鮮なデータを利用できるようにする営みが**データエンジニアリング**です。データエンジニアは分析要件などに基づいて適切にデータが処理されるように**データパイプライン**を構築、運用することに責任を持ちます。データエンジニアリングに対する考え方についてはこちらの書籍が勉強になりました。

- [データエンジニアリングの基礎 ―データプロジェクトで失敗しないために \| Joe Reis, Matt Housley, 中田 秀基 \|本 \| 通販 \| Amazon](https://www.amazon.co.jp/dp/4814400659)

Databricksではデータエンジニアリングを効率的、効果的に行うための機能が多数提供されています。最初から全てを使いこなそうとはせずに、ステップバイステップで理解を深めていくことをお勧めします。

データエンジニアリングにフォーカスしたワークショップのスライドです。ステップバイステップ(データエンジニアリングの基礎→[ジョブ](https://learn.microsoft.com/ja-jp/azure/databricks/jobs/)によるオーケストレーション→[Delta Live Tables](https://learn.microsoft.com/ja-jp/azure/databricks/delta-live-tables/))で学習を進めるように設計しています。

<script defer class="speakerdeck-embed" data-id="e2791f758f1d460fa28de6784ed52d4d" data-ratio="1.7777777777777777" src="//speakerdeck.com/assets/embed.js"></script>

関連資料です。

- [Databricksにおけるビジネスアナリストからデータエンジニアへの転換](https://qiita.com/taka_yayoi/items/d997cf36420eb49689c8)
- [ETLのT\(Transformation\)実践](https://qiita.com/taka_yayoi/items/51bd9a1a895109ec1625)
- [ETLのE\(Extract\)実践](https://qiita.com/taka_yayoi/items/08aeeac8f63a2f8158eb)
- [Databricksにおけるデータパイプラインとオーケストレーション](https://qiita.com/taka_yayoi/items/dd4fe4af945c3c1eabe5)

Databricksのデータエンジニアリング機能は主に[**Databricksワークフロー**](https://www.databricks.com/jp/product/workflows)(まもなくLakeFlowという名称に変更されます)として提供されています。ワークフロー、ジョブ、Delta Live Tablesの関係性をこちらにまとめています。

- [DatabricksワークフローとジョブとDelta Live Tablesの関係性](https://qiita.com/taka_yayoi/items/e881769270f0ec0b7d06)

機能面を深掘りしていくと、上述のワークフローに加えて、[Spark](https://qiita.com/taka_yayoi/items/68fc3d67880d2dcb32bb#apache-spark)や[Delta Lake](https://qiita.com/taka_yayoi/items/68fc3d67880d2dcb32bb#delta-lake)、[Unity Catalog](https://qiita.com/taka_yayoi/items/68fc3d67880d2dcb32bb#unity-catalog)にも習熟していくことになります。いきなり全てをカバーしようとするのではなく、データエンジニアリングの実践を進めていく中で必要に応じて理解を深めていくことをお勧めします。ただ、Unity Catalogに関しては、次の[データガバナンス](#データのガバナンス)で非常に重要な役割を担うので、早い段階でそれなりに深い理解を求められるようになります。

また、Sparkに関しては、(私を含む)Databricks Japanのエンジニアによって翻訳された書籍があります。

- [Amazon\.co\.jp: Apache Spark徹底入門 : Jules S\. Damji, Brooke Wenig, Tathagata Das, Denny Lee, 長谷川 亮, 弥生 隆明, 北村 匡彦, 竹下 俊一郎, 小谷 尚太郎, 北岡 早紀, 市村 幸一郎, 永里 洋, 野上 将嗣: 本](https://www.amazon.co.jp/dp/4798182281/)

以下の図は、Databricks提供機能においてデータエンジニアリングと関係の深い箇所を赤枠で示したものとなります。上のスライドでも触れていますが、Databricksの非常に大きな部分をデータエンジニアリングの機能(データエンジニアリング以外でも活用できるものもありますが)が占めていることがわかります。

![Screenshot 2025-01-26 at 11.44.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/3d655ea6-6f6b-9dab-1dd3-9effb90754c1.png)

そして、上述のデータモデリングはデータエンジニアリングにおいても必要となるすkです。[こちら](https://qiita.com/taka_yayoi/items/d997cf36420eb49689c8#%E3%83%93%E3%82%B8%E3%83%8D%E3%82%B9%E3%82%A2%E3%83%8A%E3%83%AA%E3%82%B9%E3%83%88%E3%81%8B%E3%82%89%E3%83%87%E3%83%BC%E3%82%BF%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%81%B8%E3%81%AE%E8%BB%A2%E6%8F%9B)で言及しているように、BIに取り組んでいるビジネスアナリストの方がデータエンジニアにロール変更をする際には、データモデリングのスキルをそのまま転用することができます。

![Screenshot 2025-01-08 at 14.55.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/2624c6a6-f9e7-44c8-8250-bcf3d5a3957b.png)


# データのガバナンス

データパイプラインによってデータが流れるようになっためでたしめでたし、ではありません。今の時代、データの価値や重要性は高まる一方であり、それにともなってデータ漏えいなどによるリスクも高まっています。企業として、データが適切管理、運用されていることを確実にするために重要なのが**データガバナンス**です。最近ではAIガバナンス(取り扱うAIモデルが適切に管理されているかどうか)という話も出てきていますが本書では割愛します。

Databricksでデータ(とAIの)ガバナンスのための機能を提供しているのが[**Unity Catalog**](https://www.databricks.com/jp/product/unity-catalog)です。名前の通り、カタログソリューションですがデータベースやテーブルに対するカタログだけではなく、ファイルやAIモデルなどに対するカタログとしても機能します。

Unity Catalogの概要を説明しているスライドです。

<script defer class="speakerdeck-embed" data-id="1e14d9c3edb243febeaa066234983f5b" data-ratio="1.7761332099907492" src="//speakerdeck.com/assets/embed.js"></script>

こちらはIT管理にフォーカスしたスライドです。

<script defer class="speakerdeck-embed" data-id="979df5fdf210441bba3767522c1c38e1" data-ratio="1.7761332099907492" src="//speakerdeck.com/assets/embed.js"></script>

関連資料です。

- [データガバナンスの包括ガイド \| Databricks](https://www.databricks.com/jp/discover/data-governance)
- [データガバナンス \| Databricks](https://www.databricks.com/jp/glossary/data-governance)
- [Unity Catalog でデータ ガバナンスを使用する \- Azure Databricks \| Microsoft Learn](https://learn.microsoft.com/ja-jp/azure/databricks/data-governance/)
- [Unity Catalogに関するQiita記事](https://qiita.com/taka_yayoi/items/68fc3d67880d2dcb32bb#unity-catalog)

ガバナンスにおいては、どのような目的(避けるべきリスク、達成すべきSLAなど)でガバナンスを適用するのか、そのためのメトリクスは何か、メトリクスをどのようにモニタリングするのかなど様々な観点での検討が必要となります。DatabricksのUnity Catalogではそれらを支援、促進するために、以下のような機能が提供されています。

- [アクセス管理](https://learn.microsoft.com/ja-jp/azure/databricks/data-governance/#centralize-access-control-using-unity-catalog)
- [監査ログ](https://learn.microsoft.com/ja-jp/azure/databricks/data-governance/#configure-audit-logging)
- [カタログエクスプローラ](https://learn.microsoft.com/ja-jp/azure/databricks/catalog-explorer/)
- [リネージ管理](https://learn.microsoft.com/ja-jp/azure/databricks/data-governance/unity-catalog/data-lineage)
- [モニタリング](https://learn.microsoft.com/ja-jp/azure/databricks/lakehouse-monitoring/)
- [セキュアなデータ共有](https://learn.microsoft.com/ja-jp/azure/databricks/delta-sharing/)
- [クリーンルーム](https://learn.microsoft.com/ja-jp/azure/databricks/clean-rooms/)

個人的には、[カタログエクスプローラのUI](https://learn.microsoft.com/ja-jp/azure/databricks/catalog-explorer/)に慣れ親しみつつ、Unity Catalogの基本コンセプトを理解し、ユースケースに応じて各種機能の習熟を進めることをお勧めします。

以下の図は、Databricks提供機能においてデータガバナンスと関係の深い箇所を赤枠で示したものとなります。いずれにしてもUnity Catalogが中心的役割を担います。

![Screenshot 2025-01-26 at 11.44.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/c22335b2-8fe9-9686-ee97-8748fe70a99d.png)



### はじめてのDatabricks

[はじめてのDatabricks](https://qiita.com/taka_yayoi/items/8dc72d083edb879a5e5d)

### Databricks無料トライアル

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