Postgres değişikliklerini göl evinde depola

Note

Lakebase Değişiklik Veri Akışı özelliği Genel Önizleme aşamasındadır.

Postgres tablosunda Lakebase Değişiklik Veri Akışı'nı (CDF) ayarlayın, ardından hedef Delta tablosunda satır düzeyinde değişikliklerin görünmesini izleyin.

Adımlar:Değişiklik yakalamayı etkinleştirin → ② Akışı başlatın → ③ Bir satırı lakehouse'a kadar izleyin → ④ Satırı değiştirin ve akış boyunca nasıl ilerlediğini görün

Note

Bu hızlı bir başlangıçtır. Tüm belgeler için bkz. Lakebase Değişiklik Veri Akışı.

Başlamadan önce

1. Adım: Değişiklik yakalamayı etkinleştirme

CDF'nin çalışması için postgres'in önceden yazma günlüğünde tam satır verilerine ihtiyacı vardır. Replica identity ayarını full olarak yapmak, Postgres’in her değişiklik için hem eski hem de yeni satır durumlarını kaydetmesini sağlar.

Lakebase SQL Düzenleyicisi'nde şunu çalıştırın:

ALTER TABLE playing_with_lakebase REPLICA IDENTITY FULL;

Daha fazla bilgi edinin: Bir şemadaki tüm tablolarda çoğaltma kimliğini ayarlama ve bunu yeni tablolara otomatik uygulama

2. Adım: Akışı başlatma

Lakebase CDF şema düzeyinde yapılandırılır. Kaynak şemadaki her geçerli ve gelecekteki tablo otomatik olarak eklenir, bu nedenle tek tek tabloları seçmezsiniz.

Üretim dalınızın Veri Akışını Değiştir sekmesini açın ve Başlat'a tıklayın. public öğesini kaynak şema olarak seçin, ardından hedef Unity Catalog kataloğunu ve şemasını seçin. İlk anlık görüntü hemen başlar ve lb_playing_with_lakebase_history hedefinizde Delta tablosu olarak görünür.

Kaynak ve hedef seçimi içeren Başlat iletişim kutusu.

Daha fazla bilgi edinin: Değişiklik veri akışını başlatma

3. Adım: Göl evinde bir satırı takip edin

Lakebase'den bir satır seçin. Satırına id=2göz atın:

SELECT * FROM playing_with_lakebase WHERE id = 2;

Şimdi Delta geçmişi tablosunda aynı satırı bulun. Databricks SQL ambarı veya not defterine geçin ve çalıştırın:

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

<catalog> ve <schema> öğelerini 2. Adımda seçtiğiniz hedefle değiştirin. Lakebase’tekiyle aynı name ve value öğelerine sahip id=2 satırını, ek sütunlarla birlikte görürsünüz. İlk anlık görüntü, mevcut her satırı Delta’ya bir insert olayı olarak yazdı; söz konusu satırın temsil ettiği şey de budur.

Bu ek sütunlar, her satırın ne tür bir olayı temsil ettiği (_pg_change_type), ne zaman gerçekleştiğini ()_timestamp ve Postgres sipariş bilgilerini (_pg_lsn, _pg_xid) açıklar.

Daha fazla bilgi edinin: Hedef tablo şeması | Veri türü eşlemesi

4. Adım: Satırı değiştirme, akışına bakın

Lakebase SQL Düzenleyicisi'ne geri dönüp satırı güncelleştirin id=2:

UPDATE playing_with_lakebase SET value = 55.5 WHERE id = 2;

Değişikliğin akışta görünmesi için birkaç saniye bekleyin, ardından geçmiş tablosunu yeniden sorgulayın:

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 için üç satırı gösteren delta geçmişi tablosu: update_preimage, update_postimage ve ekleme

Satır id=2 şimdi üç kez görünür: özgün insert, eski değere sahip bir update_preimage ve yeni değere sahip bir update_postimage . Satırdaki her değişiklik yeni bir geçmiş satırına dönüşür, böylece her zaman eksiksiz bir denetim kaydına sahip olursunuz. Silme işlemleri de aynı şekilde çalışır ve _pg_change_type = 'delete' içeren bir satır ekler.

Daha fazla bilgi edinin: Yaygın değişiklik desenleri | Aşağı akış işlem hatları oluşturma

Sonraki Adımlar