1
1

Azure DatabricksにおけるUnity Catalog有効化のウォークスルー

Last updated at Posted at 2023-12-22

以前、こちらの記事を書きましたが、アカウントストレージやマネージドIDのセットアップ手順を端折ってましたので、きちんとウォークスルーします。自分のAzureの知識チェックも兼ねます。

こちらの記事も参考になります。

なお、最近ではUnity Catalogは自動で有効化されるようになっています。こちらでは手動での有効化が必要な場合の手順をまとめています。

Databricks は、2023 年 11 月 9 日、アカウント全体で順次ロールアウトする Unity Catalog の新しいワークスペースの自動有効化を開始しました。

Unity Catalogの有効化

マニュアルはこちらにありますが、字が多くて正直取っ付きにくいです。なので、可能な限りスクリーンショットで説明していきます。

全体的な流れは以下の通りです。

  1. Azure Databricksワークスペースの作成
  2. Unity Catalog用ストレージアカウント、コンテナーの作成
  3. Unity Catalog用マネージドIDの作成
  4. DatabricksアカウントコンソールでのUnity Catalogメタストアの作成
  5. メタストアをAzure Databricksワークスペースにアタッチ
  6. 動作確認

重要!
Azure DatabricksワークスペースとUnity Catalogメタストアは同じリージョンである必要があります。また、ストレージアカウントもメタストアと同じリージョンにすることが推奨となります。

Azure Databricksワークスペースの作成

Azure PortalでDatabricksを検索して、数クリックで作成できます。今回はJapan Westでワークスペースを作成しました。

Screenshot 2023-12-22 at 10.15.09.png

Unity Catalog用ストレージアカウント、コンテナーの作成

ストレージアカウントとは?

AWSにおけるS3バケットのようなもの。

コンテナーとは?

バケットに作るディレクトリ。

ストレージアカウントの作成

Azure Portalからストレージアカウントにアクセスします。+ 作成 をクリックします。
Screenshot 2023-12-22 at 10.15.21.png

リソースグループを選択し、ストレージアカウント名を入力します。地域はワークスペースと同じにしましょう。パフォーマンスは性能要件とコスト見合いで選択します。ここではStandardにします。
Screenshot 2023-12-22 at 10.24.18.png

階層型名前空間の階層型名前空間を有効にするにチェックをつけます。
Screenshot 2023-12-22 at 11.00.25.png

他はデフォルトのままにします。
Screenshot 2023-12-22 at 10.28.50.png
Screenshot 2023-12-22 at 10.28.56.png
Screenshot 2023-12-22 at 10.29.01.png
Screenshot 2023-12-22 at 10.29.07.png

設定を確認してストレージアカウントを作成します。
Screenshot 2023-12-22 at 11.00.45.png

Screenshot 2023-12-22 at 10.29.36.png

コンテナーの作成

作成したストレージアカウントにアクセスします。コンテナーをクリックして +コンテナー をクリックします。名前をつけて作成をクリックします。
Screenshot 2023-12-22 at 10.31.14.png
Screenshot 2023-12-22 at 10.31.25.png

作成したストレージアカウント、コンテナ、パスを<コンテナ名>@<ストレージアカウント名>.dfs.core.windows.net/<パス>の形式でメモしておきます。

Unity Catalog用マネージドIDの作成

マネージドIDとは?

サービスプリンシパル(人に紐づかないID)で、Unity Catalogがユーザーに代わってストレージアカウントにアクセスするために使用する。

マネージドIDの作成

Azure Portalの +リソースの作成 をクリックします。
Screenshot 2023-12-22 at 11.11.41.png

Azure Databricksで検索して表示されるAccess Connector for Azure Databricksを選択します。
Screenshot 2023-12-22 at 11.13.13.png

作成をクリックします。
Screenshot 2023-12-22 at 11.14.20.png

名前をつけて、リージョンを選択します。リージョンはストレージアカウント(とDatabricksワークスペース)と同じにします。確認と作成をクリックします。
Screenshot 2023-12-22 at 11.16.20.png

作成をクリックします。
Screenshot 2023-12-22 at 11.17.04.png

リソースに移動をクリックします。
Screenshot 2023-12-22 at 11.17.32.png

リソースIDをコピーしておきます。カーソルを移動するとコピーアイコンが表示されます。
Screenshot 2023-12-22 at 11.18.35.png

マネージドIDにストレージアカウントへのアクセスを許可

ストレージアカウントの作成で作成したストレージアカウントにアクセスします。アクセス制御をクリックし +追加 をクリックしてロールの割り当ての追加を選択します。
Screenshot 2023-12-22 at 11.36.15.png

ストレージ BLOB データ共同作成者で検索して選択します。次へをクリックします。
Screenshot 2023-12-22 at 11.39.36.png

アクセスの割り当て先でマネージドIDを選択し、+メンバーを選択をクリックします。
Screenshot 2023-12-22 at 11.41.27.png

Azure Databricks 用のアクセス コネクタを選択し、マネージドIDの作成で作成したマネージドIDを選択して選択をクリックします。
Screenshot 2023-12-22 at 11.49.39.png

レビューと割り当てをクリックします。
Screenshot 2023-12-22 at 11.50.16.png

もう一度レビューと割り当てをクリックします。
Screenshot 2023-12-22 at 11.50.50.png

マネージドIDにファイルイベントへのアクセス権を付与

マネージドIDにファイルイベントへのアクセスを許可することで、ファイル処理の効率が向上します。

上の手順と同様にマネージドIDにストレージ キュー データ共同作成者を割り当てます。
Screenshot 2023-12-22 at 11.53.24.png

ユーザーに代わってAzure Databricksにファイルイベントを構成するアクセス権を付与

リソースグループとは?

名前の通り、Azureのリソースをグルーピングできる機能。リソースグループを削除すると、そこに属するすべてのリソースが削除される。参考記事

この手順により、Azure Databricksでファイルイベントを自動的に設定できます。

上の手順と同様にマネージドIDにストレージ アカウント共同作成者を割り当てます。
Screenshot 2023-12-22 at 11.56.55.png

ストレージアカウントが属するリソースグループにアクセスします。
Screenshot 2023-12-22 at 12.02.23.png

アクセス制御をクリックし +追加 をクリックしてロールの割り当ての追加を選択します。リソースグループにEventGrid EventSubscription 共同作成者を割り当てます。
Screenshot 2023-12-22 at 12.03.19.png

マネージドIDを追加します。
Screenshot 2023-12-22 at 12.03.57.png
Screenshot 2023-12-22 at 12.06.41.png

DatabricksアカウントコンソールでのUnity Catalogメタストアの作成

Databricksワークスペースにログインして、画面右上に表示される自分のメールアドレスをクリックして、アカウントを管理をクリックして、アカウントコンソールにアクセスします。
Screenshot 2023-12-22 at 12.11.50.png

データをクリックします。
Screenshot 2023-12-22 at 12.13.50.png

メタストアを作成するをクリックします。
Screenshot 2023-12-22 at 12.17.13.png

  • メタストアに名前を付け、リージョンはストレージアカウントと同じものを指定します。私の場合はjapanwestとなります。
  • ADLS Gen 2パスには<コンテナ名>@<ストレージアカウント名>.dfs.core.windows.net/<パス>のフォーマットで指定します。私の場合は、uc-container@japanwestucstorage.dfs.core.windows.net/となります。
  • アクセスコネクターIDにはマネージドIDの作成で作成したマネージドIDのリソースIDを指定します。

作成をクリックします。
Screenshot 2023-12-22 at 12.23.49.png

メタストアが作成されました。
Screenshot 2023-12-22 at 12.25.14.png

メタストアをAzure Databricksワークスペースにアタッチ

上の画面ではすでにアタッチするワークスペースが表示されているので、左端のチェックボックスをチェックします。割り当てるをクリックします。
Screenshot 2023-12-22 at 12.26.27.png

確認メッセージが表示されるので、有効化をクリックします。
Screenshot 2023-12-22 at 12.28.41.png

おめでとうメッセージが出たら成功です。
Screenshot 2023-12-22 at 12.29.30.png

動作確認

上でメタストアをアタッチしたワークスペースにアクセスして、左のメニューからカタログにアクセスします。カタログ一覧にmainが表示されていることを確認します。これがUnity Catalogのデフォルトのカタログです。
Screenshot 2023-12-22 at 12.31.19.png

左のメニューからクラスターを選択し、Personal Computeで作成をクリックします。
Screenshot 2023-12-22 at 12.34.14.png

コンピューティングを作成をクリックします。これで、Unity Catalog対応のクラスターが作成されます。
Screenshot 2023-12-22 at 12.35.19.png

SQLノートブックを作成し、上記クラスターにアタッチして以下のコマンドを実行します。

SHOW CATALOGS;

カタログ一覧が表示されます。
Screenshot 2023-12-22 at 12.39.48.png

以下のコマンドを実行してスキーマ(データベース)を作成します。

USE CATALOG main;
CREATE SCHEMA uc_test;

カタログエクスプローラでスキーマを確認できます。
Screenshot 2023-12-22 at 12.41.22.png

以上で終了です。お疲れ様でした!

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

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

Databricks無料トライアル

Databricks無料トライアル

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1