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:
- Nástroj pro kopírování dat
- Azure Portal
- Sada .NET SDK
- Sada Python SDK
- Azure PowerShell
- Rozhraní REST API
- Šablona Azure Resource Manageru
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.
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ý:
Vyhledejte MySQL a vyberte konektor MySQL.
Nakonfigurujte podrobnosti o službě, otestujte připojení a vytvořte novou propojenou službu.
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 |
Další vlastnosti připojení | ||
allowZeroDateTime | Zadáním této hodnoty vlastnosti lze true z databáze načíst speciální hodnotu 0000-00-00 data nula. Pokud je nastavená hodnota false (výchozí), vrátí se sloupce kalendářních dat jako hodnoty DateTime, což znamená 0000-00-00 , že nelze načíst. MySQL umožňuje uložit "nulovou" hodnotu 0000-00-00 jako "fiktivní datum". V některýchpřípadechch Pokud chcete v MySQL zakázat 0000-00-00 , povolte režim NO_ZERO_DATE . Další informace najdete v tomto článku. |
No |
connectionTimeout | Doba (v sekundách) čekání na připojení k serveru před ukončením pokusu a vygenerováním chyby. | No |
convertZeroDateTime | Nastavte ji tak, aby true vracela hodnotu DateTime.MinValue pro sloupce data nebo data a času, které mají zakázané hodnoty. |
No |
GuidFormat | Určuje, který typ sloupce (pokud existuje) by měl být přečtený jako identifikátor GUID. V tomto článku najdete popis jednotlivých typů sloupců vyhledáním této vlastnosti. Doporučená verze považuje znak (36) ve výchozím nastavení za typ GUID, aby se zlepšil výkon. Konektor zpracovává pole Typu (36) jako identifikátory GUID pro snadnější zpracování databáze. Tato procedura zjednodušuje operace, jako je vkládání, aktualizace a načítání hodnot GUID, a zajišťuje, že se konzistentně spravují jako objekty GUID v kódu aplikace místo prostých řetězců. Toto chování je zvláště užitečné ve scénářích, kdy se identifikátory GUID používají jako primární klíče nebo jedinečné identifikátory a poskytují lepší výkon. Pokud toto výchozí nastavení nepotřebujete, můžete nakonfigurovat guidFormat=none vlastnost připojení. |
No |
sslCert | Cesta k souboru certifikátu SSL klienta ve formátu PEM. Musí být zadán také SslKey. | No |
sslKey | Cesta k privátnímu klíči SSL klienta ve formátu PEM. Musí být také zadán certifikát SslCert. | No |
treatTinyAsBoolean | Při nastavení na hodnotu true se hodnoty tinyint(1) vrátí jako logická hodnota. Nastavení této vlastnosti na false způsobí, že tinyint(1) se vrátí jako SByte/Byte. Doporučená verze ve výchozím nastavení považuje tinyint(1) za logický typ. Další informace najdete v tomto článku. Pokud chcete, aby se spojnice vrátila jako malá jako číselná, nastavte treatTinyAsBoolean=false ve vlastnostech připojení. |
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:
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.
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.
Nejnovější verze ovladače v2 podporuje více verzí MySQL. Další informace najdete v tématu Podporované možnosti.
Doporučená verze konektoru MySQL s osvědčenými postupy
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.
Rozdíly mezi doporučenou a starší verzí ovladače
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[] |
Související obsah
Seznam úložišť dat podporovaných jako zdroje a jímky aktivitou kopírování najdete v podporovaných úložištích dat.