MySQL
Det här avsnittet förklarar hur du konfigurerar anslutning till ett MySQL-mål med hjälp av målkopplingen MySQL. MySQL kan endast användas som en måldatabas i en replikeringsuppgift. Innan du kan ansluta till ett MySQL-mål måste du konfigurera Nödvändiga behörigheter på databasen. Om du ansluter till MySQL via Gateway för dataflytt måste du också installera drivrutinen enligt beskrivningen i Drivrutinskonfiguration.
För information om begränsningar och överväganden vid användning av MySQL -kopplingen, se Begränsningar och överväganden.
Ställa in kopplingsegenskaper
Gör följande för att konfigurera kopplingen:
-
I Kopplingar klickar du på Skapa koppling.
-
Välj målkopplingen MySQL och ange sedan följande inställningar:
Datamål
-
Datagateway: När du arbetar med Gateway för dataflytt väljer du den datagateway som ska användas för att testa kopplingen till MySQL-målet. Detta bör vara samma gateway som användes för att komma åt datakällan.
Anteckning om information- Det här fältet är inte tillgängligt med prenumerationen Qlik Talend Cloud Starter eftersom Gateway för dataflytt inte stöds med den här prenumerationsnivån.
-
Du måste också installera lämplig drivrutin på Gateway för dataflytt-maskinen. Mer information finns i Drivrutinskonfiguration nedan.
-
Molnleverantör: Välj ett av följande alternativ efter behov:
-
Ingen
- För MySQL lokalt, MariaDB, Amazon Aurora eller Microsoft Azure Database for MySQL - Flexible Server.
- När du arbetar utan Gateway för dataflytt
-
Amazon RDS
För Amazon RDS for MariaDB eller Amazon RDS for MySQL.
-
Google Cloud
För Google Cloud SQL for MySQL.
-
Microsoft Azure
För Microsoft Azure Database for MySQL.
-
-
Server: Värdnamnet eller IP-adressen för den dator där MySQL-databasen är installerad.
-
Port: Den port som ska användas vid anslutning till databasen. Standard är 3306.
Kontoegenskaper
Användarnamn och Lösenord: Användarnamn och lösenord för en användare som är behörig att komma åt MySQL Server-databasen.
Databasegenskaper
- Måldatabastyp: Välj ett av följande alternativ:
- Specifik databas: När det här alternativet är valt kommer alla källscheman att laddas in i den angivna Databasen.
- Flera databaser: När det här alternativet är valt kommer vart och ett av källschemana att laddas in i sin motsvarande databas. Dessutom kommer som standard alla kontrolltabeller att replikeras till ett nytt schema som kallas attrep_control. Mer information om kontrolltabeller finns i Kontrolltabeller.
- Maximal filstorlek (KB): Välj eller skriv in den maximala storleken (i KB) för en CSV-fil innan den laddas in i MySQL-måldatabasen. Standardvärdet är 32000 KB.
- Parallella inläsningstrådar: Att öka antalet trådar kan förbättra prestandan när data laddas in i MySQL-måldatabasen. Observera att ett stort antal trådar kan ha en negativ inverkan på databasens prestanda eftersom en separat koppling krävs 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 kopplingen.
Förutsättningar
Nödvändiga behörigheter
Användaren som anges i kopplingsinställningarna måste beviljas:
- Åtkomst till MySQL-konto
- Läs-/skrivbehörighet i MySQL-databasen
-
Följande behörigheter
för varje målschema som är involverat i replikeringen:
- ALTER
- CREATE
- CREATE TEMPORARY TABLES
- DELETE
- DROP
- INSERT
- SELECT
- UPDATE
Drivrutinskonfiguration
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å Data Movement-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å Data Movement-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å Data Movement-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 ett 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å Data Movement-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å Data Movement-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 ett 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å Data Movement-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.soUsageCount = 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 ett replikeringsmål:
-
När du replikerar till MariaDB-måldatabasen, om DATETIME-värdet är satt till noll, måste du definiera en transformation som ersätter DATETIME med giltiga värden. Till exempel:
replace($datetime_column,'9999-12-31 23:59:59','2000-01-01 22:00:00')
Anteckning om informationDenna begränsning gäller inte för Microsoft Azure Database for MySQL. - På grund av hur MySQL fungerar kommer fel med dubblettnycklar inte att rapporteras i loggarna när data laddas till ett MySQL-mål under en Full Load-uppgift.
-
När en kolumns värde uppdateras till dess befintliga värde returneras noll påverkade rader 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 varning:
Some changes from the source database had no impact when applied to the target database. See attrep_apply_exceptions table for details.
-
Om du behöver replikera 4-byte emoji-tecken måste målschemats teckenuppsättning vara inställd på utf8mb4.
-
När en källtabell innehåller ett stort antal kolumner kan MySQL returnera felet Row size too large (> 8126) eftersom 8126 byte är den förvalda maximala radstorleken i MySQL. Vid användning av SaaS-applikationskällor inträffar detta fel under körning. Vid användning av andra källtyper, såsom databaser, inträffar felet under uppgiftsförberedelsen. För att hantera denna begränsning, använd en av följande metoder:
-
Rekommenderad metod: Efter att data har matats in, ta bort de kolumner du inte behöver på målet. För information om hur du gör detta, se Ta bort kolumner. Om du fortfarande stöter på felet, ta bort fler kolumner.
-
Alternativ åtgärd: Om du behöver att alla källkolumner inkluderas i måltabellen finns det vissa MySQL-databaskonfigurationer som tillåter detta. En av dessa är att öka MySQL-sidstorleken så att den är tillräckligt stor för att rymma radstorleken.
Anteckning om informationFör källor med radstorlekar som överstiger gränsen på 65 535 byte måste du konvertera källfältet till en datatyp som stöder större radstorlekar. Detta beror på en känd begränsning för maximal radpoststorlek. För mer information, se MySQL-dokumentationen om gränser för radstorlek.
-
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. |