- Der Artikel diskutiert verschiedene Möglichkeiten, Veränderungen in der Postgres-Datenbank zu erfassen.
- Ein Unternehmen namens Sequin synchronisiert Daten aus Drittanbieter-APIs wie Salesforce und HubSpot, damit Entwickler API-Daten mithilfe ihrer Postgres-Datenbank aufbauen können.
- Postgres bietet mehrere Optionen, um Daten in Bewegung zu erfassen, etwa das Auslösen von Workflows auf Basis von Tabellenänderungen oder das Streamen von Daten in Echtzeit an andere Datenspeicher, Systeme oder Services.
- Der einfachste Ansatz ist die Nutzung von Listen/Notify, der Interprozesskommunikationsfunktion von Postgres. Sie ist eine Implementierung des Publish-Subscribe-Musters, hat aber Einschränkungen wie eine "höchstens einmal"-Zustellsemantik und eine Begrenzung der Payload-Größe auf 8000 Byte.
- Eine weitere Methode ist das direkte Polling von Tabellen. Dabei muss jede Tabelle eine
updated_at-Spalte oder etwas Ähnliches besitzen, die bei jeder Aktualisierung einer Zeile geändert wird. Diese Methode kann jedoch nicht erkennen, wann Zeilen gelöscht werden, und liefert keine Diffs.
- Postgres unterstützt Streaming-Replikation zu anderen Postgres-Datenbanken, was sich zum Erfassen von Änderungen in einer Anwendung nutzen lässt. Dieser Ansatz ist jedoch komplex und kann Anpassungen an
postgresql.conf erfordern.
- Änderungen können auch über Audit-Tabellen erfasst werden, die Modifikationen protokollieren. Dieser Ansatz ähnelt der Verwendung von Replikations-Slots, ist aber manueller.
- Es gibt auch Foreign Data Wrappers (FDWs), eine Postgres-Funktion, mit der sich externe Datenquellen lesen und beschreiben lassen. Diese Methode wird jedoch nur für sehr spezifische Situationen empfohlen.
- Zusammenfassend hängt die beste Methode zur Erfassung von Änderungen in Postgres vom jeweiligen Anwendungsfall ab. Listen/Notify eignet sich gut zum Erfassen unkritischer Events, das Polling von Änderungen ist eine intuitive Lösung für einfache Anwendungsfälle, und Replikation ist die beste Wahl für eine robuste Lösung. Wenn Replikation zu schwierig ist, können Audit-Tabellen eine gute Zwischenlösung sein.
1 Kommentare
Hacker-News-Kommentare
updated_time-Spalte.updated_atdietxidzu speichern.