Azure Databricks でワークスペースを作成した際、最初の段階で Unity Catalog が設定されておらず、手動で作成しなければならない場合があります。
本記事ではそうした場合に一から Unity Catalog の設定を行う方法についてご紹介します。
設定手順
Unity Catalog が作成されていない場合、以下のように「Delta Shares Received」と「レガシー」のみ表示されています。
ワークスペース作成後、手動で Unity Catalog を有効にするための手順は以下の通りとなります。
- ADLS Gen2 Storageアカウントとコンテナを作成する。
- アクセスコネクタを作成する。
- アクセスコネクタに、ADLS Gen2 Storageアカウントに対する Storage Blob Data Contributor 権限を付与する。
- メタストアを作成し、ワークスペースに割り当てることで Unity Catalog を有効化する。
※Unity Catalog メタストアはリージョン依存なので、リソースはすべて同じリージョン内に作成する必要があります。
0. 事前準備
Unity Catalog 設定にあたり、以下の準備をしておきます。
- Premium 以上のプランであることを確認(Unity Catalog を利用するためには Premium プランである必要があるため)。
- Azure でグローバル管理者権限が付与されていることを確認(グローバル管理者権限がないと Databricks のアカウントコンソールを開けないため)。
1. ストレージアカウント作成
ホーム画面から「ストレージアカウント」に移動します。
各項目を設定します。リソースグループとリージョンはワークスペースと同じものを設定し、プライマリサービスは「Azure Blob Storage または Azure Data Lake Storage Gen2」を選択します。
※検証目的のため、パフォーマンスと冗長性はコストを抑えたものを選択しています。
「詳細」タブで「階層型名前空間を有効にする」にチェックを入れておきます。
他はデフォルトのままで「レビューと作成」を開き、「作成」をクリックします。
デプロイが完了しました。
次に「リソースに移動」をクリックし、「データストレージ」→「コンテナ」を選択します。
「+コンテナ」ボタンをクリックし、新しいコンテナを適当な名前で作成します。
新しいコンテナが作成されました。
2. アクセスコネクタ作成
「Azure Databricks 用のアクセス コネクタ」を開きます。
「作成」ボタンをクリックします。
ワークスペースと同じリソースグループ、リージョンを指定して「作成」をクリックします。
デプロイが完了しました。
3. 権限付与
「ストレージアカウント」→「アクセス制御(IAM)」で「ロールの割り当ての追加」をクリックします。
「ストレージ BLOB データ共同作成者」をクリックし、次に進みます。
「アクセスの割り当て先」で「マネージドID」にチェックを入れ、先ほど作成したアクセスコネクタを選択します。
「レビューと割り当て」をクリックし、変更を確定します。
ロールが割り当てられたことを確認します。
4. Unity Catalog 有効化
アカウントコンソールにアクセスします。
※執筆時点でワークスペースから直接アカウントコンソールを開くことはできないため、上記リンクからアクセスする必要があります。
「カタログ」をクリックします。
「メタストアを作成する」をクリックします。
各項目を以下のように設定します。
- 名前:任意の名前
- リージョン:リソースグループと同じリージョン
- ADLS Gen 2パス:Unity Catalog 用のストレージコンテナを指定します。書式は例と同様に記載します(
<container_name>@<storage_account_name>.dfs.core.windows.net/<path>
)。 - アクセスコネクターID:「2. アクセスコネクタ作成」で作成したアクセスコネクタのリソースIDを指定します。
設定が完了したら「作成」をクリックします。
対象のワークスペースを選択し、「割り当てる」をクリックします。
確認のポップアップが出てきたら「有効化」をクリックします。
以上で設定完了です!お疲れ様でした。
確認
ワークスペースのページを更新し、実際に新しいカタログが追加されていることを確認します。
「カタログ」を開くと、「Delta Shares Received」の上に「自組織」という新しいカタログが追加されていることが確認できます。これが今回新しく作成した Unity Catalog です。
※Unity Catalog 有効化後も既存の Hive メタストアは保持されます。
さいごに
Unity Catalog を一から手動で設定する方法についてご紹介しました。
Databricks ではデフォルトで設定されている Hive メタストアだけでも通常のデータ処理等は問題なく行えますが、権限管理機能や機械学習モデル登録など Unity Catalog を有効化しないと利用できない機能もあるため、Premium プランをご利用の場合は設定しておくことをおすすめします。