Databricks Apps での Lakebase の使用

Important

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

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

クライアント、Databricks Apps、LKB 統合を示すアーキテクチャ図

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

前提条件

作業を開始する前に、次の準備ができていることを確認します。

  • Lakebase と サーバーレス コンピューティングが有効になっているAzure Databricks ワークスペースへのアクセス。 必要に応じて、ワークスペース管理者に問い合わせてください。
  • コンピューティング リソースとアプリを作成するためのアクセス許可。

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

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

Lakebase プロジェクトを作成するには、「Lakebase 自動スケールの開始手順」を参照してください。 Lakebase は、 production ブランチと databricks_postgres データベースを使用してプロジェクトを作成します。

手順 2: Databricks アプリを作成する

Azure Databricksには、Todos アプリを使用した Lakebase 統合を示す 3 つの自動スケール アプリ テンプレート (Dash、Flask、Streamlit) が用意されています。 テンプレートからアプリを作成するには:

  1. Azure Databricks ワークスペースで、App icon. アプリ スイッチャーをクリックし、Databricks Apps を選択します。
  2. [ + アプリの作成] をクリックします。
  3. [ データベース ] タブから任意のテンプレートを選択します。

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

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

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

[構成] 手順で、次の設定を構成します。

  1. アプリ リソースの場合は、Lakebase プロジェクト、ブランチ、データベースを選択します。 ブランチ名は ID として表示されます。 ID を名前と照合するには、プロジェクトの ブランチ ページを参照してください。
  2. [コンピューティング サイズ] で、[] を選択します。 これにより、Lakebase データベース コンピューティングとは別の アプリ サーバー コンピューティングが制御され、個別にスケーリングされます。

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

詳細については、「 Databricks アプリへの Lakebase リソースの追加」を参照してください。

手順 4: 承認を確認する

各 Databricks アプリは、個々のユーザーとは別の専用 ID である独自の サービス プリンシパルとして実行されます。 Lakebase をリソースとして接続すると、Azure Databricksはそのサービス プリンシパルに対応する Postgres ロールを作成し、そのサービス プリンシパルに完全なデータベース アクセスを許可します。 手動によるロールのセットアップは必要ありません。

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

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

Lakebase では、アプリ名を使用して、 {app-name}_schema_{service-principal-id} 形式でスキーマ名を生成します (ID からハイフンが削除されます)。 作成後にアプリ名を変更することはできませんが、後でスキーマの名前を変更することはできます。 テンプレートの既定値は lakebase-autoscaling-app です。

[ アプリの作成 ] をクリックしてアプリを作成します。

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

アプリを作成すると、コンピューティングが自動的に開始され、アプリはそれ以上の操作を行わずに約 2 ~ 3 分でデプロイされます。 アプリの状態が [ 実行中] と表示されたら、その横にある URL をクリックしてアプリを開きます。

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

手順 7: 統合を確認する

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

アプリによって書き込まれたタスクを示すLKBテーブルビュー

データに直接クエリを実行するには、Lakebase プロジェクトで SQL エディターを使用します。 Lakebase はアイドル状態になると 0 にスケーリングされるため、長い一時停止後の最初のクエリの応答には数秒かかる場合があります。 その他の接続オプションについては、「 データベースへの接続」を参照してください

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

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

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

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

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

詳細情報