MySQL
I det här ämnet beskrivs hur du konfigurerar anslutningen till ett MySQL-mål med MySQL-kopplingen. MySQL kan endast användas som måldatabas i en replikeringsuppgift. Innan du kan ansluta till ett MySQL-mål måste du konfigurera Behörigheter som krävs på databasen. Om du ansluter till MySQL via Gateway för dataflytt måste du även installera drivrutinen enligt beskrivning i Inställning av drivrutin.
Information om begränsningar och överväganden för användning av MySQL-kopplingen finns i Begränsningar och överväganden.
Ställa in anslutningsegenskaper
Gör så här för att konfigurera kopplingen:
-
I Kopplingar klickar du på Skapa koppling.
-
Välj MySQL-målkopplingen och ange följande inställningar:
Datamål
-
Datagateway: När du arbetar med Gateway för dataflytt ska du välja den datagateway som kommer att användas för att testa kopplingen till MySQL-målet. Detta ska vara samma gateway som användes för att komma åt datakällan.
Anteckning om information- Detta fält är inte tillgängligt med Qlik Talend Cloud Starterprenumeration eftersom Gateway för dataflytt inte stöds med denna prenumerationsnivå.
-
Du måste också installera lämplig drivrutin på Gateway för dataflytt-maskinen. Information finns i Inställning av drivrutin nedan.
-
Molnleverantör: välj något av följande efter behov:
-
Ingen
- För MySQL lokalt, MariaDB, Amazon Aurora eller Microsoft Azure Database för MySQL – Flexible Server.
- När du arbetar utan Gateway för dataflytt
-
Amazon RDS
För Amazon RDS för MariaDB eller Amazon RDS för MySQL.
-
Google Cloud
För Google Cloud SQL för MySQL.
-
Microsoft Azure
För Microsoft Azure Database för MySQL.
-
-
Server: Värdnamnet eller IP-adressen för datorn som MySQL-databasen är installerad på.
-
Port: Port som ska användas vid anslutning till databasen. 3306 är standard.
Kontoegenskaper
Användarnamn och Lösenord: Användarnamn och lösenord för en användare som har behörighet att komma åt MySQL Server-databasen.
Databasegenskaper
- Måldatabastyp: Välj ett av följande alternativ:
- Specifik databas: När detta alternativ är markerat laddas alla källscheman till den angivna databasen.
- Flera databaser: När detta alternativ är markerat kommer alla källscheman att laddas in i respektive databas. Som standard kommer dessutom alla kontrolltabeller att replikeras till ett nytt schema som heter attrep_control. Mer information om kontrolltabeller finns i Kontrolltabeller.
- Maximal filstorlek (kB): Välj eller skriv den maximala storleken (i kB) för en CSV-fil innan den laddas in i MySQL-måldatabasen. Standardvärdet är 32 000 kB.
- Parallella laddningstrådar: Att öka antalet trådar kan förbättra prestandan när data laddas in i MySQL-måldatabasen. Observera att om du anger ett stort antal trådar kan det påverka databasens prestanda negativt eftersom det krävs en separat koppling för varje tråd.
Interna egenskaper
Interna egenskaper är till för speciella användarfall och visas därför inte i dialogen. De ska bara användas om Qlik-supporten uppmanar dig att göra det.
Använd - och -knapparna till höger om fälten för att lägga till och ta bort egenskaper efter behov.
Namn
Visningsnamnet för anslutningen.
Förutsättningar
Behörigheter som krävs
Den användare som anges i kopplingsinställningarna måste ges:
- Åtkomst till MySQL-konto
- Läs-/skrivbehörighet i MySQL-databasen
- Följande behörigheter för varje målschema som ingår i replikeringen:
- ALTER
- CREATE
- CREATE TEMPORARY TABLES
- DELETE
- DROP
- Infoga:
- – Välj –
- Uppdatera
Inställning av drivrutin
I det här delavsnittet beskrivs hur driver som krävs installeras. Processen innebär att ett skript körs som automatiskt hämtar, installerar och konfigurerar den nödvändiga driver. Du kan också köra skript som uppdaterar och avinstallerar driver efter behov.
Förbereda installationen
-
Kontrollera att Python 3.6 eller senare är installerad på Dataflytt-gatewayservern.
Python kommer förinstallerad på de flesta Linuxdistributioner. Du kan kontrollera vilken Pythonversion som är installerad på ditt system genom att köra följande kommando:
python3 --version
Installera driver
Så här hämtar och installerar du driver:
-
På Dataflytt-gatewaydatorn byter du arbetskatalog till:
opt/qlik/gateway/movement/drivers/bin
-
Kör följande kommando:
Syntax:
./install mysql
Om driver inte kan hämtas (på grund av åtkomstbegränsningar eller tekniska problem) visas ett meddelande som beskriver var du kan hämta driver och vart du ska kopiera den på Dataflytt-gatewaydatorn. När du har gjort detta kör du install mysql-kommandot igen.
I annat fall visas EULA för driver.
-
Gör ett av följande:
- Tryck på [Enter] flera gånger för att långsamt rulla genom EULA.
- Tryck på mellanslagstangenten flera gånger för att snabbt rulla genom EULA.
- Tryck på q för att lämna avtalstexten. Godkännandealternativen för EULA visas.
-
Gör något av följande:
- Skriv in "y" och tryck på [Enter] för att godkänna EULA och börja med installationen.
- Skriv in "n" och tryck på [Enter] för att avböja EULA och avsluta installationen.
-
Skriv in "v" och tryck på [Enter] för att visa EULA igen.
driver kommer att installeras.
Uppdatering av driver
Kör uppdateringskommandot om du vill avinstallera tidigare versioner av driver innan du installerar den tillhandahållna driver.
Så här hämtar och uppdaterar du driver:
-
På Dataflytt-gatewaydatorn byter du arbetskatalog till:
opt/qlik/gateway/movement/drivers/bin
-
Kör följande kommando:
Syntax:
./update mysql
Om driver inte kan hämtas (på grund av åtkomstbegränsningar eller tekniska problem) visas ett meddelande som beskriver var du kan hämta driver och vart du ska kopiera den på Dataflytt-gatewaydatorn. När du har gjort detta kör du update mysql-kommandot igen.
I annat fall visas EULA för driver.
-
Gör ett av följande:
- Tryck på [Enter] flera gånger för att långsamt rulla genom EULA.
- Tryck på mellanslagstangenten flera gånger för att snabbt rulla genom EULA.
- Tryck på q för att lämna avtalstexten. Godkännandealternativen för EULA visas.
-
Gör något av följande:
- Skriv in "y" och tryck på [Enter] för att godkänna EULA och börja med installationen.
- Skriv in "n" och tryck på [Enter] för att avböja EULA och avsluta installationen.
- Skriv in "v" och tryck på [Enter] för att granska EULA från början.
Den gamla driver avinstalleras och den nya driver installeras.
Avinstallera driver
Kör avinstalleringskommandot om du vill avinstallera driver.
Så här avinstallerar du driver:
-
Stoppa alla uppgifter som är konfigurerade för att använda denna koppling.
-
På Dataflytt-gatewaydatorn byter du arbetskatalog till:
opt/qlik/gateway/movement/drivers/bin
-
Kör följande kommando:
-syntax
./uninstall mysql
driver kommer att avinstalleras.
Installera drivrutinen manuellt
Du bör bara försöka installera driver manuellt om den automatiserade drivrutinsinstallationen inte slutfördes.
När Gateway för dataflytt har installerats hämtar du drivrutinen mysql-connector-odbc-<version>.x86_64.rpm. Du hittar en direkt nedladdningslänk till den version som stöds i binary-artifacts i /opt/qlik/gateway/movement/drivers/manifests/mysql.yaml. När hämtningen har slutförts kopierar du RPM-filen till Gateway för dataflytt-maskinen.
Öppna en kommandorad på Gateway för dataflytt-servern och gör följande:
-
Stoppa tjänsten Gateway för dataflytt:
sudo systemctl stop repagent
-
Om du vill kan du bekräfta att tjänsten har stoppats:
sudo systemctl status repagent
Statusen ska vara enligt följande:
Active: inactive (dead) since <timestamp> ago
- Installera drivrutinen på Gateway för dataflytt-maskinen.
-
Ändra arbetskatalogen till <Gateway för dataflytt-Install-Dir>/bin.
-
Kopiera drivrutinens plats till site_arep_login.sh-filen:
echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/lib64" >> site_arep_login.sh
Detta kommer att lägga till drivrutinen i "LD_LIBRARY_PATH" och uppdatera drivrutinsplatsen i filen site_arep_login.sh.
-
Bekräfta vid behov att drivrutinens plats har kopierats:
cat site_arep_login.sh
-
Kontrollera att filen /etc/odbcinst.ini innehåller en post för MySQL, som i det följande exemplet:
[MySQL ODBC 8.0 Unicode Driver]
Driver = /usr/lib64/libmyodbc8w.so
UsageCount = 1
-
Starta Gateway för dataflytt-tjänsten.
sudo systemctl start repagent
-
Om du vill kan du bekräfta att tjänsten har startats:
sudo systemctl status repagent
Statusen ska vara enligt följande:
Active: active (running) since <timestamp> ago
Begränsningar och överväganden
Följande begränsningar gäller när MySQL används som replikeringsmål:
-
Vid replikering till MariaDB-måldatabasen, om DATETIME-värdet är inställt på noll, måste du definiera en transformation som ersätter DATETIME med giltiga värden. Exempel:
replace($datetime_column,'9999-12-31 23:59:59','2000-01-01 22:00:00')
Anteckning om informationDen här begränsningen gäller inte för Microsoft Azure Database for MySQL. - På grund av MySQL-arbetssättet vid laddning av data till ett MySQL-mål under en fullständig laddning-uppgift, rapporteras inte fel med duplicerade nycklar till loggarna.
-
Vid uppdatering av en kolumns värde till dess befintliga värde returneras noll rader som påverkas från MySQL (till skillnad från Oracle och Microsoft SQL Server som utför en uppdatering av en rad).
Detta genererar en post i attrep_apply_exceptions Control Table och följande varningsmeddelande:
Some changes from the source database had no impact when applied to the target database. See attrep_apply_exceptions table for details.
-
På grund av ett problem med MySQL 5.7 (som löstes i version 8.0) kan multibytetecken inte infogas i TEXT-kolumner när Fullständig laddning använder CSV-filer. Följaktligen, om målslutpunkten är MySQL 5.7 och en replikerad tabell innehåller TEXT-kolumner med UTF-8 multibytetecken, kan måltabellen vara tom.
Kringgå detta:
I -anslutningsinställningarna ställer du in den loadUsingCSVinterna parametern på FALSE. Observera att detta kan påverka prestandan.
-
Om du behöver replikera fyrabytes-emoji-tecken måste målschemats teckenuppsättning vara inställd på utf8mb4.
Datatyper
Information om inbyggd datatyp bevaras och visas i kolumnen Inbyggd datatyp i datauppsättningsvyer. Om kolumnen inte är synlig måste du öppna kolumnväljaren i datauppsättnignsvyn och välja kolumnen Inbyggd datatyp.
Qlik Cloud-datatyper | MySQL-datatyper |
---|---|
BOOL |
BOOL |
BYTES |
Om längden är => 1 och =< 8095, då: VARBINARY (Length) Om längden är => 8096 och =< 65535, då: BLOB Om längden är => 65536 och =< 16777215, då: MEDIUMBLOB Om längden är => 16777216 och =< 2147483647, då: LONGBLOB |
DATE |
DATE |
TIME |
TIME |
DATETIME |
Om skala är => 0 och =< 6, då: DECIMAL (p,s) Om skala är => 7 och =< 12, då: VARCHAR (37) |
INT1 |
TINYINT |
INT2 |
SMALLINT |
INT4 |
INTEGER |
INT8 |
BIGINT |
NUMERIC |
Om skalan är => 0 och =< 30, då: DECIMAL (p,s) Om skalan är => 31 och =< 100, då: VARCHAR (45) |
REAL4 |
FLOAT |
REAL8 |
DOUBLE |
STRING |
Om längden är => 1 och =< 8095, då: VARCHAR (Length) Om längden är => 8096 och =< 65535, då: TEXT Om längden är => 65536 och =< 16777215, då: MEDIUMTEXT Om längden är => 16777216 och =< 2147483647, då: LONGTEXT |
UINT1 |
UNSIGNED TINYINT |
UINT2 |
UNSIGNED SMALLINT |
UINT4 |
UNSIGNED INTEGER |
UINT8 |
UNSIGNED BIGINT |
WSTRING |
Om längden är => 1 och =< 8095, då: VARCHAR (Length) Om längden är => 8096 och =< 65535, då: TEXT Om längden är => 65536 och =< 16777215, då: MEDIUMTEXT Om längden är => 16777216 och =< 2147483647, då: LONGTEXT |
BLOB |
När alternativet Tillåt obegränsad LOB-storlek är aktiverat:
När alternativet Begränsa LOB-storlek till är aktiverat:
Information om hur du begränsar LOB-storleken finns i Metadata. |
NCLOB |
När alternativet Tillåt obegränsad LOB-storlek är aktiverat:
När alternativet Begränsa LOB-storlek till är aktiverat:
Information om hur du begränsar LOB-storleken finns i Metadata. |
CLOB |
När alternativet Tillåt obegränsad LOB-storlek är aktiverat:
När alternativet Begränsa LOB-storlek till är aktiverat:
Information om hur du begränsar LOB-storleken finns i Metadata. |