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