Unity カタログ テーブルを Postgres に同期し、運用データと共にクエリを実行します。
手順: (1) 分析データの作成 → (2) Lakebase への同期 → (3) Postgres → でデータを検索する (4) 両方の世界でクエリを実行する
Note
これはクイックスタートです。 完全なドキュメントについては、「 テーブルの同期」を参照してください。
始める前の準備
- [ Postgres データベースの取得] が完了していることを確認します。 サンプル データを含む Lakebase プロジェクトが必要です。
- Unity カタログ クエリ用の SQL ウェアハウスまたはノートブック。
- 同期テーブルを作成するスキーマに対するUSE_SCHEMAおよびCREATE_TABLE。
手順 1: Unity カタログで分析データを作成する
データ チームが Lakehouse でユーザーセグメント化スコアを構築したとします。 運用環境では、これはゴールド テーブル、ML 出力、またはエンリッチされたデータセットです。 このガイドでは、小さなサンプルを作成します。
SQL ウェアハウスまたはノートブックで、次のコマンドを実行します。
CREATE TABLE main.default.user_segments AS
SELECT * FROM VALUES
(1, 'power_user', 0.92),
(2, 'casual', 0.35),
(3, 'power_user', 0.88)
AS segments(user_id, segment, engagement_score);
user_idの値が、get-started からid テーブルのplaying_with_lakebase列と一致していることに注意してください。 これは意図的なものです。 手順 4 でその人たちに加わります。
詳細情報: サポートされているソースの種類
手順 2: テーブルを Lakebase に同期する
Azure Databricks ワークスペースで、サイドバーの [カタログ] に移動します。
user_segmentsテーブルを選択して詳細ページを開き、[作成>同期テーブル] をクリックします。
[ 同期テーブルの作成 ] ダイアログで、ターゲットとして Lakebase プロジェクトの databricks_postgres データベースを選択し、同期モードとして スナップショット を選択します。 スナップショットはデータを 1 回コピーします。これは、作業を開始するための最も簡単なオプションです。
同期は自動的に実行されます。 完了すると、新しい読み取り専用テーブルが Lakebase データベースに表示されます。 Unity カタログのスキーマ名は Postgres スキーマ名になり、テーブル名には _synced サフィックス ( default.user_segments_synced) が取得されます。
詳細情報: 同期テーブルの作成 (完全なプロシージャ) | Sync モード
手順 3: Postgres でデータを検索する
Lakebase SQL エディターに切り替えます。 Unity カタログの分析データは、標準の Postgres SQL を使用してクエリできるようになりました。 ユーザー 1を探します。
SELECT * FROM "default".user_segments_synced WHERE user_id = 1;
Note
default は PostgreSQL 予約キーワードであるため、引用符で囲む必要があります。 同期テーブル スキーマは Unity カタログ スキーマ名を継承するため、スキーマの名前が default の場合は、クエリで常に引用符で囲む必要があります。
セグメント 1 とエンゲージメント スコア power_user を持つユーザー 0.92 が表示されます。 これは Unity カタログで作成した行と同じであり、待機時間の短い読み取りで Postgres で使用できるようになりました。
詳細情報: データ型マッピング
手順 4: 両方の世界でクエリを実行する
その成果はこちらです。
playing_with_lakebase テーブルに操作データがあります。
user_segments_synced テーブルには lakehouse 分析が含まれています。 参加する:
SELECT
p.id,
p.name,
p.value,
s.segment,
s.engagement_score
FROM playing_with_lakebase p
JOIN "default".user_segments_synced s ON p.id = s.user_id;
これで、アプリケーションでエンリッチされたデータを提供できるようになりました。 単一の Postgres クエリは、アプリが認識する内容 (名前、値) と lakehouse が計算した内容 (セグメント、スコア) を組み合わせたものです。 Lakehouse への API 呼び出し、同期スクリプトなし、待機時間のペナルティなし。
詳細情報: 容量計画
次のステップ
- データを最新の状態に保つ: 継続的な更新に対して トリガーまたは継続的同期モード を構成します。
- アプリをビルドする:Databricks アプリまたは外部アプリケーションで同期されたデータを使用します。
- Lakebase を見る:基本概念 | Lakebase