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.

Note

Als u gegevens wilt kopiëren van of naar de Azure Database for MySQL-service , gebruikt u de gespecialiseerde Azure Database for MySQL-connector.

Important

De MySQL-connector versie 1.0 bevindt zich in de verwijderingsfase. U wordt aangeraden om de MySQL-connector te upgraden van versie 1.0 naar 2.0.

Ondersteunde mogelijkheden

Deze MySQL-connector wordt ondersteund voor de volgende mogelijkheden:

Ondersteunde mogelijkheden IR
Copy-activiteit (bron/-) (1) (2)
Opzoekactiviteit (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 MySQL-connector versie 2.0 en 5.6, 5.7 en 8.0 voor versie 1.0.

Prerequisites

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 versie 2.0 gebruikt, worden de volgende eigenschappen ondersteund voor de gekoppelde MySQL-service:

Property Description Required
type De typeeigenschap moet worden ingesteld op: MySql Yes
driverVersion De stuurprogrammaversie wanneer u versie 2.0 selecteert. De waarde is v2. Yes
server De naam van uw MySQL-server. Yes
port Het poortnummer om verbinding te maken met de MySQL-server. No
database De naam van uw MySQL-database. Yes
username Uw gebruikersnaam. Yes
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. Yes
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)
Yes
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)
No
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. No
Aanvullende verbindingseigenschappen
allowZeroDateTime Als u deze eigenschapswaarde opgeeft zodat true de speciale datumwaarde nul kan 0000-00-00 worden opgehaald uit de database. Als dit is ingesteld op false (de standaardinstelling), worden datumkolommen geretourneerd als Datum/tijd-waarden, wat betekent dat 0000-00-00 deze niet kunnen worden opgehaald.

Met MySQL kunt u een 'nul'-waarde van 0000-00-00 als een dummydatum opslaan. In sommige gevallen is deze functie handiger dan het gebruik van NULL-waarden en maakt gebruik van minder gegevens en indexruimte. Schakel de NO_ZERO_DATE-modus in om het 0000-00-00 toe te laten in MySQL. Zie dit artikel voor meer informatie.
No
connectionTimeout De tijdsduur (in seconden) om te wachten op een verbinding met de server voordat de poging wordt beëindigd en er een fout wordt gegenereerd. No
convertZeroDateTime Stel deze in om true DateTime.MinValue te retourneren voor datum- of datum/tijd-kolommen met niet-toegestane waarden. No
guidFormat Bepaalt welk kolomtype (indien van toepassing) moet worden gelezen als een GUID. Ga naar dit artikel voor de beschrijving van elk kolomtype door deze eigenschap te doorzoeken.

Versie 2.0 behandelt Char(36) standaard als GUID-type voor betere prestaties. De connector behandelt char(36) velden als GUID's voor eenvoudigere verwerking van databases. Deze behandeling vereenvoudigt bewerkingen zoals het invoegen, bijwerken en ophalen van GUID-waarden, zodat ze consistent worden beheerd als GUID-objecten in de toepassingscode in plaats van gewone tekenreeksen. Dit gedrag is met name handig in scenario's waarin GUID's worden gebruikt als primaire sleutels of unieke id's en betere prestaties bieden. Als u deze standaardinstelling niet nodig hebt, kunt u deze configureren guidFormat=none in de verbindingseigenschap.
No
sslCert Het pad naar het SSL-certificaatbestand van de client in PEM-indeling. SslKey moet ook worden opgegeven. No
sslKey Het pad naar de persoonlijke SSL-sleutel van de client in PEM-indeling. SslCert moet ook worden opgegeven. No
treatTinyAsBoolean Als deze waarde is ingesteld op true, worden tinyint(1) waarden geretourneerd als Booleaanse waarde. Als u deze eigenschap instelt op false, wordt tinyint(1) geretourneerd als SByte/Byte.

Versie 2.0 behandelt tinyint(1) standaard als Booleaanse type. Zie dit artikel voor meer informatie. Als u wilt dat de verbindingslijn klein als numeriek wordt geretourneerd, stelt u treatTinyAsBoolean=false deze in de verbindingseigenschappen in.
No

Example:

{
    "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 versie 1.0 gebruikt, worden de volgende eigenschappen ondersteund:

Property Description Required
type De typeeigenschap moet worden ingesteld op: MySql Yes
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.
Yes
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. No

Een typische verbindingsreeks is Server=<server>;Port=<port>;Database=<database>;UID=<username>;PWD=<password>. Meer eigenschappen die u per geval kunt instellen:

Property Description Required
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)
Yes
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)
No

Example:

{
    "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:

Property Description Required
type De typeeigenschap van de gegevensset moet zijn ingesteld op: MySqlTable Yes
tableName Naam van de tabel in de MySQL-database. Nee (als 'query' in de activiteitsbron is opgegeven)

Example

{
    "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:

Property Description Required
type De typeeigenschap van de bron van de kopieeractiviteit moet worden ingesteld op: MySqlSource Yes
query Gebruik de aangepaste SQL-query om gegevens te lezen. Voorbeeld: "SELECT * FROM MyTable". Nee (als 'tableName' in de gegevensset is opgegeven)

Example:

"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 (voor versie 2.0) Tussentijdse servicegegevenstype (voor versie 1.0)
BIGINT Int64 Int64
BIGINT ONGESIGNEERD UInt64 Decimal
BIT(1) UInt64 Boolean
BIT(M), M>1 UInt64 Byte[]
BLOB Byte[] Byte[]
BOOL Booleaans
(Als TreatTinyAsBoolean=false, wordt deze gemapt als SByte. TreatTinyAsBoolean is standaard op true)
Int16
CHAR String String
DATE Datum/tijd Datum/tijd
DATUMTIJD Datum/tijd Datum/tijd
DECIMAAL Decimal Decimaal, tekenreeks
DUBBEL Double Double
DUBBELE PRECISIE Double Double
ENUM String String
FLOAT Single Single
INT Int32 Int32
INT UNSIGNED Int64 Int64
INTEGER Int32 Int32
INTEGER ONGESIGNEERD UInt32 Int64
JSON String Byte[]
LONG VARBINARY Byte[] Byte[]
LONG VARCHAR String String
LONGBLOB Byte[] Byte[]
LOONGTEKST String String
MEDIUMBLOB Byte[] Byte[]
MEDIUMINT Int32 Int32
MEDIUMINT NIET-ONDERTEKEND UInt32 Int64
MEDIUMTEKST String String
NUMERIEK Decimal Decimal
WERKELIJK Double Double
SET String String
SMALLINT Int16 Int16
SMALLINT UNSIGNED (ongesignaalde geheel getaltype) UInt16 Int32
Tekst String String
TIME TimeSpan TimeSpan
TIMESTAMP Datum/tijd Datum/tijd
TINYBLOB Byte[] Byte[]
TINYINT SByte Int16
TINYINT niet ondertekend 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 2.0 onder Versie en configureer de gekoppelde service door te verwijzen naar de eigenschappen van de gekoppelde service.

  2. De toewijzing van gegevenstypen voor versie 2.0 verschilt van die voor versie 1.0. Zie Gegevenstypetoewijzing voor MySQL voor meer informatie over de toewijzing van gegevenstypen van versie 2.0.

  3. Versie 2.0 ondersteunt meer MySQL-versies. Zie Ondersteunde mogelijkheden voor meer informatie.

In deze sectie worden aanbevolen procedures voor MySQL-connectorversie 2.0 geïntroduceerd.

KAN SSL-sleutel niet laden

  • Symptomen: Als u MySQL-connector versie 2.0 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: versie 2.0 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 versie 2.0 en versie 1.0.

MySQL-gegevenstype Tussentijdse servicegegevenstype (met versie 2.0) Tussentijdse servicegegevenstype (met versie 1.0)
BIGINT ONGESIGNEERD UInt64 Decimal
BIT(1) UInt64 Boolean
BIT(M), M>1 UInt64 Byte[]
BOOL Boolean Int16
DECIMAAL Decimal Decimaal, tekenreeks
INTEGER ONGESIGNEERD UInt32 Int64
JSON String Byte[]
MEDIUMINT NIET-ONDERTEKEND UInt32 Int64
SMALLINT UNSIGNED (ongesignaalde geheel getaltype) UInt16 Int32
TINYINT SByte Int16

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