Note
Lakebase 變更資料饋送功能目前處於 公開預覽階段。
在 Postgres 資料表上設定 Lakebase 變更資料饋送(CDF),然後查看資料列層級的變更如何出現在目標 Delta 資料表中。
步驟: (1) 啟用變更擷取 → (2) 啟動資料串流 → (3) 沿著一列進入湖邊小屋 → (4) 更改該列,看到它流過
Note
這是快速入門。 完整文件請參閱 Lakebase 變更資料饋送。
開始之前
- 務必完成 取得 Postgres 資料庫。 你需要一個帶有
playing_with_lakebase範例表的 Lakebase 專案。 - 一個你有
CREATE TABLE權限的 Unity 目錄和架構。
步驟 1:啟用變更擷取
Postgres 需要在預寫日誌中記錄完整的資料列資料,CDF 才能運作。 將複製身份設定為完整時,Postgres 會記錄每次變更的舊列和新列狀態。
在 Lakebase SQL 編輯器中執行:
ALTER TABLE playing_with_lakebase REPLICA IDENTITY FULL;
了解更多: 在結構中的所有資料表設定複本身份,並自動套用到新的資料表
步驟二:開始餵食
Lakebase CDF 是在結構描述層級進行設定的。 原始結構中所有現有和未來的資料表都會自動包含,所以你不需要選擇單一資料表。
從你的生產分支,點擊頂部麵包屑中的分支名稱,開啟分支 總覽 ,然後開啟 Lakebase CDF 標籤,點選 開始。 選擇 public 作為來源結構,然後選擇目標的 Unity 目錄和結構。 初始快照會立即開始,而 lb_playing_with_lakebase_history 會在你的目的地中顯示為 Delta 資料表。
了解更多: 啟動變更資料串流
步驟三:沿著一排進入湖邊小屋
從 Lakebase 選取一列資料。 請看這行 id=2:
SELECT * FROM playing_with_lakebase WHERE id = 2;
現在在 Delta 歷史表中找到同一列。 切換到 Databricks SQL 倉庫或筆記本並執行:
SELECT * FROM <catalog>.<schema>.lb_playing_with_lakebase_history
WHERE id = 2;
將 <catalog> 和 <schema> 替換為你在步驟 2 中選擇的目的地。 你會看到資料列 id=2,其中包含與 Lakebase 中相同的 name 和 value,以及額外的欄位。 初始快照將所有現有的資料列以 insert 事件的形式寫入 Delta,因為這正是該資料列所代表的內容。
這些額外的欄位描述每列代表_pg_change_type的事件類型(),事件發生時間_timestamp(),以及Postgres排序資訊(_pg_lsn, _pg_xid)。
步驟四:換行,看它順暢流過
回到 Lakebase SQL 編輯器,更新欄位 id=2:
UPDATE playing_with_lakebase SET value = 55.5 WHERE id = 2;
等幾秒鐘讓變更出現在動態中,然後重新查詢歷史表:
SELECT id, value, _pg_change_type, _timestamp
FROM <catalog>.<schema>.lb_playing_with_lakebase_history
WHERE id = 2
ORDER BY _pg_lsn DESC;
id=2 列現在會顯示三次:原始的 insert、帶有舊值的 update_preimage,以及帶有新值的 update_postimage。 每一次該資料列的變更都會變成新的歷史紀錄,這樣你就能擁有完整的稽核紀錄。 刪除的運作方式也相同,會附加一個包含 _pg_change_type = 'delete' 的資料列。
下一步
- 建立下游管線: 將歷史表轉為具 實體化視圖、Lakeflow 管線或結構化串流的即時聚合。
- 執行分析: 使用 Databricks SQL 查詢您的 Delta 歷史資料表。
- 使用青銅層: 將歷史資料表接入 獎章式架構。
- 檢視生產限制: 請參閱 限制、故障排除 及 結構變更管理。
- 探索湖基:核心概念 | 湖基