カタログの作成
この記事では、Unity Catalog でカタログを作成する方法について説明します。 カタログには スキーマ (データベース) が含まれ、スキーマにはテーブル、ビュー、ボリューム、モデル、および関数が含まれます。
カタログの詳細については、「 Databricks のカタログとは」を参照してください。
フォーリンカタログ (外部データ・システム内のデータベースをミラーリングするUnity Catalogオブジェクト) の作成方法については、フォーリンカタログの作成を参照してください。フォーリンカタログの管理と操作も参照してください。
必要条件
カタログの種類に関係なくカタログを作成するには:
- 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 または サーバレス である必要があります。
カタログを作成する
カタログを作成するには、Catalog Explorer、SQL コマンド、REST API、Databricks CLI、または Terraform を使用できます。 カタログを作成すると、 default
と information_schema
の 2 つのスキーマ (データベース) が自動的に作成されます。
- Catalog Explorer
- SQL
- Other
-
メタストアにリンクされているワークスペースにログインします。
-
[カタログ] をクリックします。
-
[クイック アクセス ] の下の [カタログ ] をクリックします。
-
[ カタログを作成 ] をクリックします。
-
[ 新しいカタログの作成 ] ダイアログで、[ カタログ名 ] を入力し、作成するカタログの [ タイプ ] を選択します。
- 標準 カタログ: Unity Catalog によって管理されるデータと AI アセットを整理するセキュリティ保護可能なオブジェクト。レイクハウスフェデレーションと Delta Sharing 共有から作成されたカタログを除くすべてのユースケース。
- 外部 カタログ : レイクハウスフェデレーションを使用して外部データ システム内のデータベースをミラーリングするセキュリティ保護可能なオブジェクト。 「レイクハウスフェデレーションのセットアップの概要」を参照してください。
- 共有 カタログ: Delta Sharing 共有 として共有されるデータやその他の資産を整理するセキュリティ保護可能なオブジェクト。共有からカタログを作成すると、ワークスペース内のユーザーがそれらのアセットを読み取ることができます。「共有とは」を参照してください。
-
カタログ・タイプに応じて、以下のオプションを指定します。
-
標準カタログの場合 : オプションですが、管理 ストレージの場所 を指定することを強くお勧めします。管理対象ストレージの場所として使用するターゲット外部ロケーションに対する
CREATE MANAGED STORAGE
権限が必要です。 「Unity Catalog で管理されたストレージの場所を指定する」を参照してください。オプションで、定義された外部ロケーションのサブパスを指定できます。外部ロケーションが定義されていない場合は、[ 新しい外部ロケーションを作成 ] をクリックして作成できます。
-
ワークスペースにメタストア レベルのストレージの場所がない場合は、カタログを作成するときにマネージドストレージロケーションを指定する 必要があります 。
-
フォーリンカタログの場合: 外部データベース Unity Catalogシステムにアクセスするためのパスと資格情報を指定する 内のセキュリティ保護可能なオブジェクトである[接続] を選択する必要があります。「レイクハウスフェデレーションのセットアップの概要」を参照してください。
接続を選択したら、ミラーリングする データベース またはその他の Databricks カタログ の名前を入力します。
要件はデータソースによって異なります。
- MySQLは2層の名前空間を使用するため、データベース名は必要ありません。
- 別のDatabricksワークスペース内のカタログに接続する場合は、データベース名ではなくDatabricks カタログ 名を入力します。
接続が定義されていない場合は、[ 新しい接続の作成 ] をクリックして接続を作成できます。
-
共有カタログの場合 : [プロバイダー ] と [共有 ] を選択する必要があります。プロバイダーを選択したら、プロバイダーの株式の 1 つを選択できます。
必要なプロバイダーと共有がわからない場合は、Catalog Explorer ブラウザーを使用してプロバイダーと共有を参照または検索する方が簡単な場合があります。「 プロバイダーの表示 」および 「プロバイダーが共有した共有の表示」を参照してください。
-
作成 をクリックします。
-
カタログ作成! ダイアログで、「 カタログの表示 」をクリックしてカタログを自動的に構成したものとして受け入れるか、「 カタログの構成 (推奨)」をクリックしてカタログの権限、ワークスペース・バインディングおよびメタデータを構成します。
[ カタログの表示 ] をクリックすると、メタストアに接続されているすべてのワークスペースからカタログにアクセスできるようになり、すべてのアカウント ユーザーに
BROWSE
権限が付与されます。この手順の残りのステップをスキップして、カタログへのスキーマの追加に進むことができます。スキーマの作成を参照してください。カタログエクスプローラーのカタログ詳細ページには、いつでも戻って、所有者、タグ、コメント、ワークスペースバインディング、権限、スキーマを更新できます。
-
[ カタログ>ワークスペースの構成 ] ページで、カタログがバインドされているワークスペースを指定します。
By デフォルト、カタログは現在のメタストアに接続されているすべてのワークスペースと共有されます。 カタログに特定のワークスペースに制限する必要があるデータが含まれる場合は、[ すべてのワークスペースにアクセス権がある ] オプションをオフにし、[ ワークスペースに割り当て] ボタンを使用してそれらのワークスペースを追加します。 現在のワークスペースを含める必要があります。
ワークスペースを割り当てた後、オプションでデフォルトの 読み取りおよび書き込み アクセスレベルを 読み取り専用 に変更することができます。リストからワークスペースを選択し、 アクセスレベルの管理 ボタンをクリックします。
詳細については、「 カタログへのアクセスを特定のワークスペースに制限する」を参照してください。
-
[次へ ] をクリックして、カタログの 権限 を割り当てます。
すべてのアカウント ユーザーには、デフォルトで
BROWSE
権限が付与されており、データへの読み取りアクセス権がなくてもカタログ メタデータを検出できます。ユーザー、グループ、またはサービスプリンシパルに権限を付与するには、[ 付与] をクリックし、「権限とセキュリティ保護可能なオブジェクトUnity Catalog」の指示に従います。
-
「次へ 」をクリックして、オプションのタグとコメント のメタデータ を追加します。
タグ は、カタログを整理および分類してデータ資産の検索と検出を簡素化するために使用できるキーと値のペアです。値はオプションです。「 Unity Catalog のセキュリティ保護可能なオブジェクトにタグを適用する」を参照してください。
コメント は、ユーザーがカタログ内のデータ資産を見つけるのに役立つ説明を提供するためによく使用される自由形式のフィールドです。「データ資産と AI 資産にコメントを追加する」を参照してください。
-
保存 をクリックします。
-
スキーマとデータオブジェクトをカタログに追加します。
スキーマの作成を参照してください。
カタログエクスプローラを使用すると、カタログを作成した後でいつでも、所有者、タグ、コメント、ワークスペースバインディング、およびパーミッションを更新できます。
標準カタログを作成するには 、ノートブックまたは SQL クエリエディタで次の SQL コマンドを実行します。括弧内の項目はオプションです。プレースホルダーの値を置き換えます。
-
<catalog-name>
: カタログの名前。 -
<location-path>
: オプションですが、強くお勧めします。 このカタログ内のマネージドテーブルを、メタストア用に構成されたデフォルトのルート ストレージとは異なる場所に保存する場合は、ストレージの場所のパスを指定します。
ワークスペースにメタストア レベルのストレージの場所がない場合は、カタログを作成するときにマネージドストレージロケーションを指定する必要があります。
このパスは外部ロケーション設定で定義する必要があり、外部ロケーション設定に対する CREATE MANAGED STORAGE
権限を持っている必要があります。 外部ロケーション設定またはサブパス (つまり、 'gs://depts/finance'
または 'gs://depts/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>
:Databricksのカタログの名前。<connection-name>
: データソース、パス、およびアクセス認証情報を指定する 接続オブジェクト 。<database-name>
: Databricks のカタログとしてミラーリングするデータベースの名前。2 層の名前空間を使用する MySQL には必要ありません。 Databricks-to-Databricks レイクハウスフェデレーションの場合は、代わりにcatalog '<external-catalog-name>'
を使用します。<external-catalog-name>
: Databricks-to-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 の特権とセキュリティ保護可能なオブジェクト」を参照してください。