Lakebaseオートスケールを使ってみる
Lakebaseオートスケールは、オートスケールコンピュート、ゼロへのスケール、分岐、即時復元を備えたLakebaseの最新バージョンです。 サポートされているリージョンについては、 「リージョンの提供状況」を参照してください。Lakebaseプロビジョニング ユーザーの場合は、 Lakebaseプロビジョニング」を参照してください。
このガイドを読み終える頃には、サンプルデータを含む稼働中のPostgresデータベースがUnity Catalogに接続され、 LakebaseとDatabricksローカル間でデータが流れるようになっているでしょう。
ステップ: ①プロジェクトを作成→ ②接続→ ③テーブルを作成→ ④ Unity Catalogに登録する→ ⑤データを提供→ ⑥レプリケーション
ステップ 1: 最初のプロジェクトを作成する
アプリスイッチャーから Lakebase アプリを開きます。

オートスケール を選択して、Lakebase Autoscaling UI にアクセスします。
[新しいプロジェクト] をクリックします。プロジェクトに名前を付け、Postgres のバージョンを選択します。プロジェクトは、単一のproductionブランチ、デフォルトのdatabricks_postgresデータベース、およびブランチ用に構成されたコンピュート リソースを使用して作成されます。

コンピュートがアクティブになるまでに少し時間がかかる場合があります。 productionブランチのコンピュートは、当然ながら常にオンになっています (ゼロへのスケールは無効になっています)。必要に応じてこの設定を構成できます。
プロジェクトのリージョンは、ワークスペースのリージョンに自動的に設定されます。
詳細:プロジェクトの作成|オートスケール|ゼロにスケールする
ステップ 2: データベースに接続する
プロジェクトから 本番運用 ブランチを選択し、 「接続」 をクリックします。 接続文字列は、標準的なPostgresクライアント( psql 、pgAdmin、DBeaver、またはアプリケーションフレームワーク)であればどれでも機能します。

Databricks IDに接続するには、接続ダイアログからpsqlスニペットをコピーし、 OAuthを貼り付けてください。 プロンプトが表示されたら:
psql 'postgresql://your-email@databricks.com@ep-abc-123.databricks.com/databricks_postgres?sslmode=require'
詳細はこちら:接続クイックスタート| psql | pgAdmin | Postgresクライアント
ステップ 3: 最初のテーブルを作成する
Lakebase SQL Editorには、サンプルSQLがプリロードされています。プロジェクトから 本番運用 ブランチを選択し、 SQLエディターを開き、提供されたステートメントを実行してplaying_with_lakebaseテーブルを作成し、サンプル データを挿入します。

詳細はこちら: SQLエディタ|テーブルエディタ| Postgresクライアント
ステップ 4: Unity Catalogに登録する
Lakebaseデータベースは実行されていますが、 Unity Catalogで登録するまで、 Databricksプラットフォームの他の部分からは見えません。 登録すると、 Databricks SQLからLakebaseテーブルにクエリを実行し、運用データをレイクハウス アナリティクスと結合して、統合ガバナンスを適用できるようになります。
カタログ エクスプローラーで、タイプとして Lakebaseオートスケールを 使用して、プロジェクトのproductionブランチとdatabricks_postgresデータベースを指す新しいカタログを作成します。

SQLウェアハウスからクエリを実行できるようになりました。
SELECT * FROM lakebase_catalog.public.playing_with_lakebase;
ステップ 5: アプリでレイクハウス データを提供する
同期されたテーブルは、Unity Catalog から Lakebase データベースに分析データを取り込むため、アプリケーションは低遅延のトランザクション読み取りでそのデータを照会できます。サンプルのUnity Catalogテーブルを作成し、それをLakebaseと同期します。
SQLウェアハウスまたはノートブックで、ソーステーブルを作成します。
CREATE TABLE main.default.user_segments AS
SELECT * FROM VALUES
(1001, 'premium', 2500.00, 'high'),
(1002, 'standard', 450.00, 'medium'),
(1003, 'premium', 3200.00, 'high'),
(1004, 'basic', 120.00, 'low')
AS segments(user_id, tier, lifetime_value, engagement);
このテーブルをLakebaseに同期してください。カタログエクスプローラーで、 スナップショット モードを使用して、プロジェクトのデータベースdatabricks_postgresをターゲットとする同期テーブルをuser_segmentsから作成します。スナップショットモードでは、データは一度だけコピーされます。継続的な更新を行うには、トリガーモードまたは継続モードを使用してください。
同期が完了すると、データはLakebaseでdefault.user_segments_syncedとして利用可能になります。Lakebase SQLエディタでクエリを実行してください。
SELECT * FROM "default".user_segments_synced WHERE engagement = 'high';
default これはPostgreSQLの予約語なので、引用符で囲む必要があります。同期されたテーブルスキーマはUnity Catalogスキーマ名を継承するため、スキーマ名がdefaultの場合は、クエリで常に引用符で囲む必要があります。 他の識別子を引用符で囲むのは任意です。

これで、レイクハウス アナリティクスをトランザクション データベースから提供する準備が整いました。
ステップ 6: レイクハウスに複製する
レイクハウス Sync はベータ版です。
レイクハウス Sync は、チェンジデータキャプチャ ( CDC ) を使用して、 Lakebaseオートスケール テーブルをDeltaテーブルとしてUnity Catalogに継続的に複製します。 変更内容はそれぞれ新しい行として追加され、履歴全体が保持されます。外部パイプライン、ジョブ、Sparkは不要です。
PostgreSQLがCDC(変更データキャプチャ)を機能させるには、行データ全体をライトアヘッドログに記録する必要があります。先ほど作成したplaying_with_lakebaseテーブルのレプリカIDを「フル」に設定してください。
ALTER TABLE playing_with_lakebase REPLICA IDENTITY FULL;
次に、ブランチ概要の レイクハウス同期 タブから同期を設定します。 スキーマをpublicとして選択し、 Unity Catalogカタログとスキーマを宛先として選択します。
ソーススキーマ内のすべてのテーブルは自動的に同期されます。playing_with_lakebaseテーブルは、宛先カタログではlb_playing_with_lakebase_historyとして表示されます。SQLウェアハウスからクエリを実行する:
SELECT * FROM <catalog>.<schema>.lb_playing_with_lakebase_history LIMIT 10;
各行には、データがどのように、いつ変更されたかを追跡するシステム列_change_type 、 _timestamp 、 _lsn 、 _xidが含まれています。
詳細はこちら:レイクハウス Sync |データ型マッピング|現在の状態のミラービュー
次のステップ
- アプリを構築する: Databricks Appsチュートリアル|外部アプリ
- ブランチを使った開発: ブランチベース開発チュートリアル
- チームを設定する: プロジェクトとデータベースへのアクセス権を付与する
- プラットフォームを探索する: 基本概念|プロジェクト概要|すべてのチュートリアル