Sdílet prostřednictvím


Kopírování dat z MySQL pomocí služby Azure Data Factory nebo Synapse Analytics

PLATÍ PRO: Azure Data Factory Azure Synapse Analytics

Tip

Vyzkoušejte si službu Data Factory v Microsoft Fabric, řešení pro analýzy typu all-in-one pro podniky. Microsoft Fabric zahrnuje všechno od přesunu dat až po datové vědy, analýzy v reálném čase, business intelligence a vytváření sestav. Přečtěte si, jak začít používat novou zkušební verzi zdarma.

Tento článek popisuje, jak pomocí aktivity kopírování v kanálech Azure Data Factory a Synapse Analytics kopírovat data z databáze MySQL. Vychází z článku s přehledem aktivity kopírování, který představuje obecný přehled aktivity kopírování.

Poznámka:

Ke kopírování dat ze služby Azure Database for MySQL nebo do služby Azure Database for MySQL použijte specializovaný konektor Azure Database for MySQL.

Důležité

Konektor MySQL s využitím doporučené verze ovladače poskytuje vylepšenou nativní podporu MySQL. Pokud používáte konektor se starší verzí ovladače, upgradujte ho před 31. říjnem 2024. Podrobnosti o rozdílu mezi starší verzí a doporučenou verzí najdete v této části .

Podporované funkce

Tento konektor MySQL je podporovaný pro následující funkce:

Podporované funkce IR
aktivita Copy (zdroj/-) (1) (2)
Aktivita Lookup (1) (2)

(1) Prostředí Azure Integration Runtime (2) Místní prostředí Integration Runtime

Seznam úložišť dat podporovaných jako zdroje nebo jímky aktivitou kopírování najdete v tabulce Podporované úložiště dat.

Tento konektor podporuje MySQL verze 5.5, 5.6, 5.7, 8.0, 8.1 a 8.2 v rámci doporučené nové verze ovladače verze 2 a 5.6, 5.7 a 8.0 pro starší verzi ovladače.

Požadavky

Pokud se vaše úložiště dat nachází uvnitř místní sítě, virtuální sítě Azure nebo amazonového privátního cloudu, musíte nakonfigurovat místní prostředí Integration Runtime pro připojení k němu.

Pokud je vaše úložiště dat spravovanou cloudovou datovou službou, můžete použít Azure Integration Runtime. Pokud je přístup omezený na IP adresy schválené v pravidlech brány firewall, můžete do seznamu povolených přidat IP adresy prostředí Azure Integration Runtime.

K přístupu k místní síti bez nutnosti instalace a konfigurace místního prostředí Integration Runtime můžete také použít funkci Runtime integrace spravované virtuální sítě ve službě Azure Data Factory.

Další informace o mechanismech zabezpečení sítě a možnostech podporovaných službou Data Factory najdete v tématu Strategie přístupu k datům.

Prostředí Integration Runtime poskytuje integrovaný ovladač MySQL od verze 3.7, takže nemusíte ručně instalovat žádný ovladač.

Začínáme

K provedení aktivita Copy s kanálem můžete použít jeden z následujících nástrojů nebo sad SDK:

Vytvoření propojené služby s MySQL pomocí uživatelského rozhraní

Pomocí následujícího postupu vytvořte propojenou službu s MySQL v uživatelském rozhraní webu Azure Portal.

  1. Přejděte na kartu Správa v pracovním prostoru Azure Data Factory nebo Synapse a vyberte Propojené služby a pak klikněte na Nový:

  2. Vyhledejte MySQL a vyberte konektor MySQL.

    Vyberte konektor MySQL.

  3. Nakonfigurujte podrobnosti o službě, otestujte připojení a vytvořte novou propojenou službu.

    Nakonfigurujte propojenou službu pro MySQL.

Podrobnosti konfigurace konektoru

Následující části obsahují podrobnosti o vlastnostech, které slouží k definování entit služby Data Factory specifických pro konektor MySQL.

Vlastnosti propojené služby

Pokud používáte doporučenou verzi ovladače, jsou pro propojenou službu MySQL podporovány následující vlastnosti:

Vlastnost Popis Povinní účastníci
type Vlastnost typu musí být nastavená na: MySql. Ano
driverVersion Verze ovladače, když vyberete doporučenou verzi ovladače. Hodnota je v2. Ano
server Název vašeho serveru MySQL. Ano
port Číslo portu pro připojení k serveru MySQL. No
database Název databáze MySQL. Ano
username Vaše uživatelské jméno. Ano
Heslo Heslo pro uživatelské jméno. Označte toto pole jako SecureString, abyste ho bezpečně uložili. Nebo můžete odkazovat na tajný klíč uložený ve službě Azure Key Vault. Ano
sslMode Tato možnost určuje, jestli ovladač při připojování k MySQL používá šifrování TLS a ověřování. Např. SSLMode=<0/1/2/3/4>
Možnosti: ZAKÁZÁNO (0) / PREFEROVÁNO (1) (Výchozí) / POVINNÉ (2) / VERIFY_CA (3) / VERIFY_IDENTITY (4)
Ano
useSystemTrustStore Tato možnost určuje, jestli se má použít certifikát certifikační autority z úložiště důvěryhodnosti systému nebo ze zadaného souboru PEM. Např. UseSystemTrustStore=<0/1>
Možnosti: Povoleno (1) / Zakázáno (0) (výchozí)
No
connectVia Prostředí Integration Runtime , které se má použít pro připojení k úložišti dat. Další informace najdete v části Požadavky . Pokud není zadaný, použije výchozí prostředí Azure Integration Runtime. No

Příklad:

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

Příklad: Uložení hesla ve službě 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"
        }
    }
}

Pokud používáte starší verzi ovladače, podporují se následující vlastnosti:

Vlastnost Popis Povinní účastníci
type Vlastnost typu musí být nastavená na: MySql. Ano
připojovací řetězec Zadejte informace potřebné pro připojení k instanci Azure Database for MySQL.
Můžete také zadat heslo do služby Azure Key Vault a vytáhnout password konfiguraci z připojovací řetězec. Další podrobnosti najdete v následujících ukázkách a ukládání přihlašovacích údajů ve službě Azure Key Vault .
Ano
connectVia Prostředí Integration Runtime , které se má použít pro připojení k úložišti dat. Další informace najdete v části Požadavky . Pokud není zadaný, použije výchozí prostředí Azure Integration Runtime. No

Typický připojovací řetězec je Server=<server>;Port=<port>;Database=<database>;UID=<username>;PWD=<password>. Další vlastnosti, které můžete nastavit pro váš případ:

Vlastnost Popis Povinní účastníci
sslMode Tato možnost určuje, jestli ovladač při připojování k MySQL používá šifrování TLS a ověřování. Např. SSLMode=<0/1/2/3/4>
Možnosti: ZAKÁZÁNO (0) / PREFEROVÁNO (1) (Výchozí) / POVINNÉ (2) / VERIFY_CA (3) / VERIFY_IDENTITY (4)
Ano
Certifikát SSL Úplná cesta a název souboru .pem obsahujícího certifikát SSL použitý k prokázání identity klienta.
Chcete-li zadat privátní klíč pro šifrování tohoto certifikátu před jeho odesláním na server, použijte SSLKey vlastnost.
Ano, pokud používáte dvoucestné ověřování SSL.
SslKey Úplná cesta a název souboru obsahujícího privátní klíč používaný k šifrování certifikátu na straně klienta během dvoucestného ověřování SSL. Ano, pokud používáte dvoucestné ověřování SSL.
useSystemTrustStore Tato možnost určuje, jestli se má použít certifikát certifikační autority z úložiště důvěryhodnosti systému nebo ze zadaného souboru PEM. Např. UseSystemTrustStore=<0/1>
Možnosti: Povoleno (1) / Zakázáno (0) (výchozí)
No

Příklad:

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

Vlastnosti datové sady

Úplný seznam oddílů a vlastností dostupných pro definování datových sad najdete v článku o datových sadách . Tato část obsahuje seznam vlastností podporovaných datovou sadou MySQL.

Pokud chcete kopírovat data z MySQL, podporují se následující vlastnosti:

Vlastnost Popis Povinní účastníci
type Vlastnost typu datové sady musí být nastavená na: MySqlTable. Ano
tableName Název tabulky v databázi MySQL Ne (pokud je zadán dotaz ve zdroji aktivity)

Příklad

{
    "name": "MySQLDataset",
    "properties":
    {
        "type": "MySqlTable",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<MySQL linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Pokud jste používali RelationalTable zadaná datová sada, je stále podporovaná tak, jak je, zatímco se navrhuje, abyste mohli použít novou datovou sadu.

Vlastnosti aktivity kopírování

Úplný seznam oddílů a vlastností dostupných pro definování aktivit najdete v článku Pipelines . Tato část obsahuje seznam vlastností podporovaných zdrojem MySQL.

MySQL jako zdroj

Pokud chcete kopírovat data z MySQL, podporují se v části zdroje aktivity kopírování následující vlastnosti:

Vlastnost Popis Povinní účastníci
type Vlastnost typu zdroje aktivity kopírování musí být nastavená na: MySqlSource. Ano
query Ke čtení dat použijte vlastní dotaz SQL. Například: "SELECT * FROM MyTable". Ne (pokud je v datové sadě zadán název tabulky)

Příklad:

"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>"
            }
        }
    }
]

Pokud jste používali RelationalSource typovaný zdroj, je stále podporovaný tak, jak je, zatímco se navrhuje používat nový zdroj.

Mapování datových typů pro MySQL

Při kopírování dat z MySQL se z datových typů MySQL používají následující mapování k dočasným datovým typům používaným službou interně. Informace o tom, jak aktivita kopírování mapuje zdrojové schéma a datový typ na jímku, najdete v mapování schématu schématu a datového typu schématu schématu a datového typu.

Datový typ MySQL Dočasný datový typ služby Dočasný datový typ služby (pro starší verzi ovladače)
bigint Int64 Int64
bigint unsigned Decimal Decimal
bit(1) UInt64 Boolean
bit(M), M>1 UInt64 Byte[]
blob Byte[] Byte[]
bool Boolean
(Pokud TreatTinyAsBoolean=false, je mapován jako SByte. TreatTinyAsBoolean je ve výchozím nastavení true )
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) je mapován na Boolean)
Int16
tinyint unsigned Int16 Int16
tinytext String String
varchar String String
year Int Int

Vlastnosti aktivity vyhledávání

Podrobnosti o vlastnostech najdete v aktivitě Vyhledávání.

Upgrade konektoru MySQL

Tady jsou kroky, které vám pomůžou s upgradem konektoru MySQL:

  1. Na stránce Upravit propojenou službu vyberte Doporučené v části Verze ovladače a nakonfigurujte propojenou službu odkazem na vlastnosti propojené služby.

  2. Mapování datových typů pro nejnovější propojenou službu MySQL se liší od mapování datového typu pro starší verzi. Informace o nejnovějším mapování datových typů najdete v tématu Mapování datových typů pro MySQL.

  3. Nejnovější verze ovladače v2 podporuje více verzí MySQL. Další informace najdete v tématu Podporované možnosti.

Tato část představuje osvědčené postupy pro doporučenou verzi konektoru MySQL.

Nejde načíst klíč SSL

  • Příznaky: Pokud jako vlastnost připojení používáte doporučenou verzi konektoru MySQL s klíčem SSL, může se zobrazit následující chybová zpráva: Could not load the client key from your_pem_file: Unrecognized PEM header: -----BEGIN PRIVATE KEY-----

  • Příčina: Doporučená verze nemůže dešifrovat formát PCKS#8.

  • Doporučení: Převeďte formát PEM na PCKS#1.

Následující tabulka ukazuje rozdíly v mapování datových typů mezi MySQL s využitím doporučené a starší verze ovladače.

Datový typ MySQL Dočasný datový typ služby (s použitím doporučené verze ovladače) Dočasný datový typ služby (s použitím starší verze ovladače)
bit(1) UInt64 Logická hodnota
bit(M), M>1 UInt64 Bajt[]
bool Logická hodnota Int16
JSON String Bajt[]

Seznam úložišť dat podporovaných jako zdroje a jímky aktivitou kopírování najdete v podporovaných úložištích dat.