Delen via


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:

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.

  1. Blader naar het tabblad Beheren in uw Azure Data Factory- of Synapse-werkruimte en selecteer Gekoppelde services en klik vervolgens op Nieuw:

  2. Zoek naar MySQL en selecteer de MySQL-connector.

    Selecteer de MySQL-connector.

  3. Configureer de servicedetails, test de verbinding en maak de nieuwe gekoppelde service.

    Een gekoppelde service configureren voor MySQL.

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:

  1. 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.

  2. 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.

  3. De nieuwste stuurprogrammaversie v2 ondersteunt meer MySQL-versies. Zie Ondersteunde mogelijkheden voor meer informatie.

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.

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[]

Zie ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die worden ondersteund als bronnen en sinks door de kopieeractiviteit.