Decodificação lógica e captura de alterações de dados
Use a decodificação lógica para transmitir alterações em nível de linha para fora do PostgreSQL, alimentando fluxos de CDC e sistemas orientados a eventos.
Decodificação lógica e captura de alterações de dados é uma aula grátis de Advanced PostgreSQL: Indexing, Partitioning, Replication no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Advanced PostgreSQL: Indexing, Partitioning, Replication, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Advanced PostgreSQL: Indexing, Partitioning, Replication inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
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.
Aprenda Advanced PostgreSQL: Indexing, Partitioning, Replication com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 11
- Aulas
- 44
Perguntas Frequentes
A aula “Decodificação lógica e captura de alterações de dados” é grátis?
Sim — o texto completo de “Decodificação lógica e captura de alterações de dados” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Advanced PostgreSQL: Indexing, Partitioning, Replication, atualize para CoddyKit PRO. O curso de Advanced PostgreSQL: Indexing, Partitioning, Replication inclui 4 aulas no total.
O que vou aprender em “Decodificação lógica e captura de alterações de dados”?
Use a decodificação lógica para transmitir alterações em nível de linha para fora do PostgreSQL, alimentando fluxos de CDC e sistemas orientados a eventos. Você pratica Advanced PostgreSQL: Indexing, Partitioning, Replication com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Advanced PostgreSQL: Indexing, Partitioning, Replication?
Nenhuma experiência prévia é necessária. Advanced PostgreSQL: Indexing, Partitioning, Replication no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Decodificação lógica e captura de alterações de dados”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Advanced PostgreSQL: Indexing, Partitioning, Replication?
Sim. Cada aula de Advanced PostgreSQL: Indexing, Partitioning, Replication inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Replicação em cascata
- Replicação multimestre (BDR)
- Slots de replicação e gerenciamento de WAL
- Decodificação lógica e captura de alterações de dados