Allgemeine Informationen zum Snowflake Connector for PostgreSQL¶
Bemerkung
Der Snowflake Connector for PostgreSQL unterliegt den Nutzungsbedingungen für Konnektoren.
Das Snowflake Connector for PostgreSQL bietet Folgendes:
Laden Sie Daten aus einer PostgreSQL-Datenbank in Snowflake.
Konfigurieren Sie Replikationen so, dass Änderungen in Ihrer PostgreSQL-Datenbank in Snowflake repliziert werden.
Um Verbindungen zwischen Snowflake und PostgreSQL zu handhaben, verwendet der Konnektor einen Agenten. Der Agent wird als Docker-Image verteilt. Der Agent wird innerhalb Ihres Netzwerks ausgeführt und dient dazu, Daten in Ihr Snowflake-Konto zu übertragen.
Bemerkung
Snowflake Connector for PostgreSQL stellt die Anforderung, dass immer genau eine Instanz der Agentenanwendung läuft.
Die laufenden inkrementellen Aktualisierungen verwenden die Change Data Capture(CDC)-Technik, die die Änderungen an der Quelldatenbank erfasst. Die Änderungen umfassen die Operationen INSERT, UPDATE und DELETE, die automatisch auf die Zieldatenbank in Snowflake repliziert werden.
Mehrere Instanzen von Anwendungen¶
Sie können mehrere Instanzen von Snowflake Connector for PostgreSQL auf Ihrem Snowflake-Konto installieren. Weitere Informationen dazu finden Sie unter Optional: Installieren Sie mehrere Instanzen von Snowflake Connector for PostgreSQL.
Private Verbindungen¶
Der Snowflake Connector für PostgreSQL unterstützt private Verbindungen. Weitere Informationen dazu finden Sie unter:
Kompatibilität von Agent- und Konnektor-Anwendungen¶
Das Release von Snowflake Connector for PostgreSQL erfolgt für eine bestimmte Version, die als x.y.z-Version beschrieben wird, wobei x für Major, y für Minor und z für Patch steht. Agenten auf dockerhub werden ebenfalls mit der Version X.Y.Z veröffentlicht. Jede x.y.z-Version von Snowflake Connector for PostgreSQL unterstützt alle Agenten mit der gleichen Hauptversion X=x und keiner größeren Nebenversion des Agenten. Außerdem unterstützt jede x.0.0-Version von Snowflake Connector for PostgreSQL alle (x-1).Y.Z-Versionen des Agenten für alle Y und Z.
Bekannte Einschränkungen¶
In den folgenden Abschnitten werden die bekannten Beschränkungen für den Konnektor beschrieben.
Lesereplikate werden nicht unterstützt¶
Aufgrund der Beschränkungen von PostgreSQL wird die logische Replikation auf Replikaten nicht unterstützt. Daher muss Snowflake Connector for PostgreSQL nur mit der primären Datenbank verbunden sein.
Maximale Anzahl von Tabellen¶
Der Konnektor funktioniert gut mit bis zu 200 Quelltabellen, die zur Replikation hinzugefügt werden. Das Hinzufügen weiterer Tabellen kann dazu führen, dass der Konnektor instabil wird.
Verfügbarkeit des Konnektors¶
Beachten Sie bei der Installation des Konnektors die folgenden Beschränkungen:
Konten in Regionen für Regierungsbehörden werden nicht unterstützt.
Um den Konnektor zu installieren und zu konfigurieren, müssen Sie als Benutzer mit der Rolle ACCOUNTADMIN angemeldet sein. Andere Rollen werden derzeit nicht unterstützt.
Typen-Kompatibilität¶
Aufgrund der Unterschiede zwischen den Spaltentypen der Quelldatenbank und von Snowflake können einige Werte aufgrund der maximalen Spaltenkapazität oder der zulässigen Bereiche nicht konvertiert und in Snowflake geschrieben werden. Beispiel:
Der Typ Snowflake
BINARY
hat eine maximale Länge von 8 MB (8.388.608 Bytes)Snowflake-Datumtypen, wie
DATE
,DATETIME
undTIMESTAMP
, haben ein maximales Jahr von 9999Der Typ Snowflake
VARCHAR
hat eine maximale Länge von 16 MB (16.777.216 Bytes)
Wenn eine solche Inkompatibilität auftritt, wird die Replikation einer Tabelle mit einem Fehler beendet.
Änderungen am Schema der Quelltabelle¶
Die folgende Tabelle zeigt verschiedene Arten von Änderungen am Schema der Quelltabelle und ob und wie sie unterstützt werden.
Für neue Spaltennamen gelten die gleichen Beschränkungen wie im Abschnitt „Beschränkungen für Bezeichner“ beschrieben.
Art der Schema-Änderung |
Unterstützt |
Anmerkungen |
---|---|---|
Hinzufügen einer neuen Spalte |
Ja |
Die neue Spalte wird in der Zieltabelle genauso angezeigt wie jede andere Spalte, die zu Beginn der Replikation vorhanden war. Es ist nicht möglich, eine neue Spalte mit dem gleichen Namen wie eine zuvor gelöschte oder umbenannte Spalte hinzuzufügen. Wenn zum Beispiel die Spalten |
Löschen einer bestehenden Spalte |
Ja |
Wenn eine Spalte in der Quelltabelle gelöscht wird, wird sie nicht in der Zieltabelle gelöscht. Stattdessen wird ein Soft-Delete-Ansatz verfolgt und die Spalte wird in den Wenn zum Beispiel eine Spalte |
Umbenennen einer Spalte |
Ja |
Das Umbenennen einer Spalte ist gleichbedeutend mit dem Löschen der Spalte und dem Erstellen einer neuen Spalte mit dem neuen Namen. Das Löschen erfolgt nach dem in der vorherigen Zeile erläuterten Ansatz des sanften Löschens. Wenn z. B. die Spalte Es ist nicht möglich, eine Spalte in denselben Namen umzubenennen wie eine zuvor gelöschte oder umbenannte Spalte. Wenn zum Beispiel die Spalten |
Ändern des Typs der Spalte |
Teilweise |
Das Ändern des Typs einer Quelltabellenspalte ist nur möglich, wenn sowohl der bisherige als auch der neue Typ demselben Typ in Snowflake zugeordnet sind. In jedem anderen Fall wird die Replikation dauerhaft fehlschlagen. |
Ändern der Genauigkeit einer numerischen Spalte |
Nein |
Das Ändern der Genauigkeit einer Quelltabellenspalte führt dazu, dass die Replikation dauerhaft fehlschlägt. |
Ändern der Skalierung einer numerischen Spalte |
Nein |
Das Ändern der Skalierung einer Quelltabellenspalte führt dazu, dass die Replikation dauerhaft fehlschlägt. |
Ändern der Definition des Primärschlüssels |
Nein |
Das Ändern der Definition des Primärschlüssels der Quelltabellenspalte führt dazu, dass die Replikation dauerhaft fehlschlägt. |
Spalten mit hohem Fassungsvermögen¶
Ein aktiver Agent liest kontinuierlich alle Ereignisse mithilfe des logischen Replikationsmechanismus, auch wenn sich einige Ereignisse auf Quelltabellen beziehen, die nicht zur Replikation hinzugefügt wurden. Wenn die logische Replikation sehr große Ereignisse enthält, wie z. B. Aktualisierungen der TEXT-ähnlichen Spalten, kann der Agent aufgrund des Mangels an verfügbarem Speicher abstürzen.
Primärschlüssel¶
Tabellen ohne Primärschlüssel werden nicht unterstützt.
Beschränkungen für Bezeichner¶
Derzeit unterstützt der Konnektor das Zeichen "
in replizierten Schema-, Tabellen- oder Spaltennamen nicht. Außerdem werden die folgenden Schlüsselwörter nicht unterstützt:
- Für Schemanamen:
INFORMATION_SCHEMA
- Für Spaltennamen:
_SNOWFLAKE_INSERTED_AT
_SNOWFLAKE_UPDATED_AT
_SNOWFLAKE_DELETED
Namen mit Suffix
__SNOWFLAKE_DELETED
Spaltennamen, die als
Cannot be used as column name
in Reservierte und beschränkte Schlüsselwörter in Snowflake markiert sind
PostgreSQL-Version >= 11¶
Derzeit ist der Konnektor von der Konfigurationseigenschaft wal_level = logical
abhängig, die in PostgreSQL, Version 11, eingeführt wurde.
Einstellung der Identität des Replikats¶
Die Replikatidentität von replizierten Tabellen muss auf DEFAULT
eingestellt sein.
TOAST-Werte¶
Die Replikation von Tabellen mit TOAST-Werten wird derzeit nicht unterstützt. Dazu gehört das Hinzufügen von TOAST-fähigen Spalten zum Quellschema, wenn die Replikation bereits läuft.
Identität replizieren¶
Die Identität der Replikation einer bestimmten Tabelle muss mit dem Primärschlüssel übereinstimmen, andernfalls schlägt die Replikation fehl.