Lakebase リソースを Databricks アプリに追加する
Lakebase データベース インスタンスを Databricks Apps リソースとして追加して、デプロイ間でデータを保持します。これらのPostgreSQLでバックアップされたリソースを使用すると、アプリは状態を保持するスキーマとテーブルを作成および管理できます。
プレビュー
Lakebaseデータベースインスタンスは パブリックプレビュー段階です。それらをアプリ リソースとして追加する前に、ワークスペース管理者がそれらを有効にする必要があります。
データベースリソースの追加
Lakebaseデータベースインスタンスをアプリリソースとして追加する前に、 前提条件を満たしていることを確認してください。
「Databricksアプリにリソースを追加する」の手順に従って、データベースリソースを追加します。
- アプリを作成または編集するときに、[ アプリ リソース ] セクションで、[ + リソースの追加 ] をクリックします。
- リソースの種類として [データベース] を選択します。
- データベースインスタンスを選択します。
- そのインスタンス内のデータベースを選択します。
- アプリに適した権限レベルを選択します。現在、使用可能な権限は、 接続して作成できるだけです 。
- (オプション)カスタム リソース キー (アプリ構成でデータベースを参照する方法) を指定します。デフォルトのキーは
database
です。
データベース・リソースを追加すると、次のようになります。
- Databricks は、選択したデータベース インスタンスに PostgreSQL ロールを作成します。ロール名は 、サービスプリンシパルの クライアント ID と一致します。 ロールが既に存在する場合、Databricks はそれを再利用します。
- Databricks、選択したデータベースに対する権限と
CONNECT``CREATE
権限をサービスプリンシパルに付与します。これらの権限により、アプリはデータベースにスキーマとテーブルを作成できます。
環境変数
データベース リソースを使用してアプリをデプロイすると、Databricks は最初のデータベース リソースに対して次の環境変数を設定します。
アプリで複数のデータベースを使用している場合、これらの変数は最初のデータベースのみを反映します。valueFrom
をリソース キーと共に使用して、データベースのホスト名を取得します。環境変数を使用してリソースにアクセスするを参照してください。
変数 | 説明 |
---|---|
| アプリ名 |
| データベースの名前 |
| PostgreSQL サーバーのホスト名 |
| PostgreSQL サーバーのポート |
| 接続の SSL モード |
| サービスプリンシパルのクライアントIDとロール名 |
データベース・リソースの削除
アプリからデータベース リソースを削除すると、アプリは、リソースを削除するユーザーに、サービスプリンシパルが所有するすべてのオブジェクトを再割り当てしようとします。
アプリで使用されるロジックは、主にデータベース インスタンスにロールがあるかどうかによって異なります。
あなたの権限 | データベースインスタンスでの役割 | 結果 |
---|---|---|
| Yes | Databricks は、サービスプリンシパルが所有するすべてのオブジェクトを再割り当てし、サービスプリンシパルの役割を削除します。 |
| No | Databricks は、ロールを作成し、サービスプリンシパルのロールが所有するすべてのオブジェクトを再割り当てし、サービスプリンシパルのロールを削除します。 |
No | N/A | Databricks はリソースを削除しますが、ロールの削除や所有権の再割り当ては行いません。UI に警告が表示され、後でロールと所有オブジェクトを手動でクリーンアップする必要があります。 |
筆記
データベースをアプリ リソースとして追加する場合は、次の点を考慮してください。
- 1 つのデータベースから
CONNECT
とCREATE
を取り消し、同じ更新で別のデータベースで付与した場合、 Databricks は権限を更新しますが、サービスプリンシパルのロールは再作成しません。 - データベースは状態を保持します。アプリによって作成されたスキーマまたはテーブルは、アプリを再デプロイまたは停止した後でも残ります。