MySQL
In diesem Thema wird erläutert, wie die Verbindung zu einem MySQL-Ziel anhand des MySQL-Zielkonnektors konfiguriert wird. MySQL kann nur in einer Replikationsaufgabe als Zieldatenbank verwendet werden. Bevor Sie eine Verbindung zu einem MySQL-Ziel herstellen können, müssen Sie die Erforderliche Berechtigungen in der Datenbank konfigurieren. Wenn Sie eine Verbindung zu MySQL über Data Movement Gateway herstellen, müssen Sie auch den Treiber wie in Treibereinrichtung beschrieben installieren.
Weitere Informationen zu den Einschränkungen und Überlegungen bei der Verwendung des MySQL-Ziel-Konnektors finden Sie unter Einschränkungen und Überlegungen.
Einrichten von Verbindungseigenschaften
Gehen Sie wie folgt vor, um den Konnektor zu konfigurieren:
-
Klicken Sie in Verbindungen auf Verbindung erstellen.
-
Wählen Sie den MySQL-Zielkonnektor aus und geben Sie dann die folgenden Einstellungen an:
Datenziel
-
Daten-Gateway: Wählen Sie bei der Arbeit mit Data Movement Gateway das Daten-Gateway aus, das zum Testen der Verbindung zum MySQL-Ziel verwendet wird. Dabei muss es sich um das gleiche Gateway wie für den Zugriff auf die Datenquelle handeln.
Informationshinweis- Dieses Feld ist für Qlik Talend Cloud Starter-Abonnements nicht verfügbar, da Data Movement Gateway für diese Abonnementstufe nicht unterstützt wird.
-
Sie müssen auch den entsprechenden Treiber auf dem Data Movement Gateway-Rechner installieren. Weitere Einzelheiten finden Sie unter Treibereinrichtung unten.
-
Cloudanbieter: Wählen Sie wie erforderlich eine der folgenden Optionen aus:
-
Keiner
- Für lokales MySQL, MariaDB, Amazon Aurora oder Microsoft Azure Database for MySQL - Flexible Server.
- Beim Arbeiten ohne Data Movement Gateway
-
Amazon RDS
Für Amazon RDS for MariaDB oder Amazon RDS for MySQL.
-
Google Cloud
Für Google Cloud SQL for MySQL
-
Microsoft Azure
Für Microsoft Azure Database for MySQL
-
-
Server: Hostname oder IP-Adresse des Computers, auf dem die MySQL-Datenbank installiert ist.
-
Port: Der Port, der bei der Verbindung zur Datenbank verwendet werden soll. Der Standardwert ist 3306.
Kontoeigenschaften
Benutzername und Kennwort: Benutzername und Kennwort eines Benutzers, der zum Zugriff auf die MySQL Server-Datenbank berechtigt ist.
Datenbankeigenschaften
- Zieldatenbanktyp: Wählen Sie eine der folgenden Optionen aus:
- Spezifische Datenbank: Wenn diese Option ausgewählt ist, werden alle Quellschemas in die angegebene Datenbank geladen.
- Mehrere Datenbanken: Wenn diese Option ausgewählt ist, wird jedes Quellschema in die entsprechende Datenbank geladen. Zudem werden standardmäßig alle Kontrolltabellen an ein neues Schema mit dem Namen attrep_control repliziert. Weitere Informationen zu Kontrolltabellen finden Sie unter Kontrolltabellen.
- Maximale Dateigröße (KB): Wählen Sie die maximale Größe (in KB) einer CSV-Datei aus bzw. geben Sie sie ein, bevor sie in die MySQL-Zieldatenbank geladen wird. Der Standardwert ist 32000 KB.
- Parallele Lade-Threads: Wenn Sie die Anzahl der Threads erhöhen, kann dies die Leistung beim Laden von Daten in die MySQL-Zieldatenbank verbessern. Beachten Sie, dass sich das Einstellen einer großen Anzahl Threads negativ auf die Datenbankleistung auswirken kann, da für jeden Thread eine getrennte Verbindung erforderlich ist.
Interne Eigenschaften
Interne Eigenschaften sind für besondere Anwendungsfälle vorgesehen und werden daher nicht im Dialogfenster angezeigt. Sie sollten sie nur verwenden, wenn Sie vom Qlik Support dazu angewiesen werden.
Verwenden Sie die Schaltflächen und rechts neben den Feldern, um Eigenschaften wie erforderlich hinzuzufügen oder zu entfernen.
Name
Der Anzeigename für die Verbindung.
Voraussetzungen
Erforderliche Berechtigungen
Dem in den Konnektoreinstellungen angegebenen Benutzer müssen die folgenden Berechtigungen gewährt werden:
- MySQL-Kontozugriff
- Lese-/Schreibberechtigungen in der MySQL-Datenbank
- Die folgenden Berechtigungen für jedes an der Replikation beteiligte Zielschema:
- ALTER
- Erstellen
- CREATE TEMPORARY TABLES
- DELETE
- DROP
- INSERT
- SELECT
- UPDATE
Treibereinrichtung
In diesem Abschnitt wird die Installation des erforderlichen driver beschrieben. Der Prozess umfasst das Ausführen eines Skripts, das den erforderlichen driver automatisch herunterlädt, installiert und konfiguriert. Sie können auch Skripte ausführen, um den driver bei Bedarf zu aktualisieren und zu deinstallieren.
Vorbereiten der Installation
-
Vergewissern Sie sich, dass Python 3.6 oder höher auf dem Data Movement-Gateway-Server installiert ist.
Python ist in den meisten Linux-Distributionen vorinstalliert. Führen Sie den folgenden Befehl aus, um zu prüfen, welche Python-Version auf Ihrem System installiert ist.
python3 --version
Installieren von driver
So laden Sie den driver herunter und installieren ihn:
-
Ändern Sie auf dem Data Movement-Gateway-Computer das Arbeitsverzeichnis zu:
opt/qlik/gateway/movement/drivers/bin
-
Führen Sie den folgenden Befehl aus:
Syntax:
./install mysql
Wenn der driver (aufgrund von Zugriffsbeschränkungen oder technischen Fehlern) nicht heruntergeladen werden kann, wird eine Meldung mit Anleitungen dazu angezeigt, wo Sie den driver herunterladen können und wohin er im Data Movement-Gateway-Computer kopiert werden muss. Führen Sie dann den Befehl install mysql erneut aus.
Andernfalls wird die Endbenutzer-Lizenzvereinbarung für den driver angezeigt.
-
Gehen Sie folgendermaßen vor:
- Drücken Sie mehrmals die [Eingabetaste], um langsam durch die Endbenutzer-Lizenzvereinbarung zu scrollen.
- Drücken Sie mehrmals die Leertaste, um schnell durch die Endbenutzer-Lizenzvereinbarung zu scrollen.
- Drücken Sie q, um den Lizenztext zu schließen und die Optionen zum Akzeptieren der Endbenutzer-Lizenzvereinbarung anzuzeigen.
-
Gehen Sie folgendermaßen vor:
- Geben Sie „y“ ein und drücken Sie die [Eingabetaste], um die Endbenutzer-Lizenzvereinbarung zu akzeptieren und mit der Installation zu beginnen.
- Geben Sie „n“ ein und drücken Sie die [Eingabetaste], um die Endbenutzer-Lizenzvereinbarung abzulehnen und den Installationsvorgang abzubrechen.
-
Geben Sie „v“ ein und drücken Sie die [Eingabetaste], um die Endbenutzer-Lizenzvereinbarung erneut anzuzeigen.
Der driver wird installiert.
Aktualisieren des driver
Führen Sie den Befehl „update“ aus, wenn Sie vorherige Versionen des driver deinstallieren möchten, bevor Sie den bereitgestellten driver installieren.
So laden Sie den driver herunter und aktualisieren ihn:
-
Ändern Sie auf dem Data Movement-Gateway-Computer das Arbeitsverzeichnis zu:
opt/qlik/gateway/movement/drivers/bin
-
Führen Sie den folgenden Befehl aus:
Syntax:
./update mysql
Wenn der driver (aufgrund von Zugriffsbeschränkungen oder technischen Fehlern) nicht heruntergeladen werden kann, wird eine Meldung mit Anleitungen dazu angezeigt, wo Sie den driver herunterladen können und wohin er im Data Movement-Gateway-Computer kopiert werden muss. Führen Sie dann den Befehl update mysql erneut aus.
Andernfalls wird die Endbenutzer-Lizenzvereinbarung für den driver angezeigt.
-
Gehen Sie folgendermaßen vor:
- Drücken Sie mehrmals die [Eingabetaste], um langsam durch die Endbenutzer-Lizenzvereinbarung zu scrollen.
- Drücken Sie mehrmals die Leertaste, um schnell durch die Endbenutzer-Lizenzvereinbarung zu scrollen.
- Drücken Sie q, um den Lizenztext zu schließen und die Optionen zum Akzeptieren der Endbenutzer-Lizenzvereinbarung anzuzeigen.
-
Gehen Sie folgendermaßen vor:
- Geben Sie „y“ ein und drücken Sie die [Eingabetaste], um die Endbenutzer-Lizenzvereinbarung zu akzeptieren und mit der Installation zu beginnen.
- Geben Sie „n“ ein und drücken Sie die [Eingabetaste], um die Endbenutzer-Lizenzvereinbarung abzulehnen und den Installationsvorgang abzubrechen.
- Geben Sie „v“ ein und drücken Sie die [Eingabetaste], um die Endbenutzer-Lizenzvereinbarung von Anfang an anzuzeigen.
Der alte driver wird deinstalliert und der neue driver installiert.
Deinstallieren des driver
Führen Sie den Befehl „uninstall“ aus, wenn Sie den driver deinstallieren möchten.
So deinstallieren Sie den driver:
-
Halten Sie alle Aufgaben an, die für die Verwendung dieses Konnektors konfiguriert sind.
-
Ändern Sie auf dem Data Movement-Gateway-Computer das Arbeitsverzeichnis zu:
opt/qlik/gateway/movement/drivers/bin
-
Führen Sie den folgenden Befehl aus:
Syntax:
./uninstall mysql
Der driver wird deinstalliert.
Manuelles Installieren des Treibers
Nehmen Sie nur dann eine manuelle Installation des driver vor, wenn die automatische Treiberinstallation nicht erfolgreich abgeschlossen werden konnte.
Nachdem Data Movement Gateway installiert wurde, laden Sie den Treiber mysql-connector-odbc-<version>.x86_64.rpm herunter. Einen direkten Download-Link zur unterstützten Version finden Sie unter binary-artifacts in /opt/qlik/gateway/movement/drivers/manifests/mysql.yaml. Kopieren Sie nach Abschluss des Downloads die RPM auf den Data Movement Gateway-Rechner.
Öffnen Sie auf dem Data Movement Gateway-Server eine Shell-Eingabeaufforderung und führen Sie Folgendes durch:
-
Halten Sie den Data Movement Gateway-Dienst an:
sudo systemctl stop repagent
-
Bestätigen Sie optional, dass der Dienst angehalten wurde:
sudo systemctl status repagent
Der Status lautet wie folgt:
Active: inactive (dead) since <timestamp> ago
- Installieren Sie den Treiber auf dem Data Movement Gateway-Rechner.
-
Ändern Sie das Arbeitsverzeichnis in <Data Movement Gateway-Install_Dir>/bin.
-
Kopieren Sie den Treiberspeicherort in die Datei site_arep_login.sh:
echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/lib64" >> site_arep_login.sh
Dadurch wird der Treiber zu „LD_LIBRARY_PATH“ hinzugefügt und der Treiberspeicherort in der Datei site_arep_login.sh aktualisiert.
-
Bestätigen Sie optional, dass der Speicherort des Treibers kopiert wurde:
cat site_arep_login.sh
-
Stellen Sie sicher, dass die Datei /etc/odbcinst.ini einen Eintrag für MySQL enthält, wie im folgenden Beispiel gezeigt:
[MySQL ODBC 8.0 Unicode Driver]
Driver = /usr/lib64/libmyodbc8w.so
UsageCount = 1
-
Starten Sie den Data Movement Gateway-Dienst:
sudo systemctl start repagent
-
Bestätigen Sie optional, dass der Dienst gestartet wurde:
sudo systemctl status repagent
Der Status lautet wie folgt:
Active: active (running) since <timestamp> ago
Einschränkungen und Überlegungen
Die folgenden Einschränkungen gelten, wenn MySQL als Replikationsziel verwendet wird:
-
Wenn beim Replizieren in die MariaDB-Zieldatenbank der DATETIME-Wert auf Null festgelegt ist, müssen Sie eine Umwandlung definieren, die DATETIME durch gültige Werte ersetzt. Hier ein Beispiel:
replace($datetime_column,'9999-12-31 23:59:59','2000-01-01 22:00:00')
InformationshinweisDiese Einschränkung gilt nicht für Microsoft Azure Database for MySQL. - Aufgrund der Funktionsweise von MySQL werden beim Laden von Daten in ein MySQL-Ziel während einer Aufgabe für vollständiges Laden „duplizierter Schlüssel“-Fehler nicht in den Protokollen erfasst.
-
Wenn der Wert einer Spalte auf ihren bestehenden Wert aktualisiert wird, wird „null betroffene Zeilen“ von MySQL zurückgegeben (im Gegensatz zu Oracle und Microsoft SQL Server, die eine Aktualisierung einer Zeile durchführen).
Dadurch werden ein Eintrag in attrep_apply_exceptions Control Table und die folgende Warnung generiert:
Some changes from the source database had no impact when applied to the target database. See attrep_apply_exceptions table for details.
-
Aufgrund eines Problems mit MySQL 5.7 (das in Version 8.0 behoben wurde), können Mehrbytezeichen nicht in TEXT-Spalten eingefügt werden, wenn das vollständige Laden CSV-Dateien verwendet. Wenn daher der Zielendpunkt MySQL 5.7 ist und eine replizierte Tabelle TEXT-Spalten mit UTF-8-Mehrbytezeichen enthält, kann die Zieltabelle leer sein.
Problemumgehung:
Legen Sie in den Konnektoreinstellungen den internen Parameter loadUsingCSV auf FALSE fest. Beachten Sie, das dies die Leistung beeinträchtigen kann.
-
Wenn Sie 4-Byte-Emoji-Zeichen replizieren müssen, muss der Zielschema-Zeichensatz auf utf8mb4 festgelegt sein.
Datentypen
Informationen zum nativen Datentyp werden beibehalten und in der Spalte Nativer Datentyp in Datensatzansichten angezeigt. Wenn die Spalte nicht angezeigt wird, müssen Sie die Spaltenauswahl in der Datensatzansicht öffnen und die Spalte Nativer Datentyp auswählen.
Qlik Cloud-Datentypen | MySQL-Datentypen |
---|---|
BOOL |
BOOL |
BYTES |
Wenn Länge => 1 und =< 8095, dann: VARBINARY (Länge) Wenn Länge => 8096 und =< 65535, dann: BLOB Wenn Länge => 65536 und =< 16777215, dann: MEDIUMBLOB Wenn Länge => 16777216 und =< 2147483647, dann: LONGBLOB |
DATE |
DATE |
TIME |
TIME |
DATETIME |
Wenn Dezimalstellen => 0 und =< 6, dann: DECIMAL (p,s) Wenn Dezimalstellen => 7 und =< 12, dann: VARCHAR (37) |
INT1 |
TINYINT |
INT2 |
SMALLINT |
INT4 |
INTEGER |
INT8 |
BIGINT |
NUMERIC |
Wenn Dezimalstellen => 0 und =< 30, dann: DECIMAL (p,s) Wenn Dezimalstellen => 31 und =< 100, dann: VARCHAR (45) |
REAL4 |
FLOAT |
REAL8 |
DOUBLE |
STRING |
Wenn Länge => 1 und =< 8095, dann: VARCHAR (Länge) Wenn Länge => 8096 und =< 65535, dann: TEXT Wenn Länge => 65536 und =< 16777215, dann: MEDIUMTEXT Wenn Länge => 16777216 und =< 2147483647, dann: LONGTEXT |
UINT1 |
UNSIGNED TINYINT |
UINT2 |
UNSIGNED SMALLINT |
UINT4 |
UNSIGNED INTEGER |
UINT8 |
UNSIGNED BIGINT |
WSTRING |
Wenn Länge => 1 und =< 8095, dann: VARCHAR (Länge) Wenn Länge => 8096 und =< 65535, dann: TEXT Wenn Länge => 65536 und =< 16777215, dann: MEDIUMTEXT Wenn Länge => 16777216 und =< 2147483647, dann: LONGTEXT |
BLOB |
Wenn die Option Unbegrenzte LOB-Größe zulassen aktiviert ist:
Wenn die Option LOB-Größe begrenzen auf aktiviert ist:
Weitere Informationen zum Begrenzen der LOB-Größe finden Sie unter Metadata. |
NCLOB |
Wenn die Option Unbegrenzte LOB-Größe zulassen aktiviert ist:
Wenn die Option LOB-Größe begrenzen auf aktiviert ist:
Weitere Informationen zum Begrenzen der LOB-Größe finden Sie unter Metadata. |
CLOB |
Wenn die Option Unbegrenzte LOB-Größe zulassen aktiviert ist:
Wenn die Option LOB-Größe begrenzen auf aktiviert ist:
Weitere Informationen zum Begrenzen der LOB-Größe finden Sie unter Metadata. |