Dekodowanie logiczne i przechwytywanie zmian danych
Wykorzystają Państwo dekodowanie logiczne do strumieniowego przesyłania zmian na poziomie wierszy z PostgreSQL na potrzeby potoków CDC i systemów sterowanych zdarzeniami.
Dekodowanie logiczne i przechwytywanie zmian danych to bezpłatna lekcja Advanced PostgreSQL: Indexing, Partitioning, Replication na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Advanced PostgreSQL: Indexing, Partitioning, Replication, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Advanced PostgreSQL: Indexing, Partitioning, Replication zawiera 4 lekcji w sumie.
Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.
What Is Logical Decoding
Logical decoding turns the write-ahead log into a readable stream of logical row changes. It is the foundation of both logical replication and external Change Data Capture (CDC).
Output Plugins
A plugin decides the format of the change stream. Built-in pgoutput powers logical replication; test_decoding emits human-readable text; tools like Debezium use their own.
Prerequisite: wal_level
Logical decoding needs wal_level = logical. Changing it requires a restart.
-- postgresql.conf
wal_level = logicalCreating a Logical Slot
A logical replication slot tracks how far a consumer has read and prevents WAL needed by it from being removed.
SELECT pg_create_logical_replication_slot(
'cdc_slot', 'test_decoding');Peeking at Changes
pg_logical_slot_peek_changes shows pending changes without advancing the slot, useful for inspection.
SELECT * FROM pg_logical_slot_peek_changes(
'cdc_slot', NULL, NULL);Consuming Changes
pg_logical_slot_get_changes reads and advances the slot, so those changes will not be returned again.
SELECT * FROM pg_logical_slot_get_changes(
'cdc_slot', NULL, NULL);Example Change Output
With test_decoding an INSERT appears as readable text describing the table and new column values, wrapped between BEGIN and COMMIT markers.
BEGIN 712
table public.users: INSERT: id[int]:1 name[text]:'Ada'
COMMIT 712Slots Hold WAL
An inactive slot keeps WAL forever, which can fill the disk. Monitor and drop unused slots.
SELECT slot_name, active FROM pg_replication_slots;
SELECT pg_drop_replication_slot('cdc_slot');CDC Pipelines
External CDC connectors stream from a slot into systems like Kafka, search indexes, or data warehouses, enabling near-real-time downstream updates.
At-least-once Delivery
Consumers must track the last confirmed LSN and handle possible re-delivery after a crash. Design downstream writes to be idempotent.
Replica Identity for CDC
To capture the full before image on updates and deletes, set REPLICA IDENTITY FULL on tables without a usable primary key.
ALTER TABLE orders REPLICA IDENTITY FULL;Quick Check
Why must logical replication slots be monitored?
Recap
You learned logical decoding: set wal_level=logical, create a logical slot with an output plugin, peek or consume changes, and feed CDC pipelines. Monitor slots, design idempotent consumers, and set replica identity for full change images.
Często zadawane pytania
Czy lekcja „Dekodowanie logiczne i przechwytywanie zmian danych” jest bezpłatna?
Tak — pełny tekst „Dekodowanie logiczne i przechwytywanie zmian danych” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Advanced PostgreSQL: Indexing, Partitioning, Replication, przejdź na CoddyKit PRO. Kurs Advanced PostgreSQL: Indexing, Partitioning, Replication zawiera 4 lekcji w sumie.
Co nauczysz się w „Dekodowanie logiczne i przechwytywanie zmian danych”?
Wykorzystają Państwo dekodowanie logiczne do strumieniowego przesyłania zmian na poziomie wierszy z PostgreSQL na potrzeby potoków CDC i systemów sterowanych zdarzeniami. Ćwiczysz Advanced PostgreSQL: Indexing, Partitioning, Replication z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Advanced PostgreSQL: Indexing, Partitioning, Replication?
Nie wymagamy żadnego doświadczenia. Advanced PostgreSQL: Indexing, Partitioning, Replication w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Dekodowanie logiczne i przechwytywanie zmian danych”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Advanced PostgreSQL: Indexing, Partitioning, Replication?
Tak. Każda lekcja Advanced PostgreSQL: Indexing, Partitioning, Replication zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Replikacja kaskadowa
- Replikacja multi-master (BDR)
- Sloty replikacji i zarządzanie WAL
- Dekodowanie logiczne i przechwytywanie zmian danych