デプロイ全体でデータを保持するために、Databricks Apps リソースとして Lakebase データベースを追加します。 これらの PostgreSQL に基づくリソースを使用すると、状態を保持するスキーマとテーブルをアプリで作成および管理できます。
次の種類の Lakebase データベース リソースを使用できます。
- Lakebase 自動スケール: リソースを、ブランチとデータベースを含む プロジェクト として整理します。
- Lakebase Provisioned: リソースを データベース インスタンスとして整理します。
どちらの種類も同じ PostgreSQL 接続モデルを使用し、同じ環境変数をアプリに提供します。
データベース リソースを追加する
リソースとして Lakebase データベースを追加する前に、 アプリ リソースの前提条件を確認します。
注
2026 年 3 月 12 日以降、新しいプロビジョニング済みデータベースを作成することはできませんが、既存のデータベースをアプリ リソースとして追加することはできます。 既定での自動スケールを参照してください。
- アプリを作成または編集するときに、[アプリ リソース] セクションで、[+ リソースの追加] >[Database] をクリックします。
- データベースを選択します。 Lakebase 自動スケールの場合は、プロジェクト、ブランチ、およびデータベースを選択します。 Lakebase Provisioned の場合は、データベース インスタンスとそのインスタンス内のデータベースを選択します。
- アプリに適したアクセス許可レベルを選択します。 現時点では、使用可能なアクセス許可は [接続と作成] のみです。
- (省略可能)カスタム リソース キーを指定します。これは、アプリ構成でデータベースを参照する方法です。 既定のキーは、Lakebase 自動スケーリング用として
postgres、Lakebase Provisioned 用としてdatabaseです。
アプリ リソースとして追加するには、Lakebase プロジェクトに対する CAN MANAGE アクセス許可が必要です。
データベース リソースを追加する場合:
- Azure Databricksは、選択したデータベースに PostgreSQL ロールを作成します。 ロール名は 、サービス プリンシパル のクライアント ID と一致します。 ロールが既に存在する場合は、Azure Databricks再利用します。
- Azure Databricksは、選択したデータベースに対するサービス プリンシパル
CONNECTおよびCREATE権限を付与します。 これらの権限を使用すると、アプリはデータベースにスキーマとテーブルを作成できます。 - Lakebase 自動スケールの場合、リソースを追加するユーザーには、プロジェクトに対する
CAN MANAGEアクセス許可が必要です。
環境変数
データベース リソースを使用してアプリをデプロイすると、Azure Databricks最初のデータベース リソースに対して次の環境変数が設定されます。
アプリで複数の PostgreSQL データベースが使用されている場合、これらの変数は最初のデータベースのみを反映します。 リソース キーと valueFrom を使用して、データベースの接続の詳細を取得します。 「 環境変数を使用してリソースにアクセスする」を参照してください。
| 変数 | 説明 |
|---|---|
PGAPPNAME |
アプリ名 |
PGDATABASE |
データベースの名前 |
PGHOST |
PostgreSQL サーバーのホスト名 |
PGPORT |
PostgreSQL サーバーのポート |
PGSSLMODE |
接続の SSL モード |
PGUSER |
サービス プリンシパルのクライアント ID とロール名 |
データベース リソースを削除する
アプリからデータベース リソースを削除すると、アプリはサービス プリンシパルが所有するすべてのオブジェクトをリソースの削除ユーザーに再割り当てしようとします。
アプリが主に使用するロジックは、データベースにロールがあるかどうかによって異なります。
| アクセス許可 | データベースの役割 | 結果 |
|---|---|---|
CAN MANAGE |
イエス | Azure Databricks は、サービス プリンシパルが所有するすべてのオブジェクトをあなたに再割り当てし、サービス プリンシパルのロールを削除します。 |
CAN MANAGE |
いいえ | Azure Databricksは、あなたのためにロールを作成し、そのロールが所有するすべてのオブジェクトをあなたに再割り当てし、サービス プリンシパルのロールを削除します。 |
いいえ CAN MANAGE |
なし | Azure Databricksはリソースを削除しますが、ロールを削除したり、所有権を再割り当てしたりすることはありません。 UI に警告が表示され、後でロールと所有オブジェクトを手動でクリーンアップする必要があります。 |
注記
アプリ リソースとしてデータベースを追加する場合は、次の点を考慮してください。
- 1 つのデータベースから
CONNECTとCREATEを取り消し、同じ更新で別のデータベースに付与した場合、Azure Databricksは特権を更新しますが、サービス プリンシパルのロールは再作成しません。 - データベースは状態を保持します。 アプリによって作成されたスキーマまたはテーブルは、アプリを再デプロイまたは停止した後も残ります。