Adatok másolása és átalakítása az Azure Database for MySQL-ben az Azure Data Factory vagy a Synapse Analytics használatával
A következőkre vonatkozik: Azure Data Factory Azure Synapse Analytics
Tipp.
Próbálja ki a Data Factoryt a Microsoft Fabricben, amely egy teljes körű elemzési megoldás a nagyvállalatok számára. A Microsoft Fabric az adattovábbítástól az adatelemzésig, a valós idejű elemzésig, az üzleti intelligenciáig és a jelentéskészítésig mindent lefed. Ismerje meg, hogyan indíthat új próbaverziót ingyenesen!
Ez a cikk bemutatja, hogyan használható a Másolási tevékenység az Azure Data Factoryben vagy a Synapse Analytics-folyamatokban adatok másolására az Azure Database for MySQL-ből és az Azure Database for MySQL-be, és hogyan lehet Adatfolyam az adatok átalakításához az Azure Database for MySQL-ben. További információkért olvassa el az Azure Data Factory és a Synapse Analytics bevezető cikkeit.
Ez az összekötő speciálisan a
Ha a helyszínen vagy a felhőben található általános MySQL-adatbázisból szeretne adatokat másolni, használja a MySQL-összekötőt.
Előfeltételek
Ez a rövid útmutató kiindulópontként az alábbi erőforrásokat és konfigurációt igényli:
- Meglévő Azure-adatbázis önálló mySQL-kiszolgálóhoz vagy rugalmas MySQL-kiszolgálóhoz nyilvános hozzáféréssel vagy privát végponttal.
- Engedélyezze a Nyilvános hozzáférés engedélyezése bármely Azure-szolgáltatásból a kiszolgálóhoz a MySQL-kiszolgáló hálózati oldalán. Ez lehetővé teszi a Data Factory Studio használatát.
Támogatott képességek
Ez az Azure Database for MySQL-összekötő a következő képességeket támogatja:
Támogatott képességek | IR | Managed private endpoint |
---|---|---|
Copy tevékenység (forrás/fogadó) | ① ② | ✓ |
Adatfolyam leképezése (forrás/fogadó) | ① | ✓ |
Keresési tevékenység | ① ② | ✓ |
(1) Azure-integrációs modul (2) Saját üzemeltetésű integrációs modul
Első lépések
A Copy tevékenység folyamattal való végrehajtásához használja az alábbi eszközök vagy SDK-k egyikét:
- Az Adatok másolása eszköz
- The Azure portal
- A .NET SDK
- A Python SDK
- Azure PowerShell
- A REST API
- Az Azure Resource Manager-sablon
Társított szolgáltatás létrehozása az Azure Database for MySQL-hez felhasználói felületen
Az alábbi lépésekkel létrehozhat egy társított szolgáltatást az Azure Database for MySQL-hez az Azure Portal felhasználói felületén.
Keresse meg az Azure Data Factory vagy a Synapse-munkaterület Kezelés lapját, és válassza a Társított szolgáltatások lehetőséget, majd kattintson az Új gombra:
Keresse meg a MySQL-t, és válassza ki az Azure Database for MySQL-összekötőt.
Konfigurálja a szolgáltatás részleteit, tesztelje a kapcsolatot, és hozza létre az új társított szolgáltatást.
Csatlakozás or konfigurációjának részletei
A következő szakaszok az Azure Database for MySQL-összekötőre jellemző Data Factory-entitások meghatározásához használt tulajdonságok részleteit ismertetik.
Társított szolgáltatás tulajdonságai
Az Azure Database for MySQL társított szolgáltatásához a következő tulajdonságok támogatottak:
Property | Leírás | Required |
---|---|---|
típus | A típustulajdonságnak a következőre kell beállítania: AzureMySql | Igen |
connectionString | Adja meg az Azure Database for MySQL-példányhoz való csatlakozáshoz szükséges információkat. Jelszót is elhelyezhet az Azure Key Vaultban, és lekérheti a password konfigurációt a kapcsolati sztring. További részletekért tekintse meg az alábbi példákat és a hitelesítő adatok tárolását az Azure Key Vaultban . |
Igen |
connectVia | Az adattárhoz való csatlakozáshoz használandó integrációs modul . Használhatja az Azure Integration Runtime-ot vagy a saját üzemeltetésű integrációs modult (ha az adattár magánhálózaton található). Ha nincs megadva, az alapértelmezett Azure Integration Runtime-t használja. | Nem |
Egy tipikus kapcsolati sztring a Server=<server>.mysql.database.azure.com;Port=<port>;Database=<database>;UID=<username>;PWD=<password>
. Esetenként további tulajdonságok állíthatók be:
Property | Leírás | Beállítások | Szükséges |
---|---|---|---|
SSLMode | Ez a beállítás azt határozza meg, hogy az illesztőprogram TLS-titkosítást és -ellenőrzést használ-e a MySQL-hez való csatlakozáskor. Pl. SSLMode=<0/1/2/3/4> |
DISABLED (0) / PREFERÁLT (1) (Alapértelmezett) / KÖTELEZŐ (2) / VERIFY_CA (3) / VERIFY_IDENTITY (4) | Nem |
UseSystemTrustStore | Ez a beállítás azt határozza meg, hogy a rendszer megbízhatósági tárolójából vagy egy megadott PEM-fájlból használjon-e hitelesítésszolgáltatói tanúsítványt. Pl. UseSystemTrustStore=<0/1>; |
Engedélyezve (1) / Letiltva (0) (Alapértelmezett) | Nem |
Példa
{
"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élda: jelszó tárolása az Azure Key Vaultban
{
"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"
}
}
}
Adathalmaz tulajdonságai
Az adathalmazok meghatározásához elérhető szakaszok és tulajdonságok teljes listáját az adathalmazokról szóló cikkben találja. Ez a szakasz az Azure Database for MySQL-adatkészlet által támogatott tulajdonságok listáját tartalmazza.
Ha adatokat szeretne másolni az Azure Database for MySQL-ből, állítsa az adathalmaz típustulajdonságát az AzureMySqlTable-ra. A következő tulajdonságok támogatottak:
Property | Leírás | Required |
---|---|---|
típus | Az adathalmaz típustulajdonságának a következőnek kell lennie: AzureMySqlTable | Igen |
tableName | A MySQL-adatbázisban lévő tábla neve. | Nem (ha "lekérdezés" van megadva a tevékenységforrásban) |
Példa
{
"name": "AzureMySQLDataset",
"properties": {
"type": "AzureMySqlTable",
"linkedServiceName": {
"referenceName": "<Azure MySQL linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"tableName": "<table name>"
}
}
}
Másolási tevékenység tulajdonságai
A tevékenységek meghatározásához elérhető szakaszok és tulajdonságok teljes listáját a Folyamatok című cikkben találja. Ez a szakasz az Azure Database for MySQL-forrás és fogadó által támogatott tulajdonságok listáját tartalmazza.
Forrásként az Azure Database for MySQL
Az Adatok másolása az Azure Database for MySQL-ből a másolási tevékenység forrás szakaszában az alábbi tulajdonságokat támogatja:
Property | Leírás | Required |
---|---|---|
típus | A másolási tevékenység forrásának típustulajdonságának a következőnek kell lennie: AzureMySqlSource | Igen |
Lekérdezés | Az adatok olvasásához használja az egyéni SQL-lekérdezést. For example: "SELECT * FROM MyTable" . |
Nem (ha "tableName" van megadva az adathalmazban) |
queryCommandTimeout | A lekérdezéskérés várakozási ideje túllépi az időkorlátot. Az alapértelmezett érték 120 perc (02:00:00) | Nem |
Példa
"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 fogadóként
Ha adatokat szeretne átmásolni az Azure Database for MySQL-be, a másolási tevékenység fogadó szakaszában az alábbi tulajdonságok támogatottak:
Property | Leírás | Required |
---|---|---|
típus | A másolási tevékenység fogadójának típustulajdonságának a következőnek kell lennie: AzureMySqlSink | Igen |
preCopyScript | Adjon meg egy SQL-lekérdezést a futtatandó másolási tevékenységhez, mielőtt adatokat írna az Azure Database for MySQL-be minden futtatás során. Ezzel a tulajdonságkal törölheti az előre betöltött adatokat. | Nem |
writeBatchSize | Adatokat szúr be az Azure Database for MySQL-táblába, amikor a puffer mérete eléri a writeBatchSize értéket. Az engedélyezett érték egész szám, amely a sorok számát jelöli. |
Nem (az alapértelmezett érték 10 000) |
writeBatchTimeout | Várakozási idő, amíg a kötegbeszúrási művelet befejeződik, mielőtt túllépi az időkorlátot. Az engedélyezett értékek időbélyegek. Ilyen például a 00:30:00 (30 perc). |
Nem (az alapértelmezett érték 00:00:30) |
Példa
"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
}
}
}
]
Adatfolyam-tulajdonságok leképezése
A leképezési adatfolyam adatainak átalakításakor az Azure Database for MySQL-ből olvashat és írhat táblákba. További információkért tekintse meg a forrásátalakítást és a fogadóátalakítást a leképezési adatfolyamokban. Választhat, hogy egy Azure Database for MySQL-adatkészletet vagy egy beágyazott adatkészletet használ forrás- és fogadótípusként.
Forrásátalakítás
Az alábbi táblázat az Azure Database for MySQL-forrás által támogatott tulajdonságokat sorolja fel. Ezeket a tulajdonságokat a Forrás beállításai lapon szerkesztheti.
Name | Leírás | Required | Megengedett értékek | Adatfolyam-szkript tulajdonság |
---|---|---|---|---|
Tábla | Ha bemenetként a Táblázat lehetőséget választja, az adatfolyam lekéri az adathalmazban megadott táblából az összes adatot. | Nem | - | (csak beágyazott adathalmaz esetén) tableName |
Query | Ha bemenetként a Lekérdezés lehetőséget választja, adjon meg egy SQL-lekérdezést az adatok forrásból való lekéréséhez, amely felülírja az adathalmazban megadott táblázatokat. A lekérdezések használatával csökkenthetők a tesztelési és keresési sorok. Az Order By záradék nem támogatott, de beállíthat egy teljes Standard kiadás LECT FROM utasítást. Felhasználó által definiált táblafüggvényeket is használhat. A *elemet az udfGetData() egy UDF az SQL-ben, amely egy olyan táblát ad vissza, amelyet az adatfolyamban használhat. Lekérdezési példa: select * from mytable where customerId > 1000 and customerId < 2000 vagy select * from "MyTable" . |
Nem | Sztring | Lekérdezés |
Tárolt eljárás | Ha bemenetként a Tárolt eljárást választja, adja meg a tárolt eljárás nevét, hogy adatokat olvasson be a forrástáblából, vagy a Frissítés lehetőséget választva kérje meg a szolgáltatást az eljárásnevek felderítésére. | Igen (ha a Tárolt eljárást választja bemenetként) | Sztring | procedureName |
Eljárásparaméterek | Ha bemenetként a Tárolt eljárást választja, adja meg a tárolt eljárás bemeneti paramétereit az eljárásban megadott sorrendben, vagy válassza az Importálás lehetőséget az összes eljárásparaméter importálásához az űrlap @paraName használatával. |
Nem | Tömb | Bemenetek |
Köteg mérete | Adjon meg egy kötegméretet, amely nagy méretű adatokat kötegekké alakít. | Nem | Egész | batchSize |
Elkülönítési szint | Válasszon az alábbi elkülönítési szintek közül: - Lekötött olvasás – Nem véglegesített olvasás (alapértelmezett) - Ismételhető olvasás -Szerializálható - Nincs (az elkülönítési szint figyelmen kívül hagyása) |
Nem | READ_COMMITTED READ_UNCOMMITTED REPEATABLE_READ Standard kiadás RIALIZABLE NINCS |
isolationLevel |
Példa az Azure Database for MySQL forrásszkriptre
Ha az Azure Database for MySQL-t használja forrástípusként, a társított adatfolyam-szkript a következő:
source(allowSchemaDrift: true,
validateSchema: false,
isolationLevel: 'READ_UNCOMMITTED',
query: 'select * from mytable',
format: 'query') ~> AzureMySQLSource
Fogadó átalakítása
Az alábbi táblázat az Azure Database for MySQL-fogadó által támogatott tulajdonságokat sorolja fel. Ezeket a tulajdonságokat a Fogadó beállításai lapon szerkesztheti.
Name | Leírás | Required | Megengedett értékek | Adatfolyam-szkript tulajdonság |
---|---|---|---|---|
Frissítési módszer | Adja meg, hogy milyen műveletek engedélyezettek az adatbázis célhelyén. Az alapértelmezett beállítás csak a beszúrások engedélyezése. A sorok frissítéséhez, frissítéséhez vagy törléséhez a sorok címkézéséhez alter sorátalakítás szükséges. |
Igen | true vagy false |
törölhető beszúrható Frissíthető upsertable |
Kulcsoszlopok | Frissítések, upserts és deletes esetén a kulcsoszlop(ok) beállításához meg kell határozni, hogy melyik sort kell módosítani. A kulcsként megadott oszlopnevet a rendszer a következő frissítés, a frissítés, a törlés részeként fogja használni. Ezért ki kell választania egy olyan oszlopot, amely a fogadóleképezésben található. |
Nem | Tömb | keys |
Kulcsoszlopok írásának kihagyása | Ha nem szeretné az értéket a kulcsoszlopba írni, válassza a "Kulcsoszlopok írásának kihagyása" lehetőséget. | Nem | true vagy false |
skipKeyWrites |
Táblaművelet | Meghatározza, hogy az írás előtt újra létre kell-e hozni vagy eltávolítani az összes sort a céltáblából. - Nincs: A rendszer nem hajt végre műveletet a táblán. - Újra: A tábla elvetve és újra létrehozva lesz. Új tábla dinamikus létrehozása esetén kötelező. - Csonkolási: A céltábla összes sora el lesz távolítva. |
Nem | true vagy false |
Újra megcsonkít |
Köteg mérete | Adja meg, hogy hány sor legyen megírva az egyes kötegekben. A nagyobb kötegméretek javítják a tömörítést és a memóriaoptimalizálást, de az adatok gyorsítótárazásakor a memóriakivételek kiesnek. | Nem | Egész | batchSize |
SQL-szkriptek elő- és postálása | Adja meg azokat a többsoros SQL-szkripteket, amelyek a fogadó adatbázisba való írása előtt (előzetes feldolgozás) és (utófeldolgozás) után hajtanak végre. | Nem | Sztring | preSQLs postSQLs |
Tipp.
Növekményes kinyerés engedélyezése: Ezzel a beállítással tudathatja az ADF-sel, hogy csak azokat a sorokat dolgozza fel, amelyek a folyamat legutóbbi végrehajtása óta megváltoztak.
Növekményes oszlop: A növekményes kinyerési funkció használatakor ki kell választania a forrástáblában vízjelként használni kívánt dátum/idő vagy numerikus oszlopot.
Kezdje el az olvasást az elejétől: Ha ezt a beállítást növekményes kivonattal állítja be, az ADF arra utasítja az ADF-et, hogy olvassa be az összes sort egy folyamat első végrehajtásakor, és be van kapcsolva a növekményes kivonat.
Példa az Azure Database for MySQL fogadószkriptre
Ha az Azure Database for MySQL-t használja fogadótípusként, a társított adatfolyam-szkript a következő:
IncomingStream sink(allowSchemaDrift: true,
validateSchema: false,
deletable:false,
insertable:true,
updateable:true,
upsertable:true,
keys:['keyColumn'],
format: 'table',
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> AzureMySQLSink
Keresési tevékenység tulajdonságai
A tulajdonságok részleteinek megismeréséhez tekintse meg a keresési tevékenységet.
Adattípus-leképezés az Azure Database for MySQL-hez
Az adatok Azure Database for MySQL-ből való másolásakor a mySQL-adattípusoktól a szolgáltatáson belül használt köztes adattípusokig az alábbi leképezéseket használja a rendszer. A séma- és adattípus-leképezések segítségével megtudhatja , hogy a másolási tevékenység hogyan rendeli le a forrásséma és az adattípust a fogadóhoz.
Azure Database for MySQL-adattípus | Köztes szolgáltatás adattípusa |
---|---|
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 |
Kapcsolódó tartalom
A másolási tevékenység által forrásként és fogadóként támogatott adattárak listáját a támogatott adattárakban találja.