Logische decoding en change data capture
Gebruik logische decoding om wijzigingen op rijniveau uit PostgreSQL te streamen voor CDC-pipelines en eventgedreven systemen.
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 = logicalEen 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 712Sleuven 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.
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
- Cascaderende replicatie
- Multi-masterreplicatie (BDR)
- Replicatieslots en WAL-beheer
- Logische decoding en change data capture