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.

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 und TIMESTAMP, haben ein maximales Jahr von 9999

  • Der 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 A und B ursprünglich existierten, aber A gelöscht und B in B2 umbenannt wurde, ist es nicht möglich, eine Spalte mit dem Namen A oder B hinzuzufügen.

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 <vorherigen Namen>__SNOWFLAKE_DELETED umbenannt, sodass die historischen Werte weiterhin abgefragt werden können. Alle Zeilen, die repliziert werden, nachdem die Spalte gelöscht wurde, haben den Wert NULL in dieser Spalte.

Wenn zum Beispiel eine Spalte A gelöscht wird, wird sie in der Zieltabelle in A__SNOWFLAKE_DELETED umbenannt, und der Inhalt der Spalte bleibt unverändert.

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 A in B umbenannt wurde – dann wurde in der Zieltabelle A in A__SNOWFLAKE_DELETED umbenannt und eine neue Spalte B wurde hinzugefügt. Alle Zeilen, die vor der Änderung existierten, behalten die Werte der Spalte A__SNOWFLAKE_DELETED, während neue Zeilen, die nach der Änderung hinzugefügt werden, die Werte der Spalte B erhalten.

Es ist nicht möglich, eine Spalte in denselben Namen umzubenennen wie eine zuvor gelöschte oder umbenannte Spalte. Wenn zum Beispiel die Spalten A, B und C ursprünglich existierten, aber A gelöscht und B in B2 umbenannt wurde, ist es nicht möglich, die Spalte C in A oder B umzubenennen.

Ä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:

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.

Autorisierung der Quelldatenbank

Die Autorisierung von privaten Schlüsseln für die Quelldatenbank wird nicht unterstützt. Es wird nur die Autorisierung über Benutzer und Kennwort unterstützt.