Menyimpan perubahan Postgres di lakehouse

Note

Fitur Lakebase Change Data Feed berada dalam Pratinjau Publik.

Siapkan Lakebase Change Data Feed (CDF) pada tabel Postgres, lalu tonton perubahan tingkat baris muncul di tabel Delta tujuan.

Langkah-langkah:Aktifkan pelacakan perubahan → ② Mulai feed → ③ Telusuri satu baris ke lakehouse → ④ Ubah baris, lihat alirannya

Note

Ini adalah panduan memulai cepat. Untuk dokumentasi lengkap, lihat Umpan Data Perubahan Lakebase.

Sebelum Anda mulai

  • Pastikan Anda menyelesaikan Dapatkan database Postgres. Anda memerlukan proyek Lakebase dengan playing_with_lakebase tabel sampel.
  • Katalog dan skema Unity Catalog di mana Anda memiliki izin CREATE TABLE.

Langkah 1: Aktifkan pengambilan perubahan

Postgres memerlukan data baris penuh di log write-ahead agar CDF berfungsi. Mengatur replica identity menjadi FULL mengarahkan Postgres untuk merekam keadaan baris lama dan baru untuk setiap perubahan.

Di Editor Lakebase SQL, jalankan:

ALTER TABLE playing_with_lakebase REPLICA IDENTITY FULL;

Pelajari selengkapnya: Mengatur identitas replika pada semua tabel dalam skema dan menerapkannya secara otomatis ke tabel baru

Langkah 2: Mulai umpan

Lakebase CDF dikonfigurasi pada tingkat skema. Setiap tabel saat ini dan yang akan datang dalam skema sumber disertakan secara otomatis, sehingga Anda tidak memilih tabel individual.

Dari cabang produksi Anda, buka tab Ubah Umpan Data dan klik Mulai. Pilih public sebagai skema sumber, lalu pilih katalog dan skema Unity Catalog tujuan. Rekam jepret awal segera dimulai, dan lb_playing_with_lakebase_history muncul sebagai tabel Delta di tujuan Anda.

Mulai dialog dengan pilihan sumber dan tujuan.

Pelajari lebih lanjut: Memulai umpan data perubahan

Langkah 3: Ikuti satu baris menuju lakehouse

Pilih baris dari Lakebase. Lihat baris id=2:

SELECT * FROM playing_with_lakebase WHERE id = 2;

Sekarang temukan baris yang sama dalam tabel riwayat Delta. Beralih ke gudang atau buku catatan Databricks SQL dan jalankan:

SELECT * FROM <catalog>.<schema>.lb_playing_with_lakebase_history
WHERE id = 2;

Ganti <catalog> dan <schema> dengan tujuan yang Anda pilih di Langkah 2. Anda akan melihat baris id=2 dengan name dan value yang sama seperti di Lakebase, serta kolom tambahan. Snapshot awal mencatat semua baris yang sudah ada ke Delta sebagai peristiwa insert, karena itulah yang direpresentasikan oleh baris tersebut.

Kolom tambahan tersebut menjelaskan jenis peristiwa apa yang diwakili setiap baris (_pg_change_type), ketika itu terjadi (_timestamp), dan info pemesanan Postgres (_pg_lsn, _pg_xid).

Pelajari selengkapnya: Skema tabel tujuan | Pemetaan jenis data

Langkah 4: Ubah baris, lihat bagaimana perubahannya mengalir

Kembali ke Editor Lakebase SQL, perbarui baris id=2:

UPDATE playing_with_lakebase SET value = 55.5 WHERE id = 2;

Tunggu beberapa detik agar perubahan muncul di umpan, lalu kueri ulang tabel riwayat:

SELECT id, value, _pg_change_type, _timestamp
FROM <catalog>.<schema>.lb_playing_with_lakebase_history
WHERE id = 2
ORDER BY _pg_lsn DESC;

Tabel riwayat delta memperlihatkan tiga baris untuk id=2: update_preimage, update_postimage, dan sisipkan

Baris id=2 sekarang muncul tiga kali: insert asli, update_preimage dengan nilai lama, dan update_postimage dengan nilai baru. Setiap perubahan pada baris menjadi baris riwayat baru, sehingga Anda selalu memiliki jejak audit lengkap. Penghapusan bekerja dengan cara yang sama, dengan menambahkan satu baris dengan _pg_change_type = 'delete'.

Pelajari lebih lanjut: Pola perubahan umum | Membangun pipeline downstream

Langkah berikutnya