Blogs

Startseite / Blogs / Das Change Data Capture (CDC)-Handbuch für PostgreSQL

Inhaltsverzeichnis
Die automatisierte, Kein Code Datenstapel

Erfahren Sie, wie Astera Data Stack kann die Datenverwaltung Ihres Unternehmens vereinfachen und rationalisieren.

Das Change Data Capture (CDC)-Handbuch für PostgreSQL

Usman Hasan Khan

Inhalt Strategist

7. Februar 2024

Dieser Artikel dient als umfassender Leitfaden dazu Datenerfassung ändern (CDC) in PostgreSQL, auch bekannt als Postgres. Es führt Sie durch die verschiedenen Möglichkeiten zur Implementierung von Postgres CDC, einschließlich der Vor- und Nachteile, sowie durch eine automatisierte Alternative zu allen manuellen Methoden. 

Es wird auch auf die Bedeutung von PostgreSQL CDC eingegangen. Bevor wir beginnen, klären wir zunächst einige Grundlagen. 

Was ist PostgreSQL? 

PostgreSQL ist ein Open-Source relationale Datenbank Managementsystem (RDBMS). Seine Vielseitigkeit ermöglicht den Einsatz sowohl als Datenbank und bei Bedarf als Data Warehouse. 

PostgreSQL ist außerdem völlig kostenlos und seine Benutzer profitieren durchweg von umfassender Open-Source-Entwicklung und zuverlässigem Support. Dies sind einige der Hauptgründe für seine beeindruckende Langlebigkeit – PostgreSQL gibt es seit über zwei Jahrzehnten und zählt weiterhin zu den am häufigsten verwendeten relationalen Datenbanken für das Datenmanagement heute. 

Funktionen und Anwendungen von PostgreSQL 

  • PostgreSQL ist nicht nur kostenlos, sondern hat sich auch einen guten Ruf für seine Anpassungsfähigkeit und Erweiterbarkeit erworben. Es lässt sich nahtlos in Ihre bestehenden Systeme integrieren und entspricht den SQL-Standards, sodass Sie wissen, was Sie erwartet.
  • Mit integrierter Unterstützung für die Erfassung von Änderungsdaten bietet Postgres bietet ein robuster Mechanismus zum Verfolgen und Erfassen von Änderungen an der Datenbank.
  • ACID-konform, hochsicher und kompetent im Umgang mit Verarbeitungsfehlern, sodass Sie sich auf die Datenvalidität verlassen können.
  • Es unterstützt sowohl JSON- als auch SQL-Abfragen.
  • Als relationale Datenbank speichert PostgreSQL Datenelemente in Form von Tabellen, in denen die Zeilen auch Tupel genannt werden und jedes Tupel durch einen eindeutigen Schlüssel identifiziert wird. Die Spalten speichern die Attribute für jedes entsprechende Datenelement. 

Eine Tabelle, die darstellt, wie Daten in einer PostgreSQL-Datenbank gespeichert werden, mit Beschriftungen für Tupel und Attribute.

Diese Funktionen machen PostgreSQL für viele Anwendungen zur richtigen Wahl, ein paar davon umfassen: 

  • Transaktionsdatenbank: Wenn Sie häufig schnellen Zugriff auf Informationen zur Verwendung in einem Produkt oder einer Anwendung benötigen, ist PostgreSQL die richtige Datenbankwahl, da seine relationale Struktur relevante Daten mit hoher Geschwindigkeit abruft.
  • Data Warehousing: Eine Datenbank eignet sich gut für Transaktionsdatenoperationen, jedoch nicht für die Analyse, und das Gegenteil gilt für ein Data Warehouse. Die beiden ergänzen sich so können Sie Hebelwirkung Ihre Daten einfacher verwalten. Die Kompatibilität von PostgreSQL mit Business-Intelligence-Tools macht es praktisch zu erhalten zur Erfüllung Ihrer Data-Mining-, Analyse- und BI-Anforderungen.
  • Standortbezogene Dienste: Verwendung der PostGIS Erweiterung, Sie können Verwenden Sie PostgreSQL, um Geodaten nach Bedarf zu speichern, zu indizieren und abzufragen. Das macht es eine kluge Wahl für standortbezogene Dienste und geografische Informationssysteme (GIS).
  • OLTP-Transaktionen: PostgreSQL ist häufig verwendet für OLTP-Transaktionen (Online Transaction Processing). in vielen Branchen, darunter E-Commerce (Online-Käufe und Bestandsaktualisierungen), Banking (Geldtransfers, Abhebungen am Geldautomaten)., und Kontostandsprüfungen), Verkäufe (Einzelhandelstransaktionen, Rechnungserstellung und Treuepunkte), Dienstleistungen entdecken (Terminbuchung, Service-Updates, und Zahlungen für Dienstleistungen gemacht). 

Warum Brauchst du Postgres CDC ? 

Nehmen wir an, Sie benötigen für Berichtszwecke die aktuellsten Daten jetzt sofort, außer dass Sie es noch nicht haben können, da die nächste Synchronisierung geplant ist Stunden in. Manuelle Synchronisierung ist eine Option, aber wenn Ihr Unternehmen große Datenmengen verarbeitet, kann die Stapelverarbeitung schnell zu einer Hürde werden. Dies kann zu Fehlern, der Verwendung veralteter Informationen und falscher Berichterstattung führen.

Letztendlich wird Ihre Entscheidungsfindung dadurch beeinträchtigt, dass Sie nicht über die aktualisierten Daten verfügen, die Sie benötigen, um die erforderlichen Schritte zu unternehmen. 

Genau dieses Szenario können Sie mit Postgres CDC vermeiden. 

Postgres CDC-Methoden helfen Ihnen, Änderungen in Ihren Datenbanken zu verfolgen und zu verarbeiten. Die häufigste Aktion in solchen Fällen ist die Replikation von Änderungen in der Quelle in einen Zieldatenspeicher. Dieser ermöglicht es Ihnen, Ihre Daten zwischen mehreren Datenbanken synchron zu halten. 

Eine Kundenrezension für Astera.

Wie funktioniert PostgreSQL CDC funktioniert und was macht es? 

Postgres CDC stellt sicher, dass alle Systeme konsistenten Zugriff auf die aktuellste Version Ihrer Daten haben Sie sind immer mit aktuellen Informationen arbeiten. Postgres cHange-Datenerfassung hat auch einige zusätzlich Vorteile, wie z: 

  • Postgres CDC kann Ihnen bei der Senkung helfen Ihre Netzwerknutzungskosten, da bei jeder Synchronisierung nur die neuesten Änderungen und nicht der gesamte Datensatz verarbeitet werden.
  • AAnalytik und ähnliche Aufgaben erfordern mehr Ressourcen ausführen, daher kommt es häufig zu Auswirkungen auf die Stapelverarbeitung beeinträchtigt im Laufe der Zeit die Leistung der Postgres-Datenbank und beeinträchtigt deren Funktionalität. Postgres CDC erstellt zunächst Kopien der Datenbank und aktualisiert diese dann schrittweise mit geänderten Daten. Das Der Prozess ist viel einfacher als die Stapelverarbeitung, wodurch Ihre Datenbank schneller und effizienter bleibt.
  • Ihr Stammdatenverwaltung (MDM) System wird betreiben reibungsloser mit Postgres CDC in Kraft. Mit geänderten Daten aus unterschiedlichen Quellen, die im MDM-System kontinuierlich aktualisiert werden, können alle Ihre Teams dies tun - die gleichen aktualisierten Daten. Dies kann die Zusammenarbeit und Koordination verbessern und bessere Geschäftsentscheidungen beschleunigen.
  • Sie können sogar verwenden Datenerfassung ändern mit Postgres als Disaster-Recovery-Mechanismus für Ihre Daten. Echtzeit-CDC hilft Ihnen, wichtige Datenbanken zu sichern und Redundanzen zu erstellen, die hilfreich sein können Fälle von Systemausfällen, Malware-Angriffen, menschlichen Fehlern und anderen ähnlichen Situationen.    

MeMethoden zur Implementierung PostgresSQL CHängen DAta Capture 

Eine Grafik, die die verschiedenen Arten von PostgreSQL-CDC-Techniken zeigt.

Wie oben erläutert, verfolgt und repliziert Postgres CDC alle Datenänderungen über mehrere Datenbanken hinweg. Die CDC-Methode Ihrer Wahl kann seit CDC entweder Batch oder Echtzeit sein nicht irgendwelche zeitlichen Anforderungen haben.  

Sie können Postgres CDC in wenigen Tagen implementierenist instinktiv Wege basierend auf Ihren betrieblichen Anforderungen und werden wir Schauen Sie sich diese unten genauer an: 

TRigger 

Triggerbasiertes Postgres CDC wird auch als „Event Sourcing“ bezeichnet" Bei dieser Methode wird ein dediziertes Ereignisprotokoll erstellt, das als primäre Informationsquelle dient. Wie der Name schon sagt, ist diese Methode stark auf Auslöser angewiesen wichtig in jeder Datenbanktransaktion und erfassen Sie Ereignisse in Echtzeit. 

Ein Schalter Programmiert die Datenbank so, dass sie sich bei einem bestimmten Ereignis auf eine bestimmte Weise verhält tritt. Bei diesem Ereignis kann es sich um die Einführung neuer Daten, Aktualisierungen vorhandener Daten oder das Entfernen vorhandener Daten aus der Datenbank handeln. 

Postgres CDC-Trigger sind in hohem Maße anpassbar. Sie können sie so konfigurieren, dass sie vor oder nach den oben genannten Ereignissen, bei jeder einzelnen Änderung oder einmal bei einer Gruppe von Änderungen ausgeführt werden. Sie können Triggern sogar Betriebsbedingungen auferlegen, sodass sie nur dann ausgeführt werden, wenn ein bestimmtes Tupel vorhanden ist geändert oder nur als Reaktion auf bestimmte Aktionen ausgeführt werden. 

Trigger in Postgres CDC eignen sich gut zum Verfolgen von Änderungen in Tabellen, zum Aufzeichnen dieser Änderungen in einer anderen Tabelle und zum Erstellen eines Protokolls jeder Änderung. Um Trigger-basiertes Postgres zu implementieren Datenerfassung ändernkönnen Sie Prüfauslöser für Ihre Postgres-Datenbank erstellen, die alle Ereignisse im Zusammenhang mit Aktionen wie INSERT, UPDATE und DELETE verfolgen. 

Da diese Methode arbeitet Auf SQL-Ebene können Sie auf die Change Data Capture-Tabelle und verweisen identifizieren alle Änderungen. Hier ist ein Beispiel für eine Triggerfunktion: 

Codeausschnitt zum Erstellen einer „users_cdc“-Tabelle in Postgres.

Dieser Code erstellt eine Tabelle mit dem Namen „user_cdc' zum Speichern von Änderungsdatenerfassungsinformationen, zum Erfassen von Informationen wie der Benutzer-ID, des BetriebsIonentyp (INSERT, UPDATE, DELETE), Zeitstempel der Änderung und der des Benutzers vor und nach der Änderung Information. 

Code zum Erstellen einer Triggerfunktion in Postgres.

Dieser Code definiert einen PL/pgSQL Funktion ('Capture_changes') ausgelöst nach INSERT-, UPDATE- oder DELETE-Operationen für die Tabelle „Benutzer“. Das 'FALL' Aussage entschlossen der Operationstyp basierend auf der Wert of  'TG_OP' (Auslösevorgang). 

Code zum Erstellen einer Triggerfunktion in Postgres.

Dieser Code erstellt einen Trigger mit dem Namen „user_trigger' in der Tabelle 'Benutzer', die nach allen INSERT-, UPDATE- oder DELETE-Vorgängen ausgelöst wird.

In obigem Postgres CDC Jedes Mal, wenn in der Tabelle „Benutzer“ eine Änderung auftritt, aktiviert der entsprechende Auslöser beispielsweise „Capture_changes' Funktion, die die Änderungen an der ' protokolliertBenutzer_CDC' Tisch. Die CDC-Tabelle erfasst den Vorgangstyp, den Zeitstempel und relevante Daten vor und nach der Änderung.

Zusammen helfen Ihnen diese Elemente dabei, alle Änderungen in der Originaltabelle im Laufe der Zeit zu verfolgen. 

Vorteile von Trigger-basiertem Postgres CDC 

  • Das auslöserbasierte Postgres CDC ist zuverlässig und umfassend.
  • Erfassung aller Änderungens und Aufzeichnungen erfolgen innerhalb des SQL-Systems.
  • Die sofortige Änderungserfassung ermöglicht die Echtzeitverarbeitung von Ereignissen.
  • Sie können Auslöser für verschiedene Arten von Ereignissen erstellen. 

Nachteile von Trigger-basiertem Postgres CDC:

  • Da alle von Ihnen erstellten Trigger auf Ihrer primären Postgres-Datenbank ausgeführt werden, können sie die Datenbank verlangsamen. Wie bei jeder anderen Operation auch die Ausführung Postgres CDC über Trigger erfordern ebenfalls Ressourcen und erhöhen den Druck auf die Datenbank.
  • Um die Auswirkungen auf die Datenbankressourcen zu minimieren, müssen Sie eine weitere Tabelle erstellen, die die Primärtabelle widerspiegelt, und diese Sekundärtabelle für die Triggerimplementierung verwenden. Sie müssen jedoch auch eine separate Pipeline erstellen, um alle Änderungen an jedem Ziel widerzuspiegeln, das außerhalb der anwendbaren Postgres-Instanz des Triggers liegt.

Abfragen 

Abfragebasiertes Postgres CDC erfordert mehr manueller Aufwand als mithilfe von Triggern. Sie müssen Ihre Postgres-Datenbank aktiv abfragen identifizieren Änderungen vornehmen, anstatt sich auf vorkonfigurierte Trigger zu verlassen. Sie benötigen eine Zeitstempelspalte in Ihrer Tabellee, um diese benutzerdefinierte Methode zu verwenden. Immer wenn ein Datensatz hinzugefügt wird oder geändert, wird die Zeitstempelspalte aktualisiert und enthält nun das Datum und die Uhrzeit der Änderung. 

Jede Abfrage, die Sie an Ihre Postgres-Datenbank stellen, verwendet diese Zeitstempelspalte, um alle abzurufen geändert Aufzeichnungen seit Ihrer letzten Abfrage und zeigen Sie dann die erfassten Änderungen an.  

Sie können dazu auch Skripte verwenden Monitor Ihre Postgres-Datenbank auf Änderungen prüfen und diese in einer Zieldatenbank aufzeichnen, aber diese zu erhalten ist sogar noch arbeitsintensiver als das bloße Abfragen der Datenbank. 

Fortsetzung der Postgres Datenerfassung ändern Beispiel oben, hier ist So fragen Sie eine „Benutzer“-Tabelle ab: 

Code für eine Postgres-Abfrage.

Diese Abfrage ruft alle Datensätze ab the 'Benutzer' Tisch wo die 'letzte Aktualisierung' Der Zeitstempel ist größer als „2024“. Es wird verwendet, um Benutzerdatensätze abzurufen, die seit dem angegebenen Datum aktualisiert wurden.

Codeausschnitt zum Erstellen einer Tabelle „users_cdc“ in Postgres.

ThDieser Code erstellt die Tabelle 'Benutzer_Änderungen'mit Informationen zu jeder Änderung – etwa die Art des Vorgangs (INSERT, UPDATE oder DELETE), sein Zeitstempel und relevante Daten vor und nach der Änderung.

Vorteile des abfragebasierten Postgres CDC 

  • Es ist einfacher als einzurichten Postgres-Änderungsdatenerfassung löst aus.
  • Es gibt Sie haben mehr Kontrolle über den CDC-Prozess.
  • Für abfragebasiertes CDC benötigen Sie keine externen Tools. 

Nachteile von abfragebasiertem Postgres CDC

  • Erfordert einen proaktiveren Ansatz als der auslöserbasierte Set-it-and-forget-it-Ansatz Postgres CDC. Sie müssen die Datenbank regelmäßig abfragen, um eine genaue und pünktliche Änderungsverfolgung sicherzustellen.
  • Die Abfrageschicht ist bei dieser Methode für die Datenextraktion von entscheidender Bedeutung, was die Postgres-Datenbank zusätzlich belasten kann. 

PostgreSQL Logische Replikation 

Postgres CDC mit logischer Replikation wird auch als logische Dekodierung bezeichnet. Betrachten Sie es als eine Streaming-Darstellung eines Write-Ahead-Protokolls (WAL). Seit WAL erfasst und zeichnet alle Datenänderungen in der Postgres-Datenbank auf. Diese Änderungen gelten als logische Decodierungsströme und werden als logischer Replikationsslot auf Datenbankebene kategorisiert. 

Mit anderen Worten: Ein Replikationsslot ist nichts anderes als ein Strom von Änderungen, die in einer Datenbank auftreten. Jede Datenbank kann mehrere Slots oder Änderungsströme haben.  

Umsetzung PostgreSQL Für die logische Replikation ist ein logisches Dekodierungs-Plugin erforderlich. Postgres-Versionen 10 und höher verfügen standardmäßig über „pgoutput' Plugin. Es ermöglicht die Verarbeitung von Postgres-Datenbankänderungen als Streams. Wenn Sie jedoch eine ältere Version als 10 verwenden, müssen Sie ein Plugin wie „Decoderbufs' oder 'wal2json'. 

DiepgoutputDas Plugin ist nützlich für die Replikation von Daten zwischen zwei oder mehr PostgreSQL-Instanzen. Trotzdem, es kann sein schwer um Postgres-Change-Stream-Daten in einen anderen zu übertragen Plattform oder Datenbank. 

Wenn Sie Änderungsstromdaten auf eine Nicht-Postgres-Plattform verschieben möchten, können Sie die Option „wal2json' Plugin zur Umwandlung der Änderungsstromdaten in JSON. Dadurch können Ihre Zielplattformen es im JSON-Format lesen – was einfacher ist als Lesen pgoutputs binäre Ausgabe. 

Neben einem Plugin die andere wichtige Komponente in CDC über logisches PostgreSQL-Replikatation ist ein Abonnementmodell mit Verlagen und Abonnenten. Dieses Abonnementmodell ermöglicht es einem oder mehreren Abonnenten, über den Herausgeberknoten eine (oder mehrere) Veröffentlichungen zu abonnieren. Abonnenten rufen Daten aus den Veröffentlichungen ab und können diese zur Replikation oder weiteren Neukonfigurationen erneut veröffentlichen. 

Folgen Sie den unteren Schritten die Umsetzung Postgres CDC mit logischer Replikation aus einer Quelldatenbank (wir verwenden die 'Benutzer' Tabelle aus den vorherigen Beispielen) in eine Zieldatenbank, die wir nennen werden 'users_changes' Tabelle.

Denken Sie daran, Platzhalter wie „source_db' und 'replication_user' mit Ihren tatsächlichen Datenbankinformationen. 

Postgres-Konfigurationseinstellungen für die logische Replikation.

Aktivieren Sie zunächst die logische Darstellung in der Postgres-Konfigurationsdatei.postgresql.conf'. Verwenden Sie die oben genannten Einstellungen und starten Sie Postgres neu, sobald diese Änderungen vorgenommen wurden. 

Code zum Erstellen einer Tabelle und Veröffentlichung in Postgres.

In diesem Abschnitt wird eine Tabelle mit dem Namen erstellt 'Benutzer' und eine Veröffentlichung mit dem Namen „my_pub' für die 'Nutzer' Tisch. Diese Veröffentlichung ist die Quelle der zu replizierenden Änderungen. 

Code zum Erstellen einer „users_changes“-Tabelle in Postgres.

In diesem Abschnitt wird eine Tabelle mit dem Namen erstellt 'Benutzer_Änderungen' in der Zieldatenbank, um die Änderungen aus der Quelle zu speichern.

Code zum Erstellen eines Abonnements in Postgres Logical Replication

Dieser Code wird etablieren das Abonnement 'mein_sub', das eine Verbindung zur Quelldatenbank herstellt und die abonniert 'mein_sub' Veröffentlichung. 

Code für die Triggerfunktion „capture_changes“ und „users_trigger“ in Postgres.

Dieser Code definiert eine Triggerfunktion 'Capture_changes' um Änderungen im ' zu erfassenBenutzer Tisch. Es ichnserts relevante Informationen in die 'Nutzer_Änderungen' Tisch abhängig vom Operationstyp (INSERT, UPDATE, DELETE). Es erstellt auch den Auslöser 'user_trigger', um diese Funktion nach jeder Zeilendatei auszuführenvel-Änderung in der 'Benutzer Tabelle. 

Code für die Triggerfunktion „capture_changes“ in einer Postgres-Datenbank.

Dies ist eine SQL-Anweisung zum Überwachen von Änderungen im logischen Replikationsslot mit dem Namen „mein_sub' und sie abholen. Ersetzen 'mein_sub' durch Ihren spezifischen Abonnementnamen. 

Vorteile von Postgres CDC mit logischer Replikation: 

  • Das protokollbasierte CDC ermöglicht die Erfassung von Datenänderungen in Echtzeit mithilfe eines ereignisgesteuerten Mechanismus. Dadurch können nachgelagerte Anwendungen konsistent auf aktualisierte Daten aus einer Postgres-Datenbank zugreifen.
  • Diese CDC-Methode kann alle Arten von Änderungsereignissen in einer Postgres-Datenbank identifizieren.
  • Da diese Methode direkt auf das Dateisystem zugreift, wird die Datenbank weniger belastet. 

Nachteile von Postgres CDC mit logischer Replikation: 

  • Die logische Replikation ist für PostgreSQL-Versionen vor 9.4 nicht verfügbar.
  • Abhängig vom Anwendungsfall kann die komplexe Logik, die zur Verarbeitung dieser Ereignisse und ihrer eventuellen Umwandlung in Anweisungen für die Zieldatenbank erforderlich ist, möglicherweise den Projektabschluss beeinträchtigen. 

Postgres CDC mit dem Write-Ahead-Protokoll (WAL) 

Sowohl auslöserbasierter als auch abfragebasierter Postgres CDC kann zu Latenzen führen und sich im Laufe der Zeit auf die Leistung Ihrer Datenbank auswirken. Wenn, du würdest lieber Hebelwirkung Sie können die in Postgres integrierten Funktionen nutzen und sie für CDC-Prozesse umfunktionieren, anstatt die oben beschriebenen Techniken zu verwenden die WAL. 

Die WAL ist ein Transaktionsprotokoll, das alle Änderungen in der Datenbank notiert. Sein Hauptzweck ist die Wiederherstellung und Gewährleistung der Datenintegrität, Was Es ist nützlich für ereignisbasiertes CDC. Da es sich um eine integrierte Funktion handelt, werden Sie hauptsächlich mit den eigenen Einstellungen der Postgres-Datenbank arbeiten, um sie für CDC einzurichten. 

Nachfolgend finden Sie die Schritte, die Sie ausführen müssen implementieren Postgres-ChanGE-Datenerfassung mithilfe des Transaktionsprotokolls: 

Aktivieren Sie zunächst WAL in Ihrer Postgres-Konfiguration. Obwohl dies normalerweise die Standardeinstellung ist, aktivieren Sie das Kontrollkästchen „postgresql.conf'-Datei zur Bestätigung. Mit Postgres können Benutzer die Inhalte der WAL untersuchen. Als Beispiel verwenden wir das 'pg_waldump'Werkzeug. RErsetzen Sie den Platzhalter 'path_to_wal_file>' mit dem tatsächlichen Pfad Ihrer WAL-Datei, wenn Sie diesen Code verwenden.

Code zum Überprüfen des Inhalts der WAL in Postgres.

Als nächstes qÜberprüfen Sie die WAL-Inhalte mithilfe von SQL-Abfragen. Der 'pglogisch' Erweiterungspaket enthält die 'pg_decode'-Erweiterung, die für diesen Zweck am häufigsten verwendete Erweiterung.

SQL-Anweisung zur Verwendung in CDC unter Verwendung des Write-Ahead-Protokolls.

  • „ERWEITERUNG ERSTELLEN“ erstellt und installiert die „pglogisch' Erweiterung, die logische Replikationsfunktionen für Postgres bereitstellt.
  • Die SQL-Anweisung „SELECT“. erstellt einen logischen Replikationsslot mit dem Namen „mein_slot' Verwendung der 'pg_create_logical_representation_slot'Funktion.
  • 'pgoutput' gibt das zu verwendende Ausgabe-Plugin an Dekodierungsänderungen und hier akute Schmerzen zu lindern, sondern ist auch eine wertvolle Behandlungsmethode für die Behandlung von Verbrennungen ein integriertes Ausgabe-Plugin für die logische Replikation.
  • 'pg_logical_slot_peek_changes' wird verwendet, um die in einem logischen Replikationsslot erfassten Änderungen zu untersuchen
  • 'mein_slot' ist der logische Replikationsslot, der abgefragt wird. Dieser Name ist ein Platzhalter und Sie sollten ihn durch den Namen des tatsächlichen Slots ersetzen, den Sie abfragen möchten
  • 'NULL, NULL' ist der Ort, an dem Sie Parameter platzieren können, die den Bereich der abzurufenden Änderungen angeben. Mit 'NULL, NULL' bedeutet hier das Abrufen aller verfügbaren Änderungen ohne einen bestimmten Bereich. 

Beachten Sie, dass Sie möglicherweise etwas programmieren müssen, insbesondere wenn Sie sind Planung, die Änderungsextraktion und -verarbeitung zu automatisieren. 

Vorteile der Verwendung von WAL für Postgres CDC

  • Während Etwas Codierung ist noch vorhanden Da die Verwendung der WAL zwar eine große Rolle spielt, erfordert sie insgesamt weniger Codierung als die anderen von uns besprochenen CDC-Methoden von Postgres.
  • Lösungen und Plattformen von Drittanbietern wie z 'pglogisch' stehen zur Verfügung, um die komplexeren Schritte im Prozess zu vereinfachen. 

Nachteile der Verwendung von WAL für Postgres CDC

  • Die Daten, die Sie aus der WAL extrahieren, können in einem Rohformat vorliegen. Transformieren Sie es, um es an die Datenstruktur Ihrer Anwendung anzupassen erfordert Zusätzliche Arbeit.
  • Die Überwachung von Änderungen in der WAL könnte weitere Skripterstellung oder Automatisierung erfordern.
  • Das Verständnis und die Interpretation der WAL-Datensätze erfordern ein tiefgreifendes Verständnis der internen Abläufe Ihrer Postgres-Datenbank. 

Automatisierung Postgres CDC mith Astera 

Das folgende Beispiel erklärt, wie Sie können automatisieren auslösen-basierend Postgres CDC Verwendung von Astera. Let's annehmen du bist Arbeiten mit einem PostgreSQL Datenbank und haben eine konfiguriert Datenbanktabellenquelle zum Lesen von Informationen aus dieser Datenbank.  

Konfigurieren der Datenbankverbindung in Astera.

Erstens du wirst Aktivieren Sie CDC für diese Datenbankase durch Auswahl Aktivieren Sie Change Data Capture für die Tabelle. 

Aktivieren von Trigger CDC in Astera.

Wählen Sie dann über die Felder aus, für die Sie das CDC aktivieren möchten Wählen Sie Spalten Dialogbox. 

Auswählen von Spalten zum Aktivieren von CDC in Astera.

Während you kann ein oder alle Felder einer Datenbank auswählen, Es ist obligatorisch, einen Primärschlüssel auszuwählen. In diesem Fall können Sie wählen MitarbeiterID. 
 Aktivieren von Trigger CDC in Astera.

Sobald Du hast Nachdem Sie die Felder ausgewählt haben, klicken Sie auf „OK“.'. Sie werden siehe Dialogbox Dies zeigt an, dass Sie CDC für diese Datenbank erfolgreich aktiviert haben. 

Nächstes Richten Sie die Zieltabelle zum Speichern der aktualisierten Daten aus der Quelltabelle ein. Fügen Sie aus der Toolbox links ein Datenbankzielobjekt hinzu. 

Hinzufügen eines Datenbankzielobjekts zum Workflow in Astera.

Konfigurieren Sie das Zielobjekt, indem Sie seine Eigenschaften öffnen. Im Definieren Sie Eingabeports für Maping Abschnitt, wählen Sie die Upsert Kontrollkästchen mit einer CDC-Quelle wie die eingehenden Daten wahrscheinlich enthalten sowohl neue als auch aktualisierte Datensätze. In Wählen Sie Felder für übereinstimmende Datenbankbetreff ausKabel, wählen MitarbeiterID da akute Schmerzen zu lindern, sondern ist auch eine wertvolle Behandlungsmethode für die Behandlung von Verbrennungen Der Primärschlüssel ist für jeden Datensatz in der Quelldatenbank eindeutig. 

Konfigurieren des Datenbankziels in Astera.

Nächstes Verwenden Sie Drag-and-Drop, um Ordnen Sie alle Felder vom Datenbankquellobjekt dem Zielobjekt zu. Der Datenfluss zu Die Implementierung von Postgres CDC ist nun abgeschlossen. 

Eine zugeordnete Zieldatenbank in Astera.

Wenn Sie den Datenfluss ausführen und das Auftragsfortschrittsfenster überprüfen, du wirst finde das Astera hat gelesen und geschrieben Einträge von der Quelltabelle in die Zieltabelle. 

CDC-Ausführung auslösen in Astera.

Inkrementelles Postgres CDC

Es ist Einfache Einrichtung von inkrementellem CDC in einer PostgreSQL-Datenbank mit Astera, sodass Sie die Daten laden können für Ihre Datenbanktabelle inkrementell statt Komplettladungen bei jedem Lauf.

Lasst uns nehmen an, dass wir sind In diesem Anwendungsfall wird mit Daten von Reedereien gearbeitet und möchten diese Daten in einem neuen speichern Datenbank Tabelle. Wir wollen Sie können die neue Tabelle jederzeit aktualisieren es gibt eine Änderung in der Quelle, ohne dass die Quelltabelle vollständig geladen werden muss.

Gut Verwenden Sie eine vorkonfigurierte Datenbanktabellenquelle mit den relevanten Informationen. 

Quellobjekt der Datenbanktabelle in Astera.

Greifen Sie auf die Eigenschaften des Quellobjekts zu, indem Sie Rechtsklick seine Kopfzeile und Auswahl Eigenschaften.

Kontextmenü der Quellobjekteigenschaften in Astera.

Stellen Sie eine Verbindung zur Datenbank her und klicken Sie auf „Weiter“. vorgehen. 

Das Datenbankverbindungsfenster in Astera.

Auf dem nächsten Bildschirm du wirst finden Sie in der Inkrementelle Leseoptionen .  

Inkrementelle Ladeoptionen in Astera.

Auswählen Inkrementelle Last basierend auf Prüffeldern as Strategie lesen Daraufhin werden weitere Optionen angezeigt. 

Inkrementelle Optionen in Astera.

Prüffelder werden aktualisiert, wenn ein Datensatz erstellt wird oder geändertB. Erstellungsdatum und -uhrzeit, Änderungsdatum und -uhrzeit sowie automatische Nummer. Beim inkrementellen Lesen wird der höchste Wert für alle von Ihnen angegebenen Prüffelder verfolgt. Beim nächsten Lauf werden nur Datensätze angezeigt, die einen höheren Wert als den gespeicherten Wert haben sind abgerufen. 

  • Fügen Sie einen Dateipfad für die hinzu Inkrementelle Übertragungsinformationsdatei, Die Astera erstellt, um Informationen zum letzten Eintrag der Datenbanktabelle zu speichern. Bei jedem Durchlauf wird diese Datei mit der Datenbanktabelle verglichen, um nach neuen Einträgen zu suchen.
     
  • Richten Sie per Drag & Drop eine Zieltabelle ein Ziel der Datenbanktabelle aus der Toolbox. 

Hinzufügen eines Zieltabellenobjekts in Astera.

  • Ordnen Sie nach der Konfiguration die Tabellenquelle dem Tabellenzielobjekt zu.  

Zugeordnete Objekte in Astera.

  • Sie werden Stellen Sie sicher, dass die Zieltabelle leer ist. Sie können den Inhalt wie unten gezeigt überprüfen. Dadurch wird eine SQL-Abfrage geöffnet zum Anzeigen der Tabellendaten. 

Inhalte der Zieltabelle werden eingecheckt Astera.

Ein leerer Tisch drin Astera.Quelltabelle in Astera.

  • Wenn Sie den Datenfluss ausführen, überprüfen Sie die Job Fortschritt Fenster und Sie werden das sehen Einträge aus der Quelltabelle gewesen geschrieben zur Zieltabelle. 

Auftragsfortschrittsfenster während der inkrementellen CDC-Eingabe Astera.

 

  • Sie können dies überprüfen, indem Sie eine Vorschau der Zieltabelle anzeigen. 

Vorschau der Zieltabelle in Astera.

 

Automatisieren Sie Postgres CDC in Astera und halten Sie Ihre Datenbanken mühelos synchronisiert

Kombinieren Sie Postgres CDC-Techniken mit AsteraNutzen Sie die beeindruckenden Datenverwaltungsfunktionen und holen Sie das Beste aus Ihren stets aktuellen Datenbanken heraus. Entdecken Sie die Astera Unterschied heute!

Starten Sie Ihre kostenlose Testversion

Auswahl der richtigen PostgreSQL-CDC-Methode für Ihren Anwendungsfall 

Es gibt mehrere Methoden zum Implementieren von CDC in einer PostgreSQL-Datenbank, und Sie müssen mehrere Faktoren berücksichtigen, wenn Sie sich für eine Methode entscheiden. Jede Methode hat ihre Vor- und Nachteile, die wir kurz erläutern skizzierte über. Darüber hinaus sind hier noch einige weitere Punkte, über die Sie nachdenken sollten: 

Datenvolumen und Änderungshäufigkeit: 

  • In Umgebungen mit moderaten Datenänderungen, die eine Echtzeitverfolgung erfordern, ist triggerbasiertes CDC die beste Wahl
  • Für Szenarien eignet sich die logische Replikation mit hohe Datenänderungsraten, da es Replikationsfunktionen in Echtzeit bietet.
  • Wenn in Ihren Arbeitsabläufen selten Datenänderungen extrahiert werden, wählen Sie das abfragebasierte Postgres CDC. 

Leistung und Overhead: 

  • Triggerbasiertes Postgres CDC kann zusätzlichen Overhead verursachen, insbesondere wenn hohe Transaktionsraten beteiligt sind.
  • Die logische Replikation hat nur geringe Auswirkungen und schont das Quellsystem, was sie zur richtigen Wahl für Hochleistungsszenarien macht.
  • Abfragebasiertes CDC verbraucht normalerweise nicht allzu viele Ressourcen, kann sich jedoch bei intensiven Abfragen auf die Leistung auswirken. 

Komplexität des Anwendungsfalls: 

  • Auslöserbasiertes CDC eignet sich für komplexe Fälle, die eine individuelle Anpassung und detaillierte Änderungsverfolgung erfordern.
  • Die logische Replikation eignet sich für Fälle, in denen Einfachheit und Echtzeitreplikation erforderlich sind.
  • Das abfragebasierte CDC ist eine problemlose Option für einfache Anwendungsfälle, die keine komplexen Auslöser erfordern. 

Integration und Kompatibilität: 

  • Triggerbasiertes CDC lässt sich nahtlos in Ihre aktuellen Anwendungen und Datenbanken integrieren
  • Die logische Replikation ist ideal für Szenarien, in denen Kompatibilität zwischen verschiedenen Postgres-Instanzen erforderlich ist.
  • Beim abfragebasierten CDC handelt es sich um benutzerdefinierte Abfragen. Daher ist es die richtige Option, um maßgeschneiderte Integrationsanforderungen zu erfüllen. 

Einfachheit und Funktionalität: 

  • Trigger-basiertes CDC ist eine robuste Lösung, die eine detaillierte Änderungsverfolgung bietet, aber dadurch noch komplexer wird. Gut für anpassungsintensive Umgebungen.
  • Die logische Replikation schafft hier die richtige Balance, was sie zu einer praktischen Wahl für eine Vielzahl von Szenarien macht und sich ideal für die Erfüllung von Echtzeit-Replikationsanforderungen eignet.
  • Das abfragebasierte CDC ist recht einfach und flexibel, bedeutet jedoch, dass möglicherweise mehr manuelle Eingriffe erforderlich sind. Es ist die richtige Technik für die gelegentliche Extraktion von Änderungen. 

Zusammenfassung 

In diesem Blog haben wir uns eingehend mit verschiedenen Optionen befasst, die Sie für die Implementierung von CDC in PostgreSQL nutzen können. Wir haben auch die Vor- und Nachteile jeder Methode besprochen und die Faktoren hervorgehoben, die Sie beachten sollten Erwägen bevor Sie eine CDC-Methode für Ihr Unternehmen auswählen. 

Während es gibt kein Einheitslösung wenn es um Veränderung geht Datenerfassung, Der Prozess sollte automatisiert werden in Ihrer Liste der obersten Prioritäten. Letztendlich, wie Sie Die Implementierung von Postgres CDC hängt von Ihnen ab Leistungsanforderungen, Anpassungspräferenzen und individueller Anwendungsfall. 

At AsteraWir glauben an die Bereitstellung einer vereinfachten End-to-End-Datenverwaltungslösung. Unsere intuitive Drag-and-Drop-Oberfläche mit gebaut-in Konnektoren und Transformationen macht die Codierung überflüssig und demokratisiert Datenoperationen, sodass sie sowohl für nicht-technische als auch für technische Interessengruppen gleichermaßen zugänglich und aufschlussreich sind. 

Unsere Suite ermöglicht es Ihnen, Ihre zu vereinfachen Datenintegration anpassen, robust bauen Data Warehouse und Optimieren Sie Ihr EDI und API-Verwaltung, Alles ohne das Schreiben einer einzigen Codezeile. 

Erleben Sie die Astera Unterschied. Start Ihre kostenlose Testversion heute oder Holen Sie ein Angebot ein um zu starten. 

Sie können auch mögen
Was ist ein Datenbankschema? Ein umfassender Leitfaden
ANSI X12 vs. EDIFACT: Hauptunterschiede
Was sind Metadaten und warum sind sie wichtig?
In Anbetracht Astera Für Ihre Datenverwaltungsanforderungen?

Stellen Sie eine codefreie Konnektivität mit Ihren Unternehmensanwendungen, Datenbanken und Cloud-Anwendungen her, um alle Ihre Daten zu integrieren.

Lassen Sie uns jetzt eine Verbindung herstellen!
Lass uns verbinden