カタログの作成
この記事では、Unity Catalog でカタログを作成する方法を示します。 カタログにはスキーマ (データベース) が含まれており、スキーマにはテーブル、ビュー、ボリューム、モデル、関数が含まれています。
カタログの詳細については、「Azure Databricks のカタログとは」を参照してください。
Note
外部データ システム内のデータベースをミラー化する Unity Catalog オブジェクトである "外部カタログ" を作成する方法については、「外部カタログの作成」を参照してください。 「外部カタログの管理と操作」も参照してください。
要件
カタログを作成するには (すべてのカタログの種類に共通です):
- Azure Databricks メタストア管理者であるか、メタストアに対して
CREATE CATALOG
特権を持っている必要があります。 - カタログを作成するためのノートブック実行に使用するコンピューティング リソースが Databricks Runtime 11.3 以上であることと、Unity Catalog 準拠のアクセス モードを使用することが必要です。 「アクセス モード」を参照してください。 SQL ウェアハウスは常に Unity Catalog をサポートします。
共有カタログを作成するには:
- Delta Sharing 共有が既にワークスペース内に存在する必要があります。 「チームが共有データを利用できるようにする方法」を参照してください。
- メタストア管理者であるか、メタストアに対する
USE PROVIDER
特権を持っているか、その共有が含まれるプロバイダー オブジェクトを所有している必要があります。
標準カタログを作成するには:
- カタログ用にマネージド ストレージの場所を指定する場合は、ターゲットの外部の場所に対する
CREATE MANAGED STORAGE
特権が必要です。 - メタストアレベルのマネージド ストレージが存在しない場合は、カタログ用のマネージド ストレージの場所を指定することが必須です。
外部カタログを作成するには:
- 外部カタログの作成に使用する接続の所有者であるか、その接続に対する
CREATE FOREIGN CATALOG
特権を持っていることが必要です。 - Databricks Runtime 13.1 以上のコンピューティングを使用する必要があります。 SQL ウェアハウスは、Pro またはサーバーレスである必要があります。
カタログを作成する
カタログを作成するには、カタログ エクスプローラー、SQL コマンド、REST API、Databricks CLI、または Terraform を使用できます。 カタログを作成すると、2 つのスキーマ (データベース) default
と information_schema
が自動的に作成されます。
カタログ エクスプローラー
メタストアにリンクされているワークスペースにログインします。
[カタログ] をクリックします。
[カタログの作成] ボタンをクリックします。
[カタログの新規作成] ダイアログで、カタログ名を入力し、作成するカタログの種類を選択します。
- 標準カタログ: Unity Catalog によって管理されるデータと AI 資産を整理する、セキュリティ設定が可能なオブジェクトです。 Lakehouse フェデレーションと、Delta Sharing 共有から作成されたカタログを除く、すべてのユース ケースに対応します。
- 外部カタログ: Lakehouse フェデレーションを使用して外部データ システム内のデータベースをミラーリングする、セキュリティ設定が可能なオブジェクトです。 「Lakehouse フェデレーションのセットアップの概要」を参照してください。
- 共有カタログ: Delta Sharing 共有として自分と共有されるデータやその他の資産を整理する、セキュリティ設定が可能なオブジェクトです。 共有からカタログを作成すると、その資産はワークスペース内のユーザーによる読み取りが可能になります。 「共有とは」を参照してください。
カタログの種類に応じて、次のオプションを指定します。
標準カタログの場合: これは必須ではありませんが、マネージド ストレージの場所を指定することを強くお勧めします。 マネージド ストレージの場所として使用される、ターゲットの外部の場所に対する
CREATE MANAGED STORAGE
特権が必要です。 「Unity Catalog の管理されたストレージの場所の指定」を参照してください。必要に応じて、定義済みの外部の場所のサブパスを指定できます。 定義済みの外部の場所がない場合は、[新しい外部の場所の作成] をクリックして作成できます。
重要
ワークスペースにメタストアレベルのストレージの場所がない場合は、カタログの作成時にマネージド ストレージの場所を指定することが必須です。
外部カタログの場合: 接続を選択する必要があります。これは Unity Catalog 内のセキュリティ設定が可能なオブジェクトであり、外部データベース システムにアクセスするためのパスと認証情報がこれで指定されます。 「Lakehouse フェデレーションのセットアップの概要」を参照してください。
接続の選択が完了したら、ミラーリングするデータベースまたは他の Databricks カタログの名前を入力します。
要件は、データ ソースによって異なります。
- MySQL は 2 層の名前空間を使用するため、データベース名は必要ありません。
- 別の Databricks ワークスペースのカタログに接続する場合は、データベース名の代わりに Databricks Catalog 名を入力します。
定義済みの接続がない場合は、[新しい接続の作成] をクリックして作成できます。
共有カタログの場合: プロバイダーと共有を選択する必要があります。 プロバイダーの選択が完了したら、そのプロバイダーの共有の 1 つを選択できます。
どのプロバイダーと共有が必要かが不明の場合は、カタログ エクスプローラーの参照画面を使用してプロバイダーと共有を一覧から選択するか検索すると、簡単に特定できる可能性があります。 「プロバイダーを表示する」と「プロバイダーが共有している共有を表示する」を参照してください。
Create をクリックしてください。
[カタログが作成されました] ダイアログで、自動的に構成されたカタログをそのまま受け入れる場合は [カタログの表示] をクリックし、カタログのアクセス許可、ワークスペース バインド、およびメタデータを構成する場合は [カタログの構成] をクリックします (推奨)。
[カタログの表示] をクリックする場合は、そのカタログはメタストアにアタッチされているすべてのワークスペースからアクセス可能になり、すべてのアカウント ユーザーに
BROWSE
特権が付与されます。 この手順の残りのステップを省略して、カタログへのスキーマの追加に進むことができます。 「スキーマの作成」を参照してください。いつでも、カタログ エクスプローラー内のカタログ詳細ページに戻って所有者、タグ、コメント、ワークスペース バインド、アクセス許可、スキーマを更新できます。
[カタログの構成] > [ワークスペース] ページで、カタログのバインド先のワークスペースを指定します。
既定では、カタログは現在のメタストアにアタッチされているすべてのワークスペースと共有されます。 カタログに収録されるデータが、特定のワークスペースに限定すべきものである場合は、[すべてのワークスペースがアクセス可能] オプションをオフにし、[ワークスペースに割り当てる] ボタンを使用してそのワークスペースを追加します。 現在のワークスペースが含まれている必要があります。
ワークスペースを割り当てた後に、必要に応じてアクセス レベルを既定の [読み取りと書き込み] から [読み取り専用] に変更できます。変更するには、そのワークスペースを一覧から選択して [アクセス レベルの管理] ボタンをクリックします。
詳細については、「特定のワークスペースにカタログ アクセスを制限する」を参照してください。
[次へ] をクリックしてカタログのアクセス許可を割り当てます。
すべてのアカウント ユーザーに既定で
BROWSE
特権が付与されるため、カタログ メタデータへの読み取りアクセス権がなくてもメタデータを検出できます。ユーザー、グループ、またはサービス プリンシパルに特権を付与するには、[許可] をクリックし、「Unity Catalog の権限とセキュリティ保護可能なオブジェクト」の手順に従ってください。
[次へ] をクリックして、必要に応じてタグとコメントをメタデータに追加します。
タグはキーと値のペアであり、これを使用するとカタログを整理して分類できるので、データ資産の検索と検出が簡単になります。 値は省略可能です。 「Unity Catalog のセキュリティ保護可能なオブジェクトにタグを適用する」をご覧ください。
コメントは自由記述フィールドであり、多くの場合は、カタログ内のデータ資産をユーザーが検出しやすいように説明を追加するために使用されます。 「データと AI 資産にコメントを追加する」を参照してください。
[保存] をクリックします。
スキーマとデータ オブジェクトをカタログに追加します。
「スキーマの作成」を参照してください。
カタログ エクスプローラーを使用すると、所有者、タグ、コメント、ワークスペース バインド、アクセス許可をカタログ作成後にいつでも更新できます。
SQL
標準カタログを作成するには、次の SQL コマンドをノートブックまたは SQL クエリ エディター内で実行します。 角かっこ内の項目は省略可能です。 プレースホルダー値を次のように置き換えます。
<catalog-name>
: カタログの名前。<location-path>
: 省略可能ですが、強くお勧めします。 このカタログ内のマネージド テーブルを、メタストアに対して構成された既定のルート保存場所とは異なる場所に保存する場合は、保存場所のパスを指定します。重要
ワークスペースにメタストアレベル ストレージの場所がない場合は、カタログの作成時にマネージド ストレージの場所を指定する必要があります。
このパスは外部の場所の構成で定義する必要があり、ユーザーにはその外部の場所の構成に対する
CREATE MANAGED STORAGE
特権が必要です。 外部の場所の構成またはサブパス (つまり、'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance'
または'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance/product'
) で定義されているパスを使用できます。<comment>
: 省略可能な説明またはその他のコメントです。
CREATE CATALOG [ IF NOT EXISTS ] <catalog-name>
[ MANAGED LOCATION '<location-path>' ]
[ COMMENT <comment> ];
たとえば、example
という名前のカタログを作成するには、次のようにします。
CREATE CATALOG IF NOT EXISTS example;
共有カタログを作成するには、次のコマンドをノートブックまたは SQL クエリ エディター内で実行します。 角かっこ内の項目は省略可能です。
CREATE CATALOG [IF NOT EXISTS] <catalog-name>
USING SHARE <provider-name>.<share-name>;
[ COMMENT <comment> ];
外部カタログを作成するには、次のコマンドをノートブックまたは SQL クエリ エディター内で実行します。 角かっこ内の項目は省略可能です。 プレースホルダー値を次のように置き換えます。
<catalog-name>
: Azure Databricks 内のカタログの名前。<connection-name>
: データ ソース、パス、アクセス資格情報を指定する接続オブジェクト。<database-name>
: Azure Databricks でカタログとしてミラーリングするデータベースの名前。 2 層の名前空間を使用する MySQL には必要ありません。 Databricks-to-Databricks の Lakehouse フェデレーションの場合は、catalog '<external-catalog-name>'
を代わりに使用します。<external-catalog-name>
: Databricks 間のみ: ミラーリングしている外部 Databricks ワークスペース内のカタログの名前。 「別の Databricks ワークスペースでフェデレーション クエリを実行する」を参照してください。
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS [(database '<database-name>') | (catalog '<external-catalog-name>')];
「外部カタログを作成する」も参照してください。
カタログ アクセスをアカウント内の特定のワークスペースに限定するには (ワークスペースカタログ バインドとも呼ばれます)、「特定のワークスペースにカタログ アクセスを制限する」を参照してください。
詳しいパラメーターの説明については、CREATE CATALOG を参照してください。
カタログの作成が完了したら、そのカタログに特権を割り当てます。 「Unity Catalog の権限とセキュリティ保護可能なオブジェクト」を参照してください。
その他
Terraform: Databricks Terraform プロバイダーと databricks_catalog を使用してカタログを作成できます。 databricks_catalogs を使用して、カタログに関する情報を取得できます。
REST API: POST /api/2.1/unity-catalog/catalogs を使用します。
Databricks CLI: databricks catalogs create <catalog-name> [options]
オプションの一覧については、databricks catalogs create -h
を実行してください。 オプションの説明は、API リファレンスにもあります。 前の段落の API のリンク先を参照してください。
カタログの作成が完了したら、そのカタログに特権を割り当てます。 「Unity Catalog の権限とセキュリティ保護可能なオブジェクト」を参照してください。