Geavanceerd PostgreSQL: indexering, partitionering en replicatie · Les

Logische decoding en change data capture

Gebruik logische decoding om wijzigingen op rijniveau uit PostgreSQL te streamen voor CDC-pipelines en eventgedreven systemen.

Les 4 van 413 stappen

Logische decoding en change data capture is een gratis Geavanceerd PostgreSQL: indexering, partitionering en replicatie-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Geavanceerd PostgreSQL: indexering, partitionering en replicatie. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Geavanceerd PostgreSQL: indexering, partitionering en replicatie bevat in totaal 4 lessen.

Wat is logisch decoderen

Logisch decoderen zet het write-ahead-log om in een leesbare stroom van logische wijzigingen op rijniveau. Het vormt de basis van zowel logische replicatie als externe vastlegging van gegevenswijzigingen (CDC).

Uitvoerplug-ins

Een plug-in bepaalt de indeling van de wijzigingsstroom. De ingebouwde plug-in pgoutput drijft logische replicatie aan; test_decoding genereert voor mensen leesbare tekst; hulpmiddelen zoals Debezium gebruiken hun eigen plug-in.

Vereiste: wal_level

Logisch decoderen vereist wal_level = logical. Als je dit wijzigt, moet je de server opnieuw starten.

-- postgresql.conf
wal_level = logical

Een logische sleuf aanmaken

Een logische replicatiesleuf houdt bij hoe ver een verbruiker heeft gelezen en voorkomt dat de daarvoor benodigde WAL wordt verwijderd.

SELECT pg_create_logical_replication_slot(
  'cdc_slot', 'test_decoding');

Wijzigingen bekijken

pg_logical_slot_peek_changes toont openstaande wijzigingen zonder de sleuf vooruit te zetten, wat handig is voor inspectie.

SELECT * FROM pg_logical_slot_peek_changes(
  'cdc_slot', NULL, NULL);

Wijzigingen verbruiken

pg_logical_slot_get_changes leest de wijzigingen en schuift de sleuf vooruit, zodat deze wijzigingen niet opnieuw worden teruggegeven.

SELECT * FROM pg_logical_slot_get_changes(
  'cdc_slot', NULL, NULL);

Voorbeeld van wijzigingsuitvoer

Met test_decoding verschijnt een INSERT als leesbare tekst met informatie over de tabel en de nieuwe kolomwaarden, ingesloten tussen BEGIN- en COMMIT-markeringen.

BEGIN 712
table public.users: INSERT: id[int]:1 name[text]:'Ada'
COMMIT 712

Sleuven houden WAL vast

Een inactieve sleuf houdt WAL voor altijd vast, waardoor de schijf vol kan raken. Bewaak ongebruikte sleuven en verwijder ze.

SELECT slot_name, active FROM pg_replication_slots;
SELECT pg_drop_replication_slot('cdc_slot');

CDC-gegevensstromen

Externe CDC-verbinders streamen vanuit een sleuf naar systemen zoals Kafka, zoekindexen of datawarehouses, zodat downstreamsystemen bijna in realtime worden bijgewerkt.

Levering minstens één keer

Verbruikers moeten de laatst bevestigde LSN bijhouden en rekening houden met mogelijke herlevering na een crash. Ontwerp downstreamschrijfbewerkingen daarom idempotent.

Replica-identiteit voor CDC

Als je bij updates en verwijderingen de volledige before-toestand wilt vastleggen, stel je REPLICA IDENTITY FULL in op tabellen zonder bruikbare primaire sleutel.

ALTER TABLE orders REPLICA IDENTITY FULL;

Korte controle

Waarom moeten logische replicatiesleuven worden bewaakt?

Samenvatting

Je hebt logisch decoderen geleerd: stel wal_level=logical in, maak een logische sleuf met een uitvoerplug-in, bekijk of verbruik wijzigingen en voer ze door naar CDC-gegevensstromen. Bewaak sleuven, ontwerp idempotente verbruikers en stel een replica-identiteit in voor volledige wijzigingstoestanden.

Gratis beginnen

Leer Geavanceerd PostgreSQL: indexering, partitionering en replicatie met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
11
Lessen
44

Veelgestelde vragen

Is de les “Logische decoding en change data capture” gratis?

Ja — de volledige tekst van “Logische decoding en change data capture” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Geavanceerd PostgreSQL: indexering, partitionering en replicatie wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Geavanceerd PostgreSQL: indexering, partitionering en replicatie bevat in totaal 4 lessen.

Wat leer ik in “Logische decoding en change data capture”?

Gebruik logische decoding om wijzigingen op rijniveau uit PostgreSQL te streamen voor CDC-pipelines en eventgedreven systemen. Je oefent met Geavanceerd PostgreSQL: indexering, partitionering en replicatie door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Geavanceerd PostgreSQL: indexering, partitionering en replicatie te beginnen?

Ervaring vooraf is niet nodig. Geavanceerd PostgreSQL: indexering, partitionering en replicatie op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “Logische decoding en change data capture”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Geavanceerd PostgreSQL: indexering, partitionering en replicatie?

Ja. Elke les over Geavanceerd PostgreSQL: indexering, partitionering en replicatie bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Cascaderende replicatie
  2. Multi-masterreplicatie (BDR)
  3. Replicatieslots en WAL-beheer
  4. Logische decoding en change data capture
← Terug naar Geavanceerd PostgreSQL: indexering, partitionering en replicatie