みなさん、こんにちは!
Azure Databricks でワークスペースを作成した際、最初の段階で Unity Catalog が設定されておらず、手動で作成しなければならない場合があります。
本記事ではそうした場合に一から Unity Catalog の設定を行う方法についてご紹介します。
設定手順
Unity Catalog が作成されていない場合、以下のように「Delta Shares Received」と「レガシー」のみ表示されています。
ワークスペース作成後、手動で Unity Catalog を有効にするための手順は以下の通りとなります。
1,ADLS Gen2 Storageアカウントとコンテナを作成する。
2,アクセスコネクタを作成する。
3,アクセスコネクタに、ADLS Gen2 Storageアカウントに対する Storage Blob Data Contributor 権限を付与する。
4,メタストアを作成し、ワークスペースに割り当てることで 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 用のストレージコンテナを指定します。書式は例と同様に記載します(@.dfs.core.windows.net/)。
- アクセスコネクターID:「2. アクセスコネクタ作成」で作成したアクセスコネクタのリソースIDを指定します。
設定が完了したら「作成」をクリックします。
対象のワークスペースを選択し、「割り当てる」をクリックします。
確認
ワークスペースのページを更新し、実際に新しいカタログが追加されていることを確認します。
「カタログ」を開くと、「Delta Shares Received」の上に「自組織」という新しいカタログが追加されていることが確認できます。これが今回新しく作成した Unity Catalog です。
※Unity Catalog 有効化後も既存の Hive メタストアは保持されます。
最後に
Unity Catalog を一から手動で設定する方法についてご紹介しました。
Databricks ではデフォルトで設定されている Hive メタストアだけでも通常のデータ処理等は問題なく行えますが、権限管理機能や機械学習モデル登録など Unity Catalog を有効化しないと利用できない機能もあるため、Premium プランをご利用の場合は設定しておくことをおすすめします。