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:

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.

  1. 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:

  2. Keresse meg a MySQL-t, és válassza ki az Azure Database for MySQL-összekötőt.

    Select the Azure Database for MySQL connector.

  3. Konfigurálja a szolgáltatás részleteit, tesztelje a kapcsolatot, és hozza létre az új társított szolgáltatást.

    Configure a linked service to Azure Database for MySQL.

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 @paraNamehaszná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.

  1. Ajánlott több parancsot tartalmazó kötegszkripteket több kötegre bontani.
  2. A köteg részeként csak a data definition language (DDL) és az adatmanipulációs nyelv (DML) utasítások futtathatók, amelyek egyszerű frissítésszámot adnak vissza. További információ a kötegműveletek végrehajtásáról
  • 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

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.