メインコンテンツまでスキップ

Lakebase リソースをDatabricksアプリに追加する

Lakebase データベースをDatabricks Appsリソースとして追加して、デプロイ全体でデータを保持します。 これらのPostgreSQLを基盤とするリソースを使用すると、アプリケーションは状態を保持するスキーマとテーブルを作成および管理できます。

Lakebaseデータベースのリソースには、以下の種類があります。

どちらのタイプも同じPostgreSQL接続モデルを使用し、アプリケーションに同じ環境変数を提供します。

データベースリソースの追加

Lakebaseデータベースをリソースとして追加する前に、アプリのリソース要件を確認してください。

注記

2026年3月12日以降は、新しいプロビジョニング済みデータベースを作成することはできませんが、既存のデータベースをアプリのリソースとして追加することは可能です。「オートスケールにアップグレードする」を参照してください。

  1. アプリを作成または編集するときに、 [アプリ リソース] セクションで、 [+ リソースの追加] > [データベース] をクリックします。
  2. データベースを選択してください。Lakebaseオートスケールの場合は、プロジェクト、ブランチ、データベースを選択します。 Lakebaseプロビジョニングの場合は、データベース インスタンスとそのインスタンス内のデータベースを選択します。
  3. アプリに適した権限レベルを選択します。現在、使用可能な権限は、 接続して作成できるだけです
  4. (オプション)カスタムリソースキーを指定します。これは、アプリ構成でデータベースを参照する方法です。安全キーは、 Lakebaseオートスケールの場合はpostgres 、 Lakebaseプロビジョニングの場合はdatabaseです。

Lakebaseプロジェクトをアプリリソースとして追加するには、Lakebaseプロジェクトに対するCAN MANAGE権限が必要です。

データベース・リソースを追加すると、次のようになります。

  • Databricksは、選択したデータベースにPostgreSQLロールを作成します。役割名は、サービスプリンシパルのクライアントIDと一致します。役割が既に存在する場合、Databricks はそれを再利用します。
  • Databricks、選択したデータベースに対する権限とCONNECT``CREATE権限をサービスプリンシパルに付与します。これらの権限により、アプリはデータベースにスキーマとテーブルを作成できます。
  • Lakebase Autoscalingの場合、リソースを追加するユーザーはプロジェクトに対するCAN MANAGE権限を持っている必要があります。

環境変数

データベース リソースを使用してアプリをデプロイすると、Databricks は最初のデータベース リソースに対して次の環境変数を設定します。

アプリが複数のPostgreSQLデータベースを使用している場合、これらの変数は最初のデータベースのみを反映します。リソースキーとともにvalueFromを使用して、データベースへの接続詳細を取得します。リソースにアクセスするには環境変数を使用するを参照してください。

変数

説明

PGAPPNAME

アプリ名

PGDATABASE

データベースの名前

PGHOST

PostgreSQL サーバーのホスト名

PGPORT

PostgreSQL サーバーのポート

PGSSLMODE

接続の SSL モード

PGUSER

サービスプリンシパルのクライアントIDとロール名

変数

説明

PGAPPNAME

アプリ名

PGDATABASE

データベースの名前

PGHOST

PostgreSQL サーバーのホスト名

PGPORT

PostgreSQL サーバーのポート

PGSSLMODE

接続の SSL モード

PGUSER

サービスプリンシパルのクライアントIDとロール名

データベース・リソースの削除

アプリからデータベース リソースを削除すると、アプリは、リソースを削除するユーザーに、サービスプリンシパルが所有するすべてのオブジェクトを再割り当てしようとします。

アプリが使用するロジックは、主にデータベース内でユーザーが役割を持っているかどうかによって決まります。

あなたの権限

データベースにおける役割は?

結果

CAN MANAGE

Yes

Databricks は、サービスプリンシパルが所有するすべてのオブジェクトを再割り当てし、サービスプリンシパルの役割を削除します。

CAN MANAGE

No

Databricksはあなたのためにロールを作成し、サービスプリンシパルのロールが所有するすべてのオブジェクトをあなたに再割り当てし、サービスプリンシパルのロールを削除します。

No CAN MANAGE

N/A

Databricks はリソースを削除しますが、ロールの削除や所有権の再割り当ては行いません。UI に警告が表示され、後でロールと所有オブジェクトを手動でクリーンアップする必要があります。

あなたの権限

データベースにおける役割は?

結果

CAN MANAGE

Yes

Databricks は、サービスプリンシパルが所有するすべてのオブジェクトを再割り当てし、サービスプリンシパルの役割を削除します。

CAN MANAGE

No

Databricksはあなたのためにロールを作成し、サービスプリンシパルのロールが所有するすべてのオブジェクトをあなたに再割り当てし、サービスプリンシパルのロールを削除します。

No CAN MANAGE

N/A

Databricks はリソースを削除しますが、ロールの削除や所有権の再割り当ては行いません。UI に警告が表示され、後でロールと所有オブジェクトを手動でクリーンアップする必要があります。

注意

データベースをアプリ リソースとして追加する場合は、次の点を考慮してください。

  • 1 つのデータベースから CONNECTCREATE を取り消し、同じ更新で別のデータベースで付与した場合、 Databricks は権限を更新しますが、サービスプリンシパルのロールは再作成しません。

  • データベースは状態を保持します。アプリによって作成されたスキーマまたはテーブルは、アプリを再デプロイまたは停止した後でも残ります。

  • 既存のアプリでLakebase Provisionedのdatabaseリソースを使用している場合、オートスケールにアップグレードした後も引き続き動作します。接続の詳細、環境変数、およびPostgresロールは変更されていません。新しいアプリの場合は、Lakebaseオートスケールデータベースリソースを追加してください

重要

既存のアプリ構成でdatabaseリソースをpostgresに変更しないでください。databasepostgresのリソースタイプは、個別のPostgresロールを作成します。タイプを変更すると、新しいロールが作成され、アプリの既存データへのアクセスが妨げられます。