Kopírování a transformace dat ve službě Azure Database for 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 nebo Synapse Analytics kopírovat data z a do Služby Azure Database for MySQL a pomocí Tok dat transformovat data ve službě Azure Database for MySQL. Další informace najdete v úvodních článcích pro Azure Data Factory a Synapse Analytics.
Tento konektor je specializovaný pro
Pokud chcete kopírovat data z obecné databáze MySQL umístěné místně nebo v cloudu, použijte konektor MySQL.
Požadavky
Tento rychlý start vyžaduje následující prostředky a konfiguraci uvedené níže jako výchozí bod:
- Existující jednoúčelový server Azure database for MySQL nebo flexibilní server MySQL s veřejným přístupem nebo privátním koncovým bodem.
- Povolit veřejný přístup z libovolné služby Azure v rámci Azure na tomto serveru na stránce sítě serveru MySQL . To vám umožní používat Data Factory Studio.
Podporované funkce
Tento konektor Azure Database for MySQL je podporovaný pro následující funkce:
Podporované funkce | IR | Spravovaný privátní koncový bod |
---|---|---|
aktivita Copy (zdroj/jímka) | (1) (2) | ✓ |
Mapování toku dat (zdroj/jímka) | (1) | ✓ |
Aktivita Lookup | (1) (2) | ✓ |
(1) Prostředí Azure Integration Runtime (2) Místní prostředí Integration Runtime
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 se službou Azure Database for MySQL pomocí uživatelského rozhraní
Pomocí následujícího postupu vytvořte propojenou službu se službou Azure Database for 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 Azure Database for 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 Azure Database for MySQL.
Vlastnosti propojené služby
Propojená služba Azure Database for MySQL podporuje následující vlastnosti:
Vlastnost | Popis | Povinní účastníci |
---|---|---|
type | Vlastnost typu musí být nastavená na: AzureMySql. | 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. Můžete použít prostředí Azure Integration Runtime nebo místní prostředí Integration Runtime (pokud je vaše úložiště dat umístěné v privátní síti). Pokud není zadaný, použije výchozí prostředí Azure Integration Runtime. | No |
Typický připojovací řetězec je Server=<server>.mysql.database.azure.com;Port=<port>;Database=<database>;UID=<username>;PWD=<password>
. Další vlastnosti, které můžete nastavit pro váš případ:
Vlastnost | Popis | Možnosti | Požaduje se |
---|---|---|---|
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> |
DISABLED (0) / PREFERRED (1) (Výchozí) / POVINNÉ (2) / VERIFY_CA (3) / VERIFY_IDENTITY (4) | No |
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>; |
Povoleno (1) / Zakázáno (0) (výchozí) | No |
Příklad:
{
"name": "AzureDatabaseForMySQLLinkedService",
"properties": {
"type": "AzureMySql",
"typeProperties": {
"connectionString": "Server=<server>.mysql.database.azure.com;Port=<port>;Database=<database>;UID=<username>;PWD=<password>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Příklad: Uložení hesla ve službě Azure Key Vault
{
"name": "AzureDatabaseForMySQLLinkedService",
"properties": {
"type": "AzureMySql",
"typeProperties": {
"connectionString": "Server=<server>.mysql.database.azure.com;Port=<port>;Database=<database>;UID=<username>;",
"password": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
}
},
"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 Azure Database for MySQL.
Pokud chcete kopírovat data z Azure Database for MySQL, nastavte vlastnost typu datové sady na AzureMySqlTable. Podporují se následující vlastnosti:
Vlastnost | Popis | Povinní účastníci |
---|---|---|
type | Vlastnost typu datové sady musí být nastavená na: AzureMySqlTable. | Ano |
tableName | Název tabulky v databázi MySQL | Ne (pokud je zadán dotaz ve zdroji aktivity) |
Příklad
{
"name": "AzureMySQLDataset",
"properties": {
"type": "AzureMySqlTable",
"linkedServiceName": {
"referenceName": "<Azure MySQL linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"tableName": "<table name>"
}
}
}
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 a jímkou Azure Database for MySQL.
Azure Database for MySQL jako zdroj
Pokud chcete kopírovat data ze služby Azure Database for 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: AzureMySqlSource. | 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) |
queryCommandTimeout | Doba čekání před vypršením časového limitu požadavku dotazu. Výchozí hodnota je 120 minut (02:00:00) | No |
Příklad:
"activities":[
{
"name": "CopyFromAzureDatabaseForMySQL",
"type": "Copy",
"inputs": [
{
"referenceName": "<Azure MySQL input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "AzureMySqlSource",
"query": "<custom query e.g. SELECT * FROM MyTable>"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Azure Database for MySQL jako jímka
Pokud chcete zkopírovat data do služby Azure Database for MySQL, podporují se v části jímky aktivity kopírování následující vlastnosti:
Vlastnost | Popis | Povinní účastníci |
---|---|---|
type | Vlastnost typu jímky aktivity kopírování musí být nastavená na: AzureMySqlSink. | Ano |
preCopyScript | Zadejte dotaz SQL pro aktivitu kopírování, který se má provést před zápisem dat do služby Azure Database for MySQL v každém spuštění. Tuto vlastnost můžete použít k vyčištění předem načtených dat. | No |
writeBatchSize | Vloží data do tabulky Azure Database for MySQL, když velikost vyrovnávací paměti dosáhne writeBatchSize. Povolená hodnota je celé číslo představující počet řádků. |
Ne (výchozí hodnota je 10 000) |
writeBatchTimeout | Počkejte, než se operace dávkového vložení dokončí, než vyprší časový limit. Povolené hodnoty jsou časový rozsah. Příklad je 00:30:00 (30 minut). |
Ne (výchozí hodnota je 00:00:30) |
Příklad:
"activities":[
{
"name": "CopyToAzureDatabaseForMySQL",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<Azure MySQL output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "AzureMySqlSink",
"preCopyScript": "<custom SQL script>",
"writeBatchSize": 100000
}
}
}
]
Mapování vlastností toku dat
Při transformaci dat při mapování toku dat můžete číst a zapisovat do tabulek ze služby Azure Database for MySQL. Další informace najdete v tématu transformace zdroje a transformace jímky v mapování toků dat. Jako typ zdroje a jímky můžete použít datovou sadu Azure Database for MySQL nebo vloženou datovou sadu .
Transformace zdroje
Následující tabulka uvádí vlastnosti podporované zdrojem Azure Database for MySQL. Tyto vlastnosti můžete upravit na kartě Možnosti zdroje.
Název | Popis | Povinní účastníci | Povolené hodnoty | Vlastnost skriptu toku dat |
---|---|---|---|---|
Table | Pokud jako vstup vyberete tabulku, tok dat načte všechna data z tabulky zadané v datové sadě. | No | - | (pouze pro vloženou datovou sadu) tableName |
Dotaz | Pokud jako vstup vyberete Dotaz, zadejte dotaz SQL pro načtení dat ze zdroje, který přepíše jakoukoli tabulku, kterou zadáte v datové sadě. Použití dotazů je skvělý způsob, jak snížit počet řádků pro testování nebo vyhledávání. Klauzule Order By není podporovaná, ale můžete nastavit úplný příkaz SELECT FROM. Můžete také použít uživatelem definované funkce tabulek. select * from udfGetData() je UDF v SQL, která vrací tabulku, kterou můžete použít v toku dat. Příklad dotazu: select * from mytable where customerId > 1000 and customerId < 2000 nebo select * from "MyTable" . |
No | String | query |
Uložená procedura | Pokud jako vstup vyberete Uložená procedura, zadejte název uložené procedury pro čtení dat ze zdrojové tabulky nebo vyberte Aktualizovat a požádejte službu o zjištění názvů procedur. | Ano (pokud jako vstup vyberete uloženou proceduru) | String | procedureName |
Parametry procedury | Pokud jako vstup vyberete Uložená procedura, zadejte všechny vstupní parametry pro uloženou proceduru v pořadí nastaveném v rámci procedury, nebo vyberte importovat všechny parametry procedury pomocí formuláře @paraName . |
No | Pole | vstupy |
Velikost dávky | Zadejte velikost dávky pro rozdělení velkých dat do dávek. | No | Celé číslo | batchSize |
Úroveň izolace | Zvolte jednu z následujících úrovní izolace: - Přečteno potvrzeno – Nepotvrzené čtení (výchozí) - Opakovatelné čtení -Serializovatelný – Žádné (ignorovat úroveň izolace) |
No | READ_COMMITTED READ_UNCOMMITTED REPEATABLE_READ SERIALIZOVATELNÝ ŽÁDNÝ |
isolationLevel |
Příklad zdrojového skriptu Azure Database for MySQL
Pokud jako typ zdroje použijete Azure Database for MySQL, přidružený skript toku dat:
source(allowSchemaDrift: true,
validateSchema: false,
isolationLevel: 'READ_UNCOMMITTED',
query: 'select * from mytable',
format: 'query') ~> AzureMySQLSource
Transformace jímky
Následující tabulka uvádí vlastnosti podporované jímkou Azure Database for MySQL. Tyto vlastnosti můžete upravit na kartě Možnosti jímky.
Název | Popis | Povinní účastníci | Povolené hodnoty | Vlastnost skriptu toku dat |
---|---|---|---|---|
Metoda aktualizace | Určete, jaké operace jsou povolené v cíli databáze. Výchozí hodnota je povolit pouze vkládání. Pokud chcete aktualizovat, upsertovat nebo odstranit řádky, je k označení řádků pro tyto akce potřeba transformace alter řádku. |
Ano | true nebo false |
s možností odsud vložitelné aktualizovatelné upsertable |
Klíčové sloupce | U aktualizací, upsertů a odstranění je nutné nastavit klíčové sloupce, aby bylo možné určit, který řádek se má změnit. Název sloupce, který vyberete jako klíč, se použije jako součást následné aktualizace, upsertu a odstranění. Proto je nutné vybrat sloupec, který existuje v mapování jímky. |
No | Pole | keys |
Přeskočení psaní klíčových sloupců | Pokud chcete hodnotu nezapsat do klíčového sloupce, vyberte Přeskočit psaní klíčových sloupců. | No | true nebo false |
skipKeyWrites |
Akce tabulky | Určuje, zda se mají před zápisem znovu vytvořit nebo odebrat všechny řádky z cílové tabulky. - Žádné: V tabulce se neprovede žádná akce. - Znovu vytvořte: Tabulka se přehodí a znovu vytvoří. Vyžaduje se při dynamickém vytváření nové tabulky. - Zkrácení: Odeberou se všechny řádky z cílové tabulky. |
No | true nebo false |
obnovit truncate |
Velikost dávky | Určete, kolik řádků se zapisuje v každé dávce. Větší velikosti dávek zlepšují kompresi a optimalizaci paměti, ale při ukládání dat do mezipaměti riskují výjimky z paměti. | No | Celé číslo | batchSize |
Skripty pre a post SQL | Zadejte víceřádkové skripty SQL, které se spustí před (předzpracování) a po (po zpracování) dat zapisují do databáze jímky. | No | String | předsqls postSQLs |
Tip
- Doporučujeme rozdělit jednotlivé dávkové skripty několika příkazy do několika dávek.
- Jako součást dávky je možné spustit pouze příkazy DDL (Data Definition Language) a DML (Data Manipulation Language), které vracejí jednoduchý počet aktualizací. Další informace o provádění dávkových operací
Povolit přírůstkový extrahování: Pomocí této možnosti můžete službě ADF sdělit, aby zpracovávaly pouze řádky, které se od posledního spuštění kanálu změnily.
Přírůstkový sloupec: Při použití funkce přírůstkového extrakce musíte zvolit sloupec data a času nebo číselného sloupce, který chcete použít jako vodoznak ve zdrojové tabulce.
Začněte číst od začátku: Nastavení této možnosti přírůstkovým extrahováním dá ADF pokyn ke čtení všech řádků při prvním spuštění kanálu se zapnutým přírůstkovým extrahováním.
Ukázkový skript jímky Azure Database for MySQL
Pokud jako typ jímky použijete Azure Database for MySQL, přidružený skript toku dat:
IncomingStream sink(allowSchemaDrift: true,
validateSchema: false,
deletable:false,
insertable:true,
updateable:true,
upsertable:true,
keys:['keyColumn'],
format: 'table',
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> AzureMySQLSink
Vlastnosti aktivity vyhledávání
Podrobnosti o vlastnostech najdete v aktivitě Vyhledávání.
Mapování datových typů pro Službu Azure Database for MySQL
Při kopírování dat ze služby Azure Database for 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 interně v rámci služby. 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 Azure Database for MySQL | Dočasný datový typ služby |
---|---|
bigint |
Int64 |
bigint unsigned |
Decimal |
bit |
Boolean |
bit(M), M>1 |
Byte[] |
blob |
Byte[] |
bool |
Int16 |
char |
String |
date |
Datetime |
datetime |
Datetime |
decimal |
Decimal, String |
double |
Double |
double precision |
Double |
enum |
String |
float |
Single |
int |
Int32 |
int unsigned |
Int64 |
integer |
Int32 |
integer unsigned |
Int64 |
long varbinary |
Byte[] |
long varchar |
String |
longblob |
Byte[] |
longtext |
String |
mediumblob |
Byte[] |
mediumint |
Int32 |
mediumint unsigned |
Int64 |
mediumtext |
String |
numeric |
Decimal |
real |
Double |
set |
String |
smallint |
Int16 |
smallint unsigned |
Int32 |
text |
String |
time |
TimeSpan |
timestamp |
Datetime |
tinyblob |
Byte[] |
tinyint |
Int16 |
tinyint unsigned |
Int16 |
tinytext |
String |
varchar |
String |
year |
Int32 |
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.