Kopiera data från MySQL med Azure Data Factory eller Synapse Analytics
GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics
Dricks
Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!
Den här artikeln beskriver hur du använder pipelines för kopieringsaktivitet i Azure Data Factory och Synapse Analytics för att kopiera data från en MySQL-databas. Den bygger på översiktsartikeln för kopieringsaktivitet som visar en allmän översikt över kopieringsaktiviteten.
Kommentar
Om du vill kopiera data från eller till Azure Database for MySQL-tjänsten använder du den specialiserade Azure Database for MySQL-anslutningsappen.
Viktigt!
MySQL-anslutningsprogrammet med den rekommenderade drivrutinsversionen ger förbättrat inbyggt MySQL-stöd. Om du använder anslutningsappen med den äldre drivrutinsversionen uppgraderar du den före den 31 oktober 2024. Mer information om skillnaden mellan den äldre och den rekommenderade versionen finns i det här avsnittet .
Funktioner som stöds
Den här MySQL-anslutningsappen stöds för följande funktioner:
Funktioner som stöds | IR |
---|---|
aktiviteten Kopiera (källa/-) | (1) (2) |
Sökningsaktivitet | (1) (2) |
(1) Azure Integration Runtime (2) Lokalt installerad integrationskörning
En lista över datalager som stöds som källor/mottagare av kopieringsaktiviteten finns i tabellen Datalager som stöds.
Den här anslutningsappen stöder MySQL version 5.5, 5.6, 5.7, 8.0, 8.1 och 8.2 under den rekommenderade nya drivrutinsversionen v2 och 5.6, 5.7 och 8.0 för den äldre drivrutinsversionen.
Förutsättningar
Om ditt datalager finns i ett lokalt nätverk, ett virtuellt Azure-nätverk eller Amazon Virtual Private Cloud måste du konfigurera en lokalt installerad integrationskörning för att ansluta till det.
Om ditt datalager är en hanterad molndatatjänst kan du använda Azure Integration Runtime. Om åtkomsten är begränsad till IP-adresser som är godkända i brandväggsreglerna kan du lägga till Azure Integration Runtime-IP-adresser i listan över tillåtna.
Du kan också använda funktionen för integrering av hanterade virtuella nätverk i Azure Data Factory för att få åtkomst till det lokala nätverket utan att installera och konfigurera en lokalt installerad integrationskörning.
Mer information om de nätverkssäkerhetsmekanismer och alternativ som stöds av Data Factory finns i Strategier för dataåtkomst.
Integration Runtime innehåller en inbyggd MySQL-drivrutin från version 3.7, därför behöver du inte installera någon drivrutin manuellt.
Komma igång
Om du vill utföra aktiviteten Kopiera med en pipeline kan du använda något av följande verktyg eller SDK:er:
- Verktyget Kopiera data
- Azure-portalen
- The .NET SDK
- The Python SDK
- Azure PowerShell
- REST-API:et
- Azure Resource Manager-mallen
Skapa en länkad tjänst till MySQL med hjälp av användargränssnittet
Använd följande steg för att skapa en länkad tjänst till MySQL i Azure Portal användargränssnittet.
Bläddra till fliken Hantera i Din Azure Data Factory- eller Synapse-arbetsyta och välj Länkade tjänster och klicka sedan på Ny:
Sök efter MySQL och välj MySQL-anslutningsappen.
Konfigurera tjänstinformationen, testa anslutningen och skapa den nya länkade tjänsten.
Konfigurationsinformation för anslutningsprogram
Följande avsnitt innehåller information om egenskaper som används för att definiera Data Factory-entiteter som är specifika för MySQL-anslutningstjänsten.
Länkade tjänstegenskaper
Om du använder den rekommenderade drivrutinsversionen stöds följande egenskaper för den länkade Tjänsten MySQL:
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typegenskapen måste anges till: MySql | Ja |
driverVersion | Drivrutinsversionen när du väljer den rekommenderade drivrutinsversionen. Värdet är v2. | Ja |
server | Namnet på mySQL-servern. | Ja |
port | Portnumret som ska anslutas till MySQL-servern. | Nej |
database | Ditt MySQL-databasnamn. | Ja |
användarnamn | Ditt användarnamn. | Ja |
password | Lösenordet för användarnamnet. Markera det här fältet som SecureString för att lagra det på ett säkert sätt. Eller så kan du referera till en hemlighet som lagras i Azure Key Vault. | Ja |
sslMode | Det här alternativet anger om drivrutinen använder TLS-kryptering och verifiering vid anslutning till MySQL. T.ex. SSLMode=<0/1/2/3/4> .Alternativ: INAKTIVERAD (0) / FÖREDRAGEN (1) (standard) / OBLIGATORISK (2) / VERIFY_CA (3) / VERIFY_IDENTITY (4) |
Ja |
useSystemTrustStore | Det här alternativet anger om du vill använda ett CA-certifikat från systemförtroendearkivet eller från en angiven PEM-fil. T.ex. UseSystemTrustStore=<0/1> ;Alternativ: Aktiverad (1)/Inaktiverad (0) (standard) |
Nej |
connectVia | Integration Runtime som ska användas för att ansluta till datalagret. Läs mer i avsnittet Förutsättningar . Om den inte anges använder den standardkörningen för Azure-integrering. | Nej |
Exempel:
{
"name": "MySQLLinkedService",
"properties": {
"type": "MySql",
"typeProperties": {
"server": "<server>",
"port": 3306,
"database": "<database>",
"username": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
},
"sslmode": <sslmode>,
"usesystemtruststore": <UseSystemTrustStore>,
"driverVersion": "v2"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Exempel: Lagra lösenord i Azure Key Vault
{
"name": "MySQLLinkedService",
"properties": {
"type": "MySql",
"typeProperties": {
"server": "<server>",
"port": 3306,
"database": "<database>",
"username": "<username>",
"sslmode": <sslmode>,
"usesystemtruststore": <UseSystemTrustStore>,
"password": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
},
"driverVersion": "v2"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Om du använder den äldre drivrutinsversionen stöds följande egenskaper:
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typegenskapen måste anges till: MySql | Ja |
connectionString | Ange information som behövs för att ansluta till Azure Database for MySQL-instansen. Du kan också lägga till lösenord i Azure Key Vault och hämta konfigurationen password från anslutningssträng. Mer information finns i följande exempel och artikeln Lagra autentiseringsuppgifter i Azure Key Vault . |
Ja |
connectVia | Integration Runtime som ska användas för att ansluta till datalagret. Läs mer i avsnittet Förutsättningar . Om den inte anges använder den standardkörningen för Azure-integrering. | Nej |
En typisk anslutningssträng är Server=<server>;Port=<port>;Database=<database>;UID=<username>;PWD=<password>
. Fler egenskaper som du kan ange per ditt ärende:
Property | Beskrivning | Obligatoriskt |
---|---|---|
sslMode | Det här alternativet anger om drivrutinen använder TLS-kryptering och verifiering vid anslutning till MySQL. T.ex. SSLMode=<0/1/2/3/4> .Alternativ: INAKTIVERAD (0) / FÖREDRAGEN (1) (standard) / OBLIGATORISK (2) / VERIFY_CA (3) / VERIFY_IDENTITY (4) |
Ja |
SSLCert | Den fullständiga sökvägen och namnet på en .pem-fil som innehåller SSL-certifikatet som används för att bevisa klientens identitet. Om du vill ange en privat nyckel för att kryptera det här certifikatet innan du skickar det till servern använder du SSLKey egenskapen . |
Ja, om du använder dubbelriktad SSL-verifiering. |
SSLKey | Den fullständiga sökvägen och namnet på en fil som innehåller den privata nyckeln som används för att kryptera certifikatet på klientsidan under tvåvägs-SSL-verifiering. | Ja, om du använder dubbelriktad SSL-verifiering. |
useSystemTrustStore | Det här alternativet anger om du vill använda ett CA-certifikat från systemförtroendearkivet eller från en angiven PEM-fil. T.ex. UseSystemTrustStore=<0/1> ;Alternativ: Aktiverad (1)/Inaktiverad (0) (standard) |
Nej |
Exempel:
{
"name": "MySQLLinkedService",
"properties": {
"type": "MySql",
"typeProperties": {
"connectionString": "Server=<server>;Port=<port>;Database=<database>;UID=<username>;PWD=<password>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Egenskaper för datauppsättning
En fullständig lista över avsnitt och egenskaper som är tillgängliga för att definiera datauppsättningar finns i artikeln datauppsättningar . Det här avsnittet innehåller en lista över egenskaper som stöds av MySQL-datauppsättningen.
Följande egenskaper stöds för att kopiera data från MySQL:
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typegenskapen för datamängden måste anges till: MySqlTable | Ja |
tableName | Namnet på tabellen i MySQL-databasen. | Nej (om "fråga" i aktivitetskällan har angetts) |
Exempel
{
"name": "MySQLDataset",
"properties":
{
"type": "MySqlTable",
"typeProperties": {},
"schema": [],
"linkedServiceName": {
"referenceName": "<MySQL linked service name>",
"type": "LinkedServiceReference"
}
}
}
Om du använder RelationalTable
en typ av datauppsättning stöds den fortfarande i sin form, medan du rekommenderas att använda den nya framöver.
Kopiera egenskaper för aktivitet
En fullständig lista över avsnitt och egenskaper som är tillgängliga för att definiera aktiviteter finns i artikeln Pipelines . Det här avsnittet innehåller en lista över egenskaper som stöds av MySQL-källan.
MySQL som källa
Om du vill kopiera data från MySQL stöds följande egenskaper i avsnittet kopieringsaktivitetskälla:
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typegenskapen för kopieringsaktivitetskällan måste anges till: MySqlSource | Ja |
query | Använd den anpassade SQL-frågan för att läsa data. Exempel: "SELECT * FROM MyTable" . |
Nej (om "tableName" i datauppsättningen har angetts) |
Exempel:
"activities":[
{
"name": "CopyFromMySQL",
"type": "Copy",
"inputs": [
{
"referenceName": "<MySQL input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "MySqlSource",
"query": "SELECT * FROM MyTable"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Om du använde RelationalSource
en typbaserad källa stöds den fortfarande som den är, medan du rekommenderas att använda den nya framöver.
Datatypsmappning för MySQL
När du kopierar data från MySQL används följande mappningar från MySQL-datatyper till mellanliggande datatyper som används av tjänsten internt. Se Schema- och datatypmappningar för att lära dig mer om hur kopieringsaktivitet mappar källschemat och datatypen till mottagaren.
MySQL-datatyp | Datatyp för interimstjänst | Interim servicedatatyp (för den äldre drivrutinsversionen) |
---|---|---|
bigint |
Int64 |
Int64 |
bigint unsigned |
Decimal |
Decimal |
bit(1) |
UInt64 |
Boolean |
bit(M), M>1 |
UInt64 |
Byte[] |
blob |
Byte[] |
Byte[] |
bool |
Boolean (Om TreatTinyAsBoolean=false mappas den som SByte . TreatTinyAsBoolean är sant som standard ) |
Int16 |
char |
String |
String |
date |
Datetime |
Datetime |
datetime |
Datetime |
Datetime |
decimal |
Decimal |
Decimal, String |
double |
Double |
Double |
double precision |
Double |
Double |
enum |
String |
String |
float |
Single |
Single |
int |
Int32 |
Int32 |
int unsigned |
Int64 |
Int64 |
integer |
Int32 |
Int32 |
integer unsigned |
Int64 |
Int64 |
JSON |
String |
- |
long varbinary |
Byte[] |
Byte[] |
long varchar |
String |
String |
longblob |
Byte[] |
Byte[] |
longtext |
String |
String |
mediumblob |
Byte[] |
Byte[] |
mediumint |
Int32 |
Int32 |
mediumint unsigned |
Int64 |
Int64 |
mediumtext |
String |
String |
numeric |
Decimal |
Decimal |
real |
Double |
Double |
set |
String |
String |
smallint |
Int16 |
Int16 |
smallint unsigned |
Int32 |
Int32 |
text |
String |
String |
time |
TimeSpan |
TimeSpan |
timestamp |
Datetime |
Datetime |
tinyblob |
Byte[] |
Byte[] |
tinyint |
SByte ( tinyint(1) mappas till Boolean ) |
Int16 |
tinyint unsigned |
Int16 |
Int16 |
tinytext |
String |
String |
varchar |
String |
String |
year |
Int |
Int |
Egenskaper för uppslagsaktivitet
Mer information om egenskaperna finns i Sökningsaktivitet.
Uppgradera MySQL-anslutningsappen
Här följer steg som hjälper dig att uppgradera MySQL-anslutningsappen:
På sidan Redigera länkad tjänst väljer du Rekommenderas under Drivrutinsversion och konfigurerar den länkade tjänsten genom att referera till egenskaper för länkad tjänst.
Datatypens mappning för den senaste Länkade MySQL-tjänsten skiljer sig från den för den äldre versionen. Information om den senaste datatypsmappningen finns i Datatypsmappning för MySQL.
Den senaste drivrutinsversionen v2 stöder fler MySQL-versioner. Mer information finns i Funktioner som stöds.
Metodtips för rekommenderad version av MySQL-anslutningsappen
I det här avsnittet beskrivs metodtips för rekommenderad version av MySQL-anslutningsappen.
Det går inte att läsa in SSL-nyckeln
Symptom: Om du använder den rekommenderade versionen av MySQL-anslutningsappen med SSL Key som en anslutningsegenskap kan följande felmeddelande visas:
Could not load the client key from your_pem_file: Unrecognized PEM header: -----BEGIN PRIVATE KEY-----
Orsak: Den rekommenderade versionen kan inte dekryptera PCKS#8-formatet.
Rekommendation: Konvertera PEM-formatet till PCKS#1.
Skillnader mellan den rekommenderade och den äldre drivrutinsversionen
Tabellen nedan visar skillnaderna i datatypmappning mellan MySQL med hjälp av den rekommenderade och den äldre drivrutinsversionen.
MySQL-datatyp | Datatyp för interimstjänst (med hjälp av den rekommenderade drivrutinsversionen) | Datatyp för interimstjänst (med den äldre drivrutinsversionen) |
---|---|---|
bit(1) | UInt64 | Booleskt |
bit(M), M>1 | UInt64 | Byte[] |
bool | Booleskt | Int16 |
JSON | String | Byte[] |
Relaterat innehåll
En lista över datalager som stöds som källor och mottagare av kopieringsaktiviteten finns i datalager som stöds.