Unity Catalogが自動有効化されたAzure Databricksワークスペースで新規カタログを作成する

# はじめに
以下の記事の続きです。Unity Catalog (UC) が自動有効化されたAzure Databricks (ADB) ワークスペースで、自動的に作成されるワークスペースカタログなどとは別に、一つ目の新規カタログを作成する際の流れを記載します。

https://qiita.com/nakazax/items/2674c76a589b2a9a2ba1

# 1. カタログのマネージドストレージとして使用するADLS Gen2とコンテナーを作成する
UCではメタストア、カタログ、スキーマごとにマネージドストレージを設定することができます。あらかじめカタログレベルのマネージドストレージとして使用するADLS Gen2のストレージアカウントを作成しておきます。ストレージアカウントを作成したら、適当な名前のコンテナーを作成しておきます。ここでは「demo」という名前のコンテナーとします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/284925/da7c2cc2-b1aa-5aa4-a851-8b2d1338a467.png)
画像出典: [Unity Catalog のベスト プラクティス - Azure Databricks | Microsoft Learn](https://learn.microsoft.com/ja-jp/azure/databricks/data-governance/unity-catalog/best-practices#--data-governance-and-data-isolation-building-blocks)

# 2. Azure Databricks用のアクセスコネクターにADLS Gen2のIAM権限を付与
ここでは、ADB用のアクセスコネクターにカタログのマネージドストレージとして使用するADLS Gen2の「ストレージBLOB共同作成者」のIAM権限を付与します。以下ドキュメントの以下ステップを実施する形です。

- ステップ 1: Azure Databricks 用のアクセス コネクタを作成する > システム割り当てマネージド ID を使用する
- ステップ 2: マネージド ID にストレージ アカウントへのアクセスを許可する

https://learn.microsoft.com/ja-jp/azure/databricks/data-governance/unity-catalog/azure-managed-identities#config-managed-id

## 使用するアクセスコネクター
本記事では、あまり深いことは考えずに、ADBのアクセスコネクターとして、マネージドリソースグループに自動的に作成された「unity-catalog-access-connector」を使用することにします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/284925/fd2b6598-1ecc-e4f2-6b84-272d0ecd390c.png)

マネージドリソースグループにはADBサービスの「管理対象リソースグループ」からアクセスできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/284925/866628c4-103b-8dad-67e5-fef23c08ace9.png)

## ADLS Gen2へのIAM権限付与
先に作成したADLS Gen2の [アクセス制御(IAM)] からADBのアクセスコネクターに「ストレージBLOB共同作成者」の権限を付与します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/284925/24f0c31a-d44d-dd24-91ed-45968bbea371.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/284925/2c9a3334-4cf1-4590-82a6-07fb948e8080.png)

# 3. ストレージ資格情報を作成する
ここから、ストレージ資格情報、外部ロケーション、そしてカタログという順番で作成していきます。三者の依存関係は以下の図が参考になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/284925/2d92b651-b820-91f3-ad27-8a5af88bcd35.png)
画像出典: [外部の場所 - Azure Databricks - Databricks SQL | Microsoft Learn](https://learn.microsoft.com/ja-jp/azure/databricks/sql/language-manual/sql-ref-external-locations)

まずはストレージ資格情報から作成します。以下ドキュメントの内容を実施する形です。

https://learn.microsoft.com/ja-jp/azure/databricks/connect/unity-catalog/storage-credentials

カタログエクスプローラーの [ストレージ資格情報] > [資格情報を作成] をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/284925/7b0da830-e258-2e41-329d-22b32c206bfe.png)

ストレージ資格情報名はここではADLS Gen2のストレージアカウント名を、アクセスコネクターIDには「unity-catalog-access-connector」のリソースIDを入力しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/284925/e5d90b4f-dc2d-442f-430c-ba9214a763c4.png)

成功のメッセージが出て、以下のような画面が表示されれば作成OKです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/284925/88c8d6d7-02eb-5cda-621e-c70712a92e58.png)

# 4. 外部ロケーションを作成する
続いて外部ロケーションを作成します。以下ドキュメントの内容を実施する形です。

https://learn.microsoft.com/ja-jp/azure/databricks/connect/unity-catalog/external-locations

カタログエクスプローラーの [外部ロケーション] > [ロケーションを作成] をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/284925/b8d2f732-5186-2a1b-9381-f32ec2f66be0.png)

外部ロケーション名はここではストレージアカウント名とコンテナー名をつなげたものを、ストレージ資格情報は先ほど作成したものを、URLにはあらかじめ作成したdemoコンテナーのものを入力しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/284925/c1effb9d-5d7e-fe5a-3569-b8b459b66b68.png)

成功のメッセージが出て、以下のような画面が表示されれば作成OKです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/284925/4c4e9f44-0160-712d-ccf0-6632fa632d3a.png)

# 5. カタログを作成する
ついにカタログを作成します。以下ドキュメントの「カタログを作成する > カタログエクスプローラー」の内容を実施する形です。

https://learn.microsoft.com/ja-jp/azure/databricks/data-governance/unity-catalog/create-catalogs

カタログエクスプローラーの [カタログ] > [カタログを作成] をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/284925/68e27c90-9a27-9fb6-75c5-d0605b1e3ea8.png)

以下のようにdemoといったカタログ名を入力し、ストレージの場所に先ほど作成したものを指定して作成をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/284925/f1396eff-ca92-b3c9-4756-d91e923e2e12.png)

成功のメッセージが出て、以下のような画面が表示されれば作成OKです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/284925/b02be848-41a9-36f4-0d29-e5951a01407a.png)

後はこのカタログを対象として、スキーマやテーブルなどを作成していく流れになります。
本記事は以上となります。