Important
この機能は、、westus、westus2、eastus、eastus2、centralus、southcentralus、northeurope、westeurope、australiaeast、brazilsouth、canadacentral、centralindia、southeastasiaの各リージョンのuksouth段階にあります。
このページでは、Lakebase データベースを読み取り専用の Unity カタログ カタログとして登録する方法について説明します。 これにより、Unity カタログ特権を使用してデータ アクセスを管理し、マネージド データ同期などの統合を利用できます。
所有権とアクセス許可
- データベースが存在 しない 場合は、カタログと共に作成できます。 この場合、オブジェクトの所有権は 次のガイドラインに従います。
- カタログ作成者は、Unity カタログ メタストアに対する
CREATE CATALOG権限を持つ必要があります。
カタログを作成する
Unity カタログにデータベースを登録するには、Azure Databricks UI、API 呼び出し、Python SDK、または CLI を使用します。
UI
- [
右上隅にあるアプリを選択し、Lakebase Postgres を選択します。
- [ プロビジョニング済み ] をクリックして、[ プロビジョニングされたインスタンス ] ページを開きます。
- データベース インスタンスを選択します。
- [Lakebase アプリ] サイドバーの [ カタログ ] ページを選択します。
- 右上の [ カタログの追加] をクリックします。
- [ カタログの追加 ] ダイアログで、次の手順を実行します。
- カタログ名: 目的の Unity カタログ カタログ名を入力します。
-
Postgres データベース: ドロップダウン メニューから既存の Postgres データベース (たとえば、
databricks_postgres) を選択するか、新しいデータベース名を入力してカタログと共に作成します。
- Create をクリックしてください。
- 作成後、[カタログ] リストでカタログをクリックすると、[ カタログ エクスプローラー] ビューが表示されます。
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 ウェアハウスがアタッチされていることを確認します。
- ワークスペースのサイドバーで [ カタログ ] をクリックします。
- カタログ ブラウザーでクラスターをクリックし、実行中のサーバーレス SQL ウェアハウスをコンピューティング リソースとして選択します。
- [ スタート] をクリックして閉じます。
カタログ、スキーマ、テーブルを開くと、同期が自動的にトリガーされます。 ただし、UI は Postgres 要求の数を減らすためにデータをキャッシュする可能性があるため、新しいオブジェクトがすぐに表示されない場合があります。
完全更新をトリガーするには、[
をクリックします。
Unity カタログでデータベース カタログを削除する
データベース カタログを削除するには、データベース カタログの所有者またはメタストア管理者である必要があります。
Databricks では、最初に同期されたすべてのテーブルをデータベース カタログから削除することをお勧めします。 各ソース テーブルは 20 個の同期テーブルの作成にのみ使用でき、データベース カタログが削除された後、同期されたテーブルが Unity カタログでクリーンアップされるまでに最大 3 日かかることがあります。 Unity カタログでの削除が保留中の同期テーブルは、ソース テーブルあたりの 20 個の同期テーブルの制限にカウントされます。
Azure Databricks UI、Python SDK、CLI、または API を使用して、データベース カタログを削除します。
UI
- [
右上隅にあるアプリを選択し、Lakebase Postgres を選択します。
- [ プロビジョニング済み ] をクリックして、[ プロビジョニングされたインスタンス ] ページを開きます。
- データベース インスタンスを選択します。
- [Lakebase アプリ] サイドバーの [ カタログ ] ページを選択します。
- 削除するカタログの場合は、行の右側にある
をクリックします。
- [ 削除] をクリックします。
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 データベースの名前を変更または削除できます。