Decodificación lógica y captura de cambios de datos
Utilice la decodificación lógica para transmitir fuera de PostgreSQL los cambios a nivel de fila destinados a canalizaciones de CDC y sistemas basados en eventos.
Decodificación lógica y captura de cambios de datos es una lección gratuita de Advanced PostgreSQL: Indexing, Partitioning, Replication en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Advanced PostgreSQL: Indexing, Partitioning, Replication, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Advanced PostgreSQL: Indexing, Partitioning, Replication incluye 4 lecciones en total.
Partes de esta lección aún no han sido traducidas y se muestran en 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.
Aprende Advanced PostgreSQL: Indexing, Partitioning, Replication con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 11
- Lecciones
- 44
Preguntas frecuentes
¿La lección «Decodificación lógica y captura de cambios de datos» es gratis?
Sí — el texto completo de «Decodificación lógica y captura de cambios de datos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Advanced PostgreSQL: Indexing, Partitioning, Replication, actualiza a CoddyKit PRO. El curso de Advanced PostgreSQL: Indexing, Partitioning, Replication incluye 4 lecciones en total.
¿Qué aprenderé en «Decodificación lógica y captura de cambios de datos»?
Utilice la decodificación lógica para transmitir fuera de PostgreSQL los cambios a nivel de fila destinados a canalizaciones de CDC y sistemas basados en eventos. Practicas Advanced PostgreSQL: Indexing, Partitioning, Replication con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Advanced PostgreSQL: Indexing, Partitioning, Replication?
No se requiere experiencia previa. Advanced PostgreSQL: Indexing, Partitioning, Replication en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Decodificación lógica y captura de cambios de datos»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Advanced PostgreSQL: Indexing, Partitioning, Replication?
Sí. Cada lección de Advanced PostgreSQL: Indexing, Partitioning, Replication incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Replicación en cascada
- Replicación multimaestro (BDR)
- Slots de replicación y gestión de WAL
- Decodificación lógica y captura de cambios de datos