Gegevens kopiëren uit MySQL met behulp van Azure Data Factory of Synapse Analytics
VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics
Tip
Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .
In dit artikel wordt beschreven hoe u de kopieeractiviteit in Azure Data Factory- en Synapse Analytics-pijplijnen gebruikt om gegevens uit een MySQL-database te kopiëren. Het is gebaseerd op het artikel over het overzicht van kopieeractiviteiten met een algemeen overzicht van de kopieeractiviteit.
Notitie
Als u gegevens wilt kopiëren van of naar de Azure Database for MySQL-service , gebruikt u de gespecialiseerde Azure Database for MySQL-connector.
Belangrijk
MySQL-connector met behulp van de aanbevolen stuurprogrammaversie biedt verbeterde systeemeigen MySQL-ondersteuning. Als u de connector gebruikt met de verouderde stuurprogrammaversie, moet u deze vóór 31 oktober 2024 upgraden. Raadpleeg deze sectie voor meer informatie over het verschil tussen de verouderde en de aanbevolen versie.
Ondersteunde mogelijkheden
Deze MySQL-connector wordt ondersteund voor de volgende mogelijkheden:
Ondersteunde mogelijkheden | IR |
---|---|
Copy-activiteit (bron/-) | (1) (2) |
Activiteit Lookup | (1) (2) |
(1) Azure Integration Runtime (2) Zelf-hostende Integration Runtime
Zie de tabel Ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die worden ondersteund als bronnen/sinks door de kopieeractiviteit.
Deze connector ondersteunt MySQL versie 5.5, 5.6, 5.7, 8.0, 8.1 en 8.2 onder de aanbevolen nieuwe stuurprogrammaversie v2 en 5.6, 5.7 en 8.0 voor de verouderde stuurprogrammaversie.
Vereisten
Als uw gegevensarchief zich in een on-premises netwerk, een virtueel Azure-netwerk of een virtuele particuliere cloud van Amazon bevindt, moet u een zelf-hostende Integration Runtime configureren om er verbinding mee te maken.
Als uw gegevensarchief een beheerde cloudgegevensservice is, kunt u De Azure Integration Runtime gebruiken. Als de toegang is beperkt tot IP-adressen die zijn goedgekeurd in de firewallregels, kunt u IP-adressen van Azure Integration Runtime toevoegen aan de acceptatielijst.
U kunt ook de beheerde functie voor integratieruntime voor virtuele netwerken in Azure Data Factory gebruiken om toegang te krijgen tot het on-premises netwerk zonder een zelf-hostende Integration Runtime te installeren en te configureren.
Zie Strategieën voor gegevenstoegang voor meer informatie over de netwerkbeveiligingsmechanismen en -opties die door Data Factory worden ondersteund.
Integration Runtime biedt een ingebouwd MySQL-stuurprogramma vanaf versie 3.7. Daarom hoeft u geen stuurprogramma handmatig te installeren.
Aan de slag
Als u de kopieeractiviteit wilt uitvoeren met een pijplijn, kunt u een van de volgende hulpprogramma's of SDK's gebruiken:
- Het hulpprogramma voor het kopiëren van gegevens
- Azure Portal
- De .NET-SDK
- De Python-SDK
- Azure PowerShell
- De REST API
- Een Azure Resource Manager-sjabloon
Een gekoppelde service maken met MySQL met behulp van de gebruikersinterface
Gebruik de volgende stappen om een gekoppelde service te maken voor MySQL in de gebruikersinterface van Azure Portal.
Blader naar het tabblad Beheren in uw Azure Data Factory- of Synapse-werkruimte en selecteer Gekoppelde services en klik vervolgens op Nieuw:
Zoek naar MySQL en selecteer de MySQL-connector.
Configureer de servicedetails, test de verbinding en maak de nieuwe gekoppelde service.
Configuratiedetails van connector
De volgende secties bevatten details over eigenschappen die worden gebruikt voor het definiëren van Data Factory-entiteiten die specifiek zijn voor MySQL-connector.
Eigenschappen van gekoppelde service
Als u de aanbevolen stuurprogrammaversie gebruikt, worden de volgende eigenschappen ondersteund voor de gekoppelde MySQL-service:
Eigenschappen | Beschrijving | Vereist |
---|---|---|
type | De typeeigenschap moet worden ingesteld op: MySql | Ja |
driverVersion | De stuurprogrammaversie wanneer u de aanbevolen stuurprogrammaversie selecteert. De waarde is v2. | Ja |
server | De naam van uw MySQL-server. | Ja |
poort | Het poortnummer om verbinding te maken met de MySQL-server. | Nee |
database | De naam van uw MySQL-database. | Ja |
gebruikersnaam | Uw gebruikersnaam. | Ja |
password | Het wachtwoord voor de gebruikersnaam. Markeer dit veld als SecureString om het veilig op te slaan. U kunt ook verwijzen naar een geheim dat is opgeslagen in Azure Key Vault. | Ja |
sslMode | Met deze optie geeft u op of het stuurprogramma TLS-versleuteling en verificatie gebruikt bij het maken van verbinding met MySQL. SSLMode=<0/1/2/3/4> Bijvoorbeeld.Opties: UITGESCHAKELD (0) / VOORKEUR (1) (standaard) / VEREIST (2) / VERIFY_CA (3) / VERIFY_IDENTITY (4) |
Ja |
useSystemTrustStore | Met deze optie geeft u op of u een CA-certificaat uit het systeemvertrouwensarchief of uit een opgegeven PEM-bestand wilt gebruiken. Bijvoorbeeld UseSystemTrustStore=<0/1> ;Opties: Ingeschakeld (1) / Uitgeschakeld (0) (standaard) |
Nee |
connectVia | De Integration Runtime die moet worden gebruikt om verbinding te maken met het gegevensarchief. Meer informatie vindt u in de sectie Vereisten . Als dit niet is opgegeven, wordt de standaard Azure Integration Runtime gebruikt. | Nee |
Voorbeeld:
{
"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"
}
}
}
Voorbeeld: wachtwoord opslaan in 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"
}
}
}
Als u de verouderde stuurprogrammaversie gebruikt, worden de volgende eigenschappen ondersteund:
Eigenschappen | Beschrijving | Vereist |
---|---|---|
type | De typeeigenschap moet worden ingesteld op: MySql | Ja |
connectionString | Geef informatie op die nodig is om verbinding te maken met het Azure Database for MySQL-exemplaar. U kunt ook een wachtwoord in Azure Key Vault plaatsen en de password configuratie uit de verbindingsreeks halen. Raadpleeg de volgende voorbeelden en sla referenties op in het Artikel over Azure Key Vault met meer informatie. |
Ja |
connectVia | De Integration Runtime die moet worden gebruikt om verbinding te maken met het gegevensarchief. Meer informatie vindt u in de sectie Vereisten . Als dit niet is opgegeven, wordt de standaard Azure Integration Runtime gebruikt. | Nee |
Een typische verbindingsreeks is Server=<server>;Port=<port>;Database=<database>;UID=<username>;PWD=<password>
. Meer eigenschappen die u per geval kunt instellen:
Eigenschappen | Beschrijving | Vereist |
---|---|---|
sslMode | Met deze optie geeft u op of het stuurprogramma TLS-versleuteling en verificatie gebruikt bij het maken van verbinding met MySQL. SSLMode=<0/1/2/3/4> Bijvoorbeeld.Opties: UITGESCHAKELD (0) / VOORKEUR (1) (standaard) / VEREIST (2) / VERIFY_CA (3) / VERIFY_IDENTITY (4) |
Ja |
SSLCert | Het volledige pad en de naam van een PEM-bestand met het SSL-certificaat dat wordt gebruikt om de identiteit van de client te bewijzen. Als u een persoonlijke sleutel wilt opgeven voor het versleutelen van dit certificaat voordat u het naar de server verzendt, gebruikt u de SSLKey eigenschap. |
Ja, als u SSL-verificatie in twee richtingen gebruikt. |
SSLKey | Het volledige pad en de naam van een bestand met de persoonlijke sleutel die wordt gebruikt voor het versleutelen van het certificaat aan de clientzijde tijdens verificatie in twee richtingen via SSL. | Ja, als u SSL-verificatie in twee richtingen gebruikt. |
useSystemTrustStore | Met deze optie geeft u op of u een CA-certificaat uit het systeemvertrouwensarchief of uit een opgegeven PEM-bestand wilt gebruiken. Bijvoorbeeld UseSystemTrustStore=<0/1> ;Opties: Ingeschakeld (1) / Uitgeschakeld (0) (standaard) |
Nee |
Voorbeeld:
{
"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"
}
}
}
Eigenschappen van gegevensset
Zie het artikel gegevenssets voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van gegevenssets . Deze sectie bevat een lijst met eigenschappen die worden ondersteund door mySQL-gegevensset.
Als u gegevens uit MySQL wilt kopiëren, worden de volgende eigenschappen ondersteund:
Eigenschappen | Beschrijving | Vereist |
---|---|---|
type | De typeeigenschap van de gegevensset moet zijn ingesteld op: MySqlTable | Ja |
tableName | Naam van de tabel in de MySQL-database. | Nee (als 'query' in de activiteitsbron is opgegeven) |
Voorbeeld
{
"name": "MySQLDataset",
"properties":
{
"type": "MySqlTable",
"typeProperties": {},
"schema": [],
"linkedServiceName": {
"referenceName": "<MySQL linked service name>",
"type": "LinkedServiceReference"
}
}
}
Als u RelationalTable
getypte gegevensset gebruikt, wordt deze nog steeds ondersteund terwijl u wordt aangeraden de nieuwe gegevensset te gebruiken.
Eigenschappen van de kopieeractiviteit
Zie het artikel Pijplijnen voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van activiteiten. Deze sectie bevat een lijst met eigenschappen die worden ondersteund door mySQL-bron.
MySQL als bron
Als u gegevens uit MySQL wilt kopiëren, worden de volgende eigenschappen ondersteund in de sectie bron van de kopieeractiviteit:
Eigenschappen | Beschrijving | Vereist |
---|---|---|
type | De typeeigenschap van de bron van de kopieeractiviteit moet worden ingesteld op: MySqlSource | Ja |
query | Gebruik de aangepaste SQL-query om gegevens te lezen. Voorbeeld: "SELECT * FROM MyTable" . |
Nee (als 'tableName' in de gegevensset is opgegeven) |
Voorbeeld:
"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>"
}
}
}
]
Als u RelationalSource
getypte bron gebruikt, wordt deze nog steeds ondersteund, terwijl u wordt aangeraden de nieuwe bron te gebruiken.
Toewijzing van gegevenstypen voor MySQL
Bij het kopiëren van gegevens uit MySQL worden de volgende toewijzingen gebruikt van MySQL-gegevenstypen naar tussentijdse gegevenstypen die intern door de service worden gebruikt. Zie Schema- en gegevenstypetoewijzingen voor meer informatie over hoe kopieeractiviteit het bronschema en het gegevenstype toewijst aan de sink.
MySQL-gegevenstype | Tussentijdse servicegegevenstype | Tussentijdse servicegegevenstype (voor de verouderde stuurprogrammaversie) |
---|---|---|
bigint |
Int64 |
Int64 |
bigint unsigned |
Decimal |
Decimal |
bit(1) |
UInt64 |
Boolean |
bit(M), M>1 |
UInt64 |
Byte[] |
blob |
Byte[] |
Byte[] |
bool |
Boolean (Als TreatTinyAsBoolean=false, wordt het toegewezen als SByte . TreatTinyAsBoolean is standaard waar ) |
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) is toegewezen aan Boolean ) |
Int16 |
tinyint unsigned |
Int16 |
Int16 |
tinytext |
String |
String |
varchar |
String |
String |
year |
Int |
Int |
Eigenschappen van opzoekactiviteit
Als u meer wilt weten over de eigenschappen, controleert u de lookup-activiteit.
De MySQL-connector upgraden
Hier volgen stappen waarmee u uw MySQL-connector kunt upgraden:
Selecteer op de pagina Gekoppelde service bewerken de optie Aanbevolen onder Stuurprogrammaversie en configureer de gekoppelde service door te verwijzen naar de eigenschappen van de gekoppelde service.
De toewijzing van het gegevenstype voor de meest recente gekoppelde MySQL-service verschilt van die voor de verouderde versie. Zie Gegevenstypetoewijzing voor MySQL voor meer informatie over de meest recente toewijzing van gegevenstypen.
De nieuwste stuurprogrammaversie v2 ondersteunt meer MySQL-versies. Zie Ondersteunde mogelijkheden voor meer informatie.
Aanbevolen procedures voor de aanbevolen versie van de MySQL-connector
In deze sectie vindt u aanbevolen procedures voor de aanbevolen versie van de MySQL-connector.
KAN SSL-sleutel niet laden
Symptomen: Als u de aanbevolen versie van de MySQL-connector gebruikt met SSL-sleutel als verbindingseigenschap, kan het volgende foutbericht worden weergegeven:
Could not load the client key from your_pem_file: Unrecognized PEM header: -----BEGIN PRIVATE KEY-----
Oorzaak: De aanbevolen versie kan de PCKS#8-indeling niet ontsleutelen.
Aanbeveling: converteer de PEM-indeling naar PCKS#1.
Verschillen tussen de aanbevolen en de verouderde stuurprogrammaversie
In de onderstaande tabel ziet u de verschillen tussen de toewijzing van gegevenstypen tussen MySQL met behulp van de aanbevolen en de verouderde stuurprogrammaversie.
MySQL-gegevenstype | Tussentijdse servicegegevenstype (met behulp van de aanbevolen stuurprogrammaversie) | Tussentijdse servicegegevenstype (met de verouderde stuurprogrammaversie) |
---|---|---|
bit(1) | UInt64 | Booleaanse waarde |
bit(M), M>1 | UInt64 | Byte[] |
bool | Booleaanse waarde | Int16 |
JSON | String | Byte[] |
Gerelateerde inhoud
Zie ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die worden ondersteund als bronnen en sinks door de kopieeractiviteit.