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

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

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

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

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

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

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

  1. アプリを作成または編集する際は、 「設定」 ステップに進んでください。
  2. [アプリ リソース] セクションで、 [+ リソースの追加] をクリックします。
  3. リソースの種類として 「データベース」 を選択してください。
  4. プロジェクト、ブランチ、データベースを選択してください。
  5. アプリに適した権限レベルを選択します。現在、使用可能な権限は、 接続して作成できるだけです
  6. (オプション)カスタム リソース キー (アプリ構成でデータベースを参照する方法) を指定します。デフォルトのキーは postgresです。

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

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

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

環境変数

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

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

変数

説明

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 に警告が表示され、後でロールと所有オブジェクトを手動でクリーンアップする必要があります。

注意

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

  • 1 つのデータベースから CONNECTCREATE を取り消し、同じ更新で別のデータベースで付与した場合、 Databricks は権限を更新しますが、サービスプリンシパルのロールは再作成しません。
  • データベースは状態を保持します。アプリによって作成されたスキーマまたはテーブルは、アプリを再デプロイまたは停止した後でも残ります。