次の方法で共有


Unity カタログにデータベースを登録する

Important

この機能は、westuswestus2eastuseastus2centralussouthcentralusnortheuropewesteuropeaustraliaeastbrazilsouthcanadacentralcentralindiasoutheastasiaの各リージョンのuksouth段階にあります。

このページでは、Lakebase データベースを読み取り専用の Unity カタログ カタログとして登録する方法について説明します。 これにより、Unity カタログ特権を使用してデータ アクセスを管理し、マネージド データ同期などの統合を利用できます。

所有権とアクセス許可

  • データベースが存在 しない 場合は、カタログと共に作成できます。 この場合、オブジェクトの所有権は 次のガイドラインに従います。
  • カタログ作成者は、Unity カタログ メタストアに対する CREATE CATALOG 権限を持つ必要があります。

カタログを作成する

Unity カタログにデータベースを登録するには、Azure Databricks UI、API 呼び出し、Python SDK、または CLI を使用します。

UI

  1. [アプリ] アイコンをクリックします。右上隅にあるアプリを選択し、Lakebase Postgres を選択します。
  2. [ プロビジョニング済み ] をクリックして、[ プロビジョニングされたインスタンス ] ページを開きます。
  3. データベース インスタンスを選択します。
  4. [Lakebase アプリ] サイドバーの [ カタログ ] ページを選択します。
  5. 右上の [ カタログの追加] をクリックします。
  6. [ カタログの追加 ] ダイアログで、次の手順を実行します。
    • カタログ名: 目的の Unity カタログ カタログ名を入力します。
    • Postgres データベース: ドロップダウン メニューから既存の Postgres データベース (たとえば、 databricks_postgres) を選択するか、新しいデータベース名を入力してカタログと共に作成します。
  7. Create をクリックしてください。
  8. 作成後、[カタログ] リストでカタログをクリックすると、[ カタログ エクスプローラー] ビューが表示されます。

Python SDK

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.database import DatabaseCatalog

# Initialize the Workspace client
w = WorkspaceClient()

# Register an existing database as a UC catalog
catalog = w.database.create_database_catalog(
    DatabaseCatalog(
        name="my_catalog",                    # Name of the UC catalog to create
        database_instance_name="my-instance", # Name of the database instance
        database_name="databricks_postgres",  # Name of the existing Postgres database
    )
)
print(f"Created database catalog: {catalog.name}")

# Create a new database and register it as a UC catalog
catalog = w.database.create_database_catalog(
    DatabaseCatalog(
        name="new_catalog",                   # Name of the UC catalog to create
        database_instance_name="my-instance", # Name of the database instance
        database_name="new_database",         # Name of the Postgres database to register (and optionally create)
        create_database_if_not_exists=True    # Create the database if it doesn't exist
    )
)
print(f"Created new database and catalog: {catalog.name}")

CLI

# Register an existing database as a UC catalog
databricks database create-database-catalog my_catalog my-instance databricks_postgres

# Create a new database and register it as a UC catalog
databricks database create-database-catalog new_catalog my-instance new_database \
  --create-database-if-not-exists

curl

export PG_DATABASE_NAME="<name of the PG database to sync to UC>"
export CATLAOG_NAME="<name of UC catalog to create>"
// Optional
export CREATE_DATABASE_IF_NOT_EXISTS="<whether to create a new database>"
curl -X POST --header "Authorization: Bearer ${DATABRICKS_TOKEN}" https://$WORKSPACE/api/2.0/database/catalogs \
--data-binary @- << EOF
{
  "name": "$CATALOG_NAME",
  "database_name": "$PG_DATABASE_NAME",
  "instance_name": "$INSTANCE_NAME",
  "create_database_if_not_exists": "$CREATE_DATABASE_IF_NOT_EXISTS" // optional
}

制限事項

  • データベース名には、英数字またはアンダースコア文字のみを含める必要があります。 データベース名にハイフンを含めることはできません。
  • データベースに基づいて Unity カタログで作成されたカタログは読み取り専用です。
  • データベース インスタンスのスコープは 1 つのワークスペースであり、ワークスペース間アクセスはサポートされません。 ユーザーは、同じメタストアにアタッチされている他のワークスペースから必要な Unity カタログアクセス許可を持っているが、テーブルの内容にアクセスできない場合は、カタログ エクスプローラーでこれらのテーブルを表示できます。

データベース カタログを使用して Unity カタログ内の Postgres オブジェクトを探索する

カタログを表示するには、実行中のサーバーレス SQL ウェアハウスがアタッチされていることを確認します。

  1. ワークスペースのサイドバーで [ カタログ ] をクリックします。
  2. カタログ ブラウザーでクラスターをクリックし、実行中のサーバーレス SQL ウェアハウスをコンピューティング リソースとして選択します。
  3. [ スタート] をクリックして閉じます

カタログ、スキーマ、テーブルを開くと、同期が自動的にトリガーされます。 ただし、UI は Postgres 要求の数を減らすためにデータをキャッシュする可能性があるため、新しいオブジェクトがすぐに表示されない場合があります。

完全更新をトリガーするには、[ スキーマの更新] アイコンをクリックします。

Unity カタログでデータベース カタログを削除する

データベース カタログを削除するには、データベース カタログの所有者またはメタストア管理者である必要があります。

Databricks では、最初に同期されたすべてのテーブルをデータベース カタログから削除することをお勧めします。 各ソース テーブルは 20 個の同期テーブルの作成にのみ使用でき、データベース カタログが削除された後、同期されたテーブルが Unity カタログでクリーンアップされるまでに最大 3 日かかることがあります。 Unity カタログでの削除が保留中の同期テーブルは、ソース テーブルあたりの 20 個の同期テーブルの制限にカウントされます。

Azure Databricks UI、Python SDK、CLI、または API を使用して、データベース カタログを削除します。

UI

  1. [アプリ] アイコンをクリックします。右上隅にあるアプリを選択し、Lakebase Postgres を選択します。
  2. [ プロビジョニング済み ] をクリックして、[ プロビジョニングされたインスタンス ] ページを開きます。
  3. データベース インスタンスを選択します。
  4. [Lakebase アプリ] サイドバーの [ カタログ ] ページを選択します。
  5. 削除するカタログの場合は、行の右側にある [Kebab] メニュー アイコン をクリックします。
  6. [ 削除] をクリックします。

Python SDK

from databricks.sdk import WorkspaceClient

# Initialize the Workspace client
w = WorkspaceClient()

# Delete a database catalog
catalog_name = "my_catalog"
w.database.delete_database_catalog(name=catalog_name)
print(f"Deleted database catalog: {catalog_name}")

CLI

# Delete a database catalog
databricks database delete-database-catalog my_catalog

curl

curl -X DELETE --header "Authorization: Bearer ${DATABRICKS_TOKEN}" https://$WORKSPACE/api/2.0/database/catalogs/$CATALOG_NAME

カタログが削除されたら、Postgres データベースの名前を変更または削除できます。