データベースを Unity Catalog に登録する
プレビュー
この機能は、us-east-1、 us-west-2、 eu-west-1、 ap-southeast-1、 ap-southeast-2、 eu-central-1、 us-east-2、 ap-south-1のリージョンでパブリック プレビューとして提供されています。
Lakebase プロビジョニングは、手動でスケールするプロビジョニング コンピュートを使用します。 新しいLakebase オートスケールとの機能の比較については、 「バージョンの選択」を参照してください。
このページでは、Lakebase データベースを読み取り専用の Unity Catalog カタログとして登録する方法について説明します。これにより、Unity Catalog 特権を使用してデータ アクセスを管理し、マネージド データ同期などの統合を活用できます。
所有権と権限
- データベースが存在 しない場合は 、カタログと一緒に作成できます。この場合、オブジェクトの所有権は これらのガイドラインに従います。
- カタログ作成者は、さらに Unity Catalog メタストアに対する
CREATE CATALOG特権を持っている必要があります。
カタログを作成する
データベースを Unity Catalog に登録するには、Databricks UI、API 呼び出し、Python SDK、または CLI を使用します。
- UI
- Python SDK
- CLI
- curl
-
クリック
右上隅の アプリを クリックし、 Lakebase Postgres を選択します。
-
[プロビジョニング済み] をクリックして、 [プロビジョニング済みインスタンス] ページを開きます。
-
データベース インスタンスを選択します。
-
Lakebase アプリのサイドバーで カタログ ページを選択します。
-
右上の 「カタログの追加」 をクリックします。
-
カタログの追加 ダイアログで次の操作を行います。
- カタログ名 : 希望する Unity Catalog のカタログ名を入力します。
- Postgres データベース : ドロップダウン メニューから既存の Postgres データベース (例:
databricks_postgres) を選択するか、新しいデータベース名を入力してカタログとともに作成します。
-
作成 をクリックします。
-
作成後、 カタログ リストでカタログをクリックして、カタログ エクスプローラービューを表示します。
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}")
# 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
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 Catalog で作成されたカタログは読み取り専用です。
-
データベース インスタンスは単一のワークスペースに限定されており、ワークスペース間のアクセスはサポートされていません。ユーザーは、同じメタストアに接続されている他のワークスペースから必要なUnity Catalog権限を持っている場合、カタログエクスプローラーでこれらのテーブルを表示できますが、テーブルの内容にアクセスすることはできません。
-
カタログ名は、Unity Catalog セキュリティ保護可能なオブジェクト名の 既存の制約 に従う必要があります。
データベース カタログを使用して Unity Catalog で Postgres オブジェクトを調べる
カタログを表示するには、実行中のサーバレス SQLウェアハウスが接続されていることを確認します。
- ワークスペースのサイドバーで カタログ をクリックします。
- カタログ ブラウザでクラスターをクリックし、実行中のサーバレス SQLウェアハウスをコンピュート リソースとして選択します。
- 開始して閉じる をクリックします。
カタログ、スキーマ、およびテーブルを開くと、同期が自動的にトリガーされます。ただし、UI は Postgres リクエストの数を減らすためにデータをキャッシュする可能性があるため、新しいオブジェクトがすぐに表示されない場合があります。
完全な更新をトリガーするには、[ ] をクリックします。
Unity Catalog でデータベース カタログを削除する
データベース カタログを削除するには、データベース カタログの所有者またはメタストア管理者である必要があります。
Databricks では、最初にデータベース カタログから同期されたすべてのテーブルを削除することをお勧めします。各ソース テーブルは 20 個の同期テーブルの作成にのみ使用でき、データベース カタログが削除された後、同期されたテーブルが Unity Catalog でクリーンアップされるまでに最大 3 日かかる場合があります。Unity Catalog で削除が保留されている同期テーブルは、ソース テーブルあたり 20 個の同期テーブルの制限にカウントされます。
Databricks UI、Python SDK、CLI、または API を使用して、データベース カタログを削除します。
- UI
- Python SDK
- CLI
- curl
- クリック
右上隅の アプリを クリックし、 Lakebase Postgres を選択します。
- [プロビジョニング済み] をクリックして、 [プロビジョニング済みインスタンス] ページを開きます。
- データベース インスタンスを選択します。
- Lakebase アプリのサイドバーで カタログ ページを選択します。
- 削除したいカタログについては、
行の右側にあります。
- 削除 をクリックします。
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}")
# Delete a database catalog
databricks database delete-database-catalog my_catalog
curl -X DELETE --header "Authorization: Bearer ${DATABRICKS_TOKEN}" https://$WORKSPACE/api/2.0/database/catalogs/$CATALOG_NAME
カタログを削除した後、Postgres データベースの名前を変更したり、削除したりできます。