Databricks Appsで Lakebase を使用する
Lakebase オートスケールは次のリージョンで利用できます: us-east-1 、 us-east-2 、 us-west-2 、 ca-central-1 、 sa-east-1 、 eu-central-1 、 eu-west-1 、 eu-west-2 、 ap-south-1 、 ap-southeast-1 、 ap-southeast-2 。
Lakebase オートスケールは、オートスケール コンピュート、ゼロへのスケール、分岐、即時復元を備えた Lakebase の最新バージョンです。 Lakebase プロビジョニング ユーザーの場合は、 「Lakebase プロビジョニング」を参照してください。
Databricks Appsすると、ワークスペースで直接インタラクティブなアプリケーションを構築して実行できます。 Lakebase をリソースとして追加すると、 Databricks認証チェーン全体を処理します。アプリ用にサービス プリンシパルが作成され、一致する Postgres ロールが付与され、接続の詳細が環境変数として挿入されます。 アプリは、資格情報や接続文字列を管理せずに、フルマネージド Postgres データベースに接続します。

このガイドでは、Lakebase データベースに接続されたテンプレート アプリをデプロイする手順を説明します。最終的には、Lakebase から直接検査およびクエリできるデータを含む実行中のアプリが完成し、オプションでレイクハウス データとともにUnity Catalogに登録することもできます。
Lakebase が有効になっているDatabricksワークスペースへのアクセス (必要に応じてワークスペース管理者に連絡)、コンピュート リソースとアプリを作成する権限、およびPythonとSQLの基本的な知識が必要です。
ステップ 1: Lakebase インスタンスのプロビジョニング
Lakebase プロジェクトは、アプリがリソースとして接続する管理された Postgres インスタンスです。プロジェクトはブランチに編成され、各ブランチは独立したデータベース環境を表します。
プロジェクトを作成する前に、ワークスペースでサーバレス コンピュートが有効になっていることを確認してください。 自分でこの変更を行えない場合は、管理者に連絡してください。
プロジェクトを作成するには:アプリスイッチャー→ Lakebase → オートスケール →プロジェクト作成→無事承諾
プロジェクトは、 productionブランチとdatabricks_postgresデータベースを使用して作成されます。
ステップ 2: テンプレートからDatabricksアプリを作成する
テンプレートはインフラストラクチャの複雑さを処理します。接続プーリング、 OAuthセキュリティ更新、エラー処理はすでに組み込まれています。 完全にカスタマイズされたアプリが必要な場合は、 「独自のアプリを作成する」を参照してください。
Lakebase 用の 3 つのオートスケール todo アプリ テンプレートが利用可能です: Dash、Flask、Streamlit。 [新規] > [アプリ] に移動してアプリ作成インターフェイスを開き、 [データベース] タブから希望するテンプレートを選択します。

ステップ 3: データベース リソースを構成する
Lakebase をリソースとして追加すると、2 つのことが行われます。適切なデータベース権限を持つサービスプリンシパルが作成され、接続の詳細が環境変数としてアプリに挿入されます。 これにより、コード内に接続文字列がなくても、テンプレートがデータベースに自動的に接続できるようになります。
Configure ステップで、アプリのデータベースとコンピュートのサイズを選択します。 データベース リソースの追加に関する詳細については、 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 で挿入された接続の詳細を使用して、アプリのサービスプリンシパルによって書き込まれた行がそこにあります。

データに対してカスタム クエリを実行するには、Lakebase プロジェクトで SQL エディターを 使用します。Lakebase は一定期間アクティビティがないとゼロにスケールします。そのため、一定期間アクティビティがないと、データベースがウォームアップする間、最初のリクエストに数秒かかることがあります。その他の接続オプションについては、 「Lakebase プロジェクトへの接続」を参照してください。
ステップ 8: Unity Catalogを介したクエリ (オプション)
デフォルトでは、アプリの Lakebase データには Postgres 接続を通じて直接アクセスできます。これを Unity Catalog に登録すると、標準の Databricks SQL を使用してレイクハウス データと一緒にクエリできるようになり、同じクエリでアプリのトランザクション テーブルと Delta テーブルを結合できるようになります。
登録するには、カタログ エクスプローラーを開いて新しいカタログを作成します。カタログ タイプとして Lakebase Postgres を 選択し、 オートスケール を選択して、アプリと同じプロジェクトとブランチを選択します。 詳細については、 「Unity Catalog にデータベースを登録する」を参照してください。
登録すると、Unity Catalog のスキーマ名にアプリ名のハイフンが保持されることに注意してください。カタログ名とスキーマ名の両方にバッククォート引用符が必要です。
SELECT * FROM `your-catalog-name`.`lakebase-autoscaling-app_schema_aeb6ff9198ff4752af7dfc6d4cf570d`.todos;