Allgemeine Informationen zum Snowflake Connector for MySQL¶
Bemerkung
Der Snowflake Connector for MySQL unterliegt den Nutzungsbedingungen für Konnektoren.
Das Snowflake Connector for MySQL bietet Folgendes:
Laden Sie Daten aus einer MySQL-Datenbank in Snowflake.
Konfigurieren Sie Replikationen so, dass Änderungen in Ihrer MySQL-Datenbank in Snowflake repliziert werden.
Um Verbindungen zwischen Snowflake und MySQL 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 MySQL 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 MySQL auf Ihrem Snowflake-Konto installieren. Weitere Informationen dazu finden Sie unter Optional: Installieren Sie mehrere Instanzen von Snowflake Connector for MySQL.
Private Verbindungen¶
Der Snowflake Connector für MySQL unterstützt private Verbindungen. Weitere Informationen dazu finden Sie unter:
App-Kompatibilität für Agent und Konnektor¶
Das Release von Snowflake Connector for MySQL 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 MySQL 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 MySQL 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.
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.
Größe der Transaktion¶
Der Konnektor unterliegt den gleichen Beschränkungen wie die MySQL-Gruppenreplikation. Das bedeutet, dass eine einzelne Transaktion in eine binäre Logmeldung von maximal 4GB passen muss. Transaktionen, die diese Größe überschreiten, führen dazu, dass die Quelltabelle als dauerhaft fehlgeschlagen markiert wird und ein vollständiges Neuladen des Snapshots der zugehörigen Tabelle erforderlich ist.
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 aus dem binären Protokoll, auch wenn sich einige Ereignisse auf Quelltabellen beziehen, die nicht zur Replikation hinzugefügt wurden. Wenn das binäre Protokoll sehr große Ereignisse enthält, wie z. B. Aktualisierungen der BLOB-ä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
MySQL version >= 8.0.0¶
Derzeit ist der Konnektor von der Konfigurationseigenschaft binlog_row_metadata = full
abhängig, die in MySQL, Version 8, eingeführt wurde.