Unity CatalogにLakebaseデータベースを登録する
Lakebaseオートスケールは、オートスケールコンピュート、ゼロへのスケール、分岐、即時復元を備えたLakebaseの最新バージョンです。 サポートされているリージョンについては、 「リージョンの提供状況」を参照してください。Lakebaseプロビジョニング ユーザーの場合は、 Lakebaseプロビジョニング」を参照してください。
Unity Catalogで Lakebase データベースを登録すると、Postgres データベースを表す読み取り専用カタログが作成され、レイクハウスとトランザクションのワークロード全体で統合されたデータガバナンスとクロスソース分析が可能になります。
Unity Catalogに登録する理由
登録すると、次のようないくつかの利点があります。
統合ガバナンス : Unity Catalogのガバナンス制御 (権限、リネージ追跡、監査ログ) を、レイクハウス データとともに Lakebase データに適用します。
クロスソース クエリ : 単一のSQLインターフェイスからUnity Catalogテーブルと Lakebase データベースの両方にクエリを実行し、トランザクション データと分析データを組み合わせた分析を可能にします。
一元的な検出 : ワークスペース内の他のデータ ソースと一緒に、Catalog Explorer を通じて Lakebase データベース、スキーマ、テーブルを参照して検出します。
統合ワークフロー : コンテキストを切り替えたり、個別の接続を管理したりすることなく、Databricks ダッシュボードとアプリケーションで Lakebase データを使用します。
仕組み
登録により、Postgres データベース構造をミラーリングする読み取り専用の Unity Catalog カタログが作成され、Unity Catalog のガバナンス レイヤーを通じてデータベース オブジェクト (スキーマ、テーブル、ビュー) へのメタデータ アクセスが提供されます。
登録は、Unity Catalog のカタログ作成ワークフローと自然に統合される Lakebase インターフェースからではなく、Catalog Explorer から開始します。
登録後:
- LakebaseデータベースはUnity Catalogにカタログとして表示されます
- Unity Catalog権限は、データベースを表示およびクエリできるユーザーを制御します。
- カタログは読み取り専用のままです。実際のデータベースはLakebaseを通じて管理します。
前提条件
- 少なくとも 1 つのデータベースを持つ既存の Lakebase プロジェクト
CREATE CATALOGUnity Catalogメタストアの権限- 登録されたカタログをクエリするためのサーバレスSQLウェアハウス
データベースを登録する
- UI
- Python SDK
- Java SDK
- curl
- アプリスイッチャーを使用してレイクハウスに移動します。
- カタログ エクスプローラーで、プラス アイコンをクリックし、 カタログを作成します 。
- カタログ名を入力します (例:
lakebase_catalog)。 - カタログ タイプとして Lakebase Postgres を選択し、 オートスケール オプションを選択します。
- プロジェクト、ブランチ、Postgres データベースを選択します。
- 作成 をクリックします。

カタログはカタログ エクスプローラーに表示され、スキーマ、テーブル、ビューを参照し、 SQLウェアハウスを使用してクエリを実行できます。
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.postgres import Catalog, CatalogCatalogSpec
w = WorkspaceClient()
catalog = w.postgres.create_catalog(
catalog=Catalog(spec=CatalogCatalogSpec(
postgres_database="mydb",
branch="projects/my-project/branches/production",
)),
catalog_id="my-catalog",
).wait()
print(f"Catalog registered: {catalog.name}")
import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.service.postgres.*;
WorkspaceClient w = new WorkspaceClient();
Catalog catalog = w.postgres().createCatalog(
new CreateCatalogRequest()
.setCatalogId("my-catalog")
.setCatalog(new Catalog()
.setSpec(new CatalogCatalogSpec()
.setPostgresDatabase("mydb")
.setBranch("projects/my-project/branches/production"))))
.waitForCompletion();
System.out.println("Catalog registered: " + catalog.getName());
curl -X POST "https://your-workspace.cloud.databricks.com/api/2.0/postgres/catalogs?catalog_id=my-catalog" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"spec": {
"postgres_database": "mydb",
"branch": "projects/my-project/branches/production"
}
}'
これは、実行時間の長い操作を返します。返されたnameフィールドをdone: trueになるまでポーリングします。長時間実行される操作を参照してください。認証設定については、 「認証」を参照してください。
登録済みデータベースを探索する
登録後、カタログ エクスプローラーでカタログに移動し、スキーマ、テーブル、ビューを参照します。任意のテーブルをクリックすると、スキーマの詳細、サンプル データ、およびリネージ情報が表示されます。
Unity Catalog は Lakebase データベースからメタデータを自動的に同期します。Lakebase でテーブルを追加または変更する場合は、カタログ ビューを更新して更新を確認します。
登録状況を確認する
カタログの現在の登録情報をプログラムで取得するには:
- Python SDK
- Java SDK
- curl
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
catalog = w.postgres.get_catalog("catalogs/my-catalog")
print(f"Database: {catalog.status.postgres_database}")
print(f"Branch: {catalog.status.branch}")
import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.service.postgres.Catalog;
WorkspaceClient w = new WorkspaceClient();
Catalog catalog = w.postgres().getCatalog("catalogs/my-catalog");
System.out.println("Database: " + catalog.getStatus().getPostgresDatabase());
System.out.println("Branch: " + catalog.getStatus().getBranch());
curl "https://your-workspace.cloud.databricks.com/api/2.0/postgres/catalogs/my-catalog" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}"
登録済みデータベースを照会する
SQLウェアハウスまたはUnity Catalogに接続するツールを使用して、登録されたLakebaseデータベースをクエリします。
-- Query a registered :re[LKB] database
SELECT * FROM chatbot_catalog.public.conversations
WHERE created_at >= current_date - INTERVAL 7 DAYS;
-- Join :re[LKB] and lakehouse data
SELECT
c.conversation_id,
c.user_id,
c.agent_response,
u.user_name,
u.subscription_tier
FROM chatbot_catalog.public.conversations c
JOIN main.user_analytics.users u
ON c.user_id = u.user_id;
読み取り専用カタログにより、クエリによって Unity Catalog を通じて Lakebase データベースが変更されることがなくなります。データを変更するには、Lakebase SQL エディターを使用するか、データベースに直接接続します。
権限とアクセス制御
Unity Catalog の権限は、登録された Lakebase データベースへのアクセスを制御します。
- カタログ所有者 : データベースを登録したユーザーがカタログ所有者となります
- 読み取りアクセス : 他のユーザーがデータベースを照会できるようにするには、
USE CATALOGおよびSELECT権限を付与します - メタストア管理者 : メタストア管理者は登録されているすべてのカタログを管理できます
登録済みデータベースへのアクセスを許可するには:
-- Grant read access to a group
GRANT USE CATALOG ON CATALOG chatbot_catalog TO `ai-engineering`;
GRANT SELECT ON CATALOG chatbot_catalog TO `ai-engineering`;
Unity Catalogで設定された権限は、 SQLを介したクエリ アクセスを制御します。 Lakebase データベースへの直接接続では、Postgres のロールと権限が個別に使用されます。
データベースの登録を解除する
登録解除すると、カタログはUnity Catalogから削除されますが、 Lakebaseデータベースには影響しません。 データベースは、LakebaseおよびPostgresへの直接接続を通じて引き続きアクセス可能です。
- UI
- Python SDK
- Java SDK
- curl
カタログエクスプローラーでカタログを選択し、 、そして 「削除」 を選択します。
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
w.postgres.delete_catalog("catalogs/my-catalog").wait()
import com.databricks.sdk.WorkspaceClient;
WorkspaceClient w = new WorkspaceClient();
w.postgres().deleteCatalog("catalogs/my-catalog").waitForCompletion();
curl -X DELETE "https://your-workspace.cloud.databricks.com/api/2.0/postgres/catalogs/my-catalog" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}"
登録済みのデータベースから同期テーブルを作成した場合は、まずそれらのテーブルを削除します。各ソース テーブルは 20 個の同期テーブルの作成にのみ使用でき、削除が保留中の同期テーブルもこの制限にカウントされます。
制限事項
読み取り専用アクセス : Lakebase データベースから登録されたカタログは読み取り専用です。Unity Catalogクエリを通じてデータを変更することはできません。
カタログごとに 1 つのデータベース : 各 Unity Catalog カタログは 1 つの Lakebase データベースを表します。複数のデータベースを公開するには、それぞれを個別に登録します。
メタデータ同期 : Unity Catalog はメタデータをキャッシュして Postgres リクエストを削減します。新しいオブジェクトはすぐには表示されない場合があります。クリック完全な更新をトリガーします。
ブランチ分離 : 特定のブランチから登録するデータベースをカタログ化します。 複数のブランチのデータにアクセスするには、各ブランチのデータベースを別個のカタログとして登録します。