次の方法で共有


Databricks Apps での Lakebase の使用

Important

Lakebase 自動スケールは、自動スケール コンピューティング、ゼロへのスケール、分岐、インスタント リストアを備えた最新バージョンの Lakebase です。 サポートされているリージョンについては、「 リージョンの可用性」を参照してください。 Lakebase プロビジョニング済みユーザーの場合は、「 Lakebase Provisioned」を参照してください。

Databricks Apps を使用すると、対話型アプリケーションをワークスペース内で直接ビルドして実行できます。 リソースとして Lakebase を追加すると、Databricks は認証チェーン全体を処理します。アプリ用にサービス プリンシパルが作成され、一致する Postgres ロールが付与され、接続の詳細が環境変数として挿入されます。 アプリは、資格情報や接続文字列を管理することなく、フル マネージド Postgres データベースに接続します。

クライアント、Databricks Apps、および Lakebase の統合を示すアーキテクチャ図

このガイドでは、Lakebase データベースに接続されたテンプレート アプリをデプロイする手順について説明します。 最終的には、Lakebase から直接検査およびクエリを実行できるデータを含む実行中のアプリが作成され、必要に応じて Lakehouse データと共に Unity カタログに登録できます。

Lakebase が有効になっている Databricks ワークスペースへのアクセス (必要に応じてワークスペース管理者に問い合わせる)、コンピューティング リソースとアプリを作成するためのアクセス許可、Python と SQL に関する基本的な知識が必要です。

手順 1: Lakebase インスタンスをプロビジョニングする

Lakebase プロジェクトは、アプリがリソースとして接続するマネージド Postgres インスタンスです。 プロジェクトは ブランチに編成され、それぞれが分離されたデータベース環境を表します。

プロジェクトを作成する前に、ワークスペースで サーバーレス コンピューティングが有効になっていることを確認します。 この変更を自分で行えない場合は、管理者に問い合わせてください。

プロジェクトを作成するには:アプリ アイコン。Lakebase自動スケール→アプリ スイッチャー → プロジェクトの作成→既定値を受け入れる

プロジェクトは、 production ブランチと databricks_postgres データベースを使用して作成されます。

手順 2: テンプレートから Databricks アプリを作成する

テンプレートはインフラストラクチャの複雑さを処理します。接続プール、OAuth トークンの更新、エラー処理は既に組み込まれています。 代わりに完全なカスタム アプリが必要な場合は、「独自のアプリを 作成する」を参照してください。

Lakebase 用の 3 つの自動スケール todo アプリ テンプレート (Dash、Flask、Streamlit) を使用できます。 [新しい> アプリ] に移動してアプリ作成インターフェイスを開き、[データベース] タブから任意のテンプレートを選択します。

Flask + Lakebase 自動スケール アプリ テンプレート

手順 3: データベース リソースを構成する

リソースとして Lakebase を追加すると、適切なデータベース アクセス許可を持つサービス プリンシパルが作成され、接続の詳細が 環境変数 としてアプリに挿入されます。 これにより、テンプレートはコードに接続文字列を含めずにデータベースに自動的に接続できます。

[構成] ステップで、アプリのデータベースとコンピューティング サイズを選択します。 データベース リソースの追加の詳細については、「 Databricks アプリへの Lakebase リソースの追加」を参照してください。

プロジェクト、ブランチ、およびデータベースの選択を示すデータベース リソースの構成

[ アプリ リソース] で、Lakebase プロジェクト、ブランチ、データベースを選択します。 ブランチ名は ID として表示されます。手順 1 で既定値を受け入れた場合、選択できるブランチ (運用) は 1 つだけです。 他のプロジェクトや ID を名前と一致させる場合は、プロジェクトの ブランチ ページを参照してください。

[ コンピューティング サイズ] で、このガイドでは [ ] を選択します。 これは、個別にスケーリングされる Lakebase データベース コンピューティングとは別のアプリ サーバー コンピューティングであることに注意してください。

手順 4: 承認を確認する

各 Databricks アプリは、個々のユーザーとは別の専用 ID である独自の サービス プリンシパルとして実行されます。 Lakebase をリソースとして接続すると、Databricks は、そのサービス プリンシパルに対応する Postgres ロール を自動的に作成し、手動でロールを設定する必要なく、接続、独自のスキーマの作成、データの読み取りと書き込みに必要なデータベース アクセス権をアプリのサービス プリンシパルに付与します。

サービス プリンシパルのアクセス許可を示す承認レビュー

ユーザー承認 (プレビュー) を使用すると、アプリは独自のサービス プリンシパルではなく、ログインしているユーザーに代わって動作できます。これは、ユーザーが個々のアクセス許可に基づいて異なるデータを表示する必要がある場合に便利です。 このテンプレートでは、追加のユーザー スコープは必要ありません。 ユーザーの代理アクセスを後で有効にするには、「ユーザーの 承認」を参照してください。

手順 5: アプリに名前を付け、インストールする

ここで選択したアプリ名は、Lakebase がデータベースに自動的に作成するスキーマ名の一部になります。 クライアント ID はアプリに割り当てられたサービス プリンシパルであり、ハイフンは削除されます。 スキーマの名前は後で Lakebase で変更できますが、作成後にアプリ名自体を変更することはできません。 テンプレートの既定値は lakebase-autoscaling-app です。

App name:           lakebase-autoscaling-app

Service principal:  aeb6ff91-98ff-4752-af7d-fc6d4cf570d0

                                    ↓
                          (same ID, hyphens removed)

Schema name:        lakebase-autoscaling-app_schema_aeb6ff9198ff4752af7dfc6d4cf570d

アプリ名を確認または変更し、入力済みの説明を確認し、必要に応じて サーバーレス使用ポリシーを設定します。 [ インストール ] をクリックしてアプリ構成を作成します。

手順 6: アプリをデプロイする

[ インストール] をクリックすると、コンピューティングが自動的に開始され、アプリはそれ以上の操作を行わずにデプロイされます。 これには 2 ~ 3 分かかります。 アプリの状態が [ 実行中] と表示されたら、その横にある URL をクリックしてアプリを開きます。 ローカル開発と再デプロイを含む完全な開発ワークフローについては、「 Databricks アプリの開発」を参照してください。

実行中の状態とアクティブなコンピューティングを示すアプリの概要

コードを変更した後、[ デプロイ ] ボタンを使用して再デプロイします。 デプロイが失敗した場合は、[ デプロイ ] タブを確認します。失敗した手順 ("インストールされているパッケージ" や "アプリが開始されました" など) は、検索する場所を示します。

手順 7: 統合を確認する

指定された URL でアプリを開き、いくつかの todo を追加します。 Lakebase プロジェクトで [テーブル] を開き、アプリのスキーマの下にある todos テーブルを選択します。 サービス プリンシパルが手順 3 で挿入された接続情報を使用して書き込んだ行がそこにあります。

アプリによって書き込まれた todo を示す Lakebase テーブル ビュー

データに対してカスタム クエリを実行するには、Lakebase プロジェクトで SQL エディター を使用します。 Lakebase は、非アクティブな期間が経過すると 0 にスケーリングされるため、一定期間が経過すると、データベースのウォームアップ中に最初の要求に数秒かかる場合があります。 その他の接続オプションについては、「 Lakebase プロジェクトへの接続」を参照してください

手順 8: Unity カタログを照会する (省略可能)

既定では、アプリの Lakebase データには Postgres 接続を介して直接アクセスできます。 Unity カタログに登録すると、標準の Databricks SQL を使用して Lakehouse データと共にクエリを実行できるようになり、同じクエリでアプリのトランザクション テーブルと Delta テーブルの間の結合が可能になります。

登録するには、カタログ エクスプローラーを開き、新しいカタログを作成します。 カタログの種類として [Lakebase Postgres ] を選択し、[ 自動スケーリング] を選択し、アプリと同じプロジェクトとブランチを選択します。 詳細については、「 Unity カタログにデータベースを登録 する」を参照してください。

登録が完了すると、Unity カタログのスキーマ名でアプリ名のハイフンが保持されることに注意してください。 バッククォートで囲むことが必要なのは、カタログ名とスキーマ名の両方です。

SELECT * FROM `your-catalog-name`.`lakebase-autoscaling-app_schema_aeb6ff9198ff4752af7dfc6d4cf570d`.todos;

詳細情報