Advanced PostgreSQL: Indexing, Partitioning, Replication · Lección

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.

Lección 4 de 413 pasos

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 = logical

Creating 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 712

Slots 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.

Gratis para empezar

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

  1. Replicación en cascada
  2. Replicación multimaestro (BDR)
  3. Slots de replicación y gestión de WAL
  4. Decodificación lógica y captura de cambios de datos
← Volver a Advanced PostgreSQL: Indexing, Partitioning, Replication