Nagyméretű adatmásolási folyamatok létrehozása metaadat-alapú megközelítéssel a másolási adateszközben

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!

Ha nagy mennyiségű objektumot (például több ezer táblát) szeretne másolni, vagy nagy mennyiségű forrásból szeretne adatokat betölteni, a megfelelő módszer az objektumok névlistájának bevitele a vezérlőtáblában a szükséges másolási viselkedéssel, majd paraméteres folyamatok használatával olvassa be ugyanezt a vezérlőtáblából, és alkalmazza őket a feladatokra ennek megfelelően. Ezzel fenntarthatja (például hozzáadhatja/eltávolíthatja) az objektumok listáját, amelyeket egyszerűen másolhat úgy, hogy egyszerűen frissíti a vezérlőtáblában lévő objektumneveket a folyamatok ismételt üzembe helyezése helyett. Ráadásul egyetlen helyen is könnyen ellenőrizheti, hogy mely folyamatok/eseményindítók milyen objektumokat másoltak át meghatározott másolási viselkedéssel.

Az adatmásolási eszköz az ADF-ben megkönnyíti az ilyen metaadatalapú adatmásolási folyamatok létrehozásának folyamatát. Miután végighaladt egy varázslóalapú intuitív folyamaton, az eszköz paraméteres folyamatokat és SQL-szkripteket hozhat létre a külső vezérlőtáblák megfelelő létrehozásához. Miután futtatta a létrehozott szkripteket, hogy létrehozzák a vezérlőtáblát az SQL-adatbázisban, a folyamatok felolvassák a metaadatokat a vezérlőtáblából, és automatikusan alkalmazzák őket a másolási feladatokra.

Metaadat-alapú másolási feladatok létrehozása az adatmásolási eszközből

  1. Válassza ki a metaadat-alapú másolási feladatot az adatmásolási eszközben.

    Meg kell adnia a vezérlőtábla kapcsolatát és táblanevét, hogy a létrehozott folyamat ebből olvassa be a metaadatokat.

    Select task type

  2. Adja meg a forrásadatbázis kapcsolatát. A paraméteres társított szolgáltatást is használhatja.

    Select parameterized linked service

  3. Válassza ki a másolni kívánt táblanevet .

    Select table

    Megjegyzés:

    Ha a táblázatos adattárat választja, a következő lapon lehetősége lesz a teljes terhelés vagy a változásbetöltés további kiválasztására. Ha a tárterületet választja, a teljes terhelést csak a következő lapon választhatja ki. Az új fájlok növekményes betöltése jelenleg nem támogatott.

  4. Válassza ki a betöltési viselkedést.

    Tipp.

    Ha az összes táblán teljes másolatot szeretne készíteni, válassza a Teljes betöltés az összes táblát lehetőséget. Ha növekményes másolást szeretne végezni, az egyes táblák konfigurálását külön-külön választhatja ki, és az egyes táblákhoz a Delta terhelést, valamint a vízjel oszlopnév > értéket választva indulhat el.

  5. Válassza a Céladattár lehetőséget.

  6. A Gépház lapon eldöntheti, hogy hány másolási tevékenységgel másoljon adatokat egyidejűleg a forrástárból az egyidejű másolási feladatok száma segítségével. Az alapértelmezett érték 20.

    Settings page

  7. A folyamat üzembe helyezése után átmásolhatja vagy letöltheti az SQL-szkripteket a felhasználói felületről a vezérlőtábla és a tárolási eljárás létrehozásához.

    Download scripts

    Két SQL-szkript jelenik meg.

    • Az első SQL-szkript két vezérlőtáblát hoz létre. A fő vezérlőtábla tárolja a táblázatlistát, a fájl elérési útját vagy a másolási viselkedést. A kapcsolatvezérlő tábla az adattár kapcsolati értékét tárolja, ha paraméteres társított szolgáltatást használt.
    • A második SQL-szkript egy tárolási eljárás létrehozásához használható. A fő vezérlőtábla vízjelértékének frissítésére szolgál, amikor a növekményes másolási feladatok minden alkalommal befejeződnek.
  8. Nyissa meg az SSMS-t a vezérlőtábla-kiszolgálóhoz való csatlakozáshoz, és futtassa a két SQL-szkriptet a vezérlőtáblák létrehozásához és az eljárás tárolásához.

    Create control table script

  9. A fő vezérlőtábla és a kapcsolatvezérlő tábla lekérdezésével áttekintheti a benne lévő metaadatokat.

    Fő vezérlőtáblaQuery control table script1

    Csatlakozás ion vezérlőtáblaQuery control table script2

  10. Térjen vissza az ADF portálra a folyamatok megtekintéséhez és hibakereséséhez. Megjelenik egy mappa, amely a "MetadataDrivenCopyTask_######" elnevezéssel jön létre. Kattintson a folyamat elnevezésére a "MetadataDrivenCopyTask###_TopLevel" kifejezéssel, és kattintson a hibakeresési futtatásra.

    A következő paramétereket kell megadnia:

    Paraméterek neve Leírás
    MaxNumberOfConcurrentTasks A folyamat futtatása előtt mindig módosíthatja az egyidejű másolási tevékenységek maximális számát. Az alapértelmezett érték lesz az, amit a másolási adateszközben ad meg.
    MainControlTableName A fő vezérlőtábla nevét bármikor módosíthatja, így a folyamat a futtatás előtt lekéri a metaadatokat a táblából.
    Csatlakozás ionControlTableName A kapcsolatvezérlő tábla nevét bármikor módosíthatja (nem kötelező), így a folyamat futtatás előtt lekéri az adattárkapcsolathoz kapcsolódó metaadatokat.
    MaxNumberOfObjectsReturnedFromLookupActivity Annak érdekében, hogy ne érje el a kimeneti keresési tevékenység korlátját, megadhatja a keresési tevékenység által visszaadott objektumok maximális számát. A legtöbb esetben az alapértelmezett értéket nem kell módosítani.
    windowStart Ha dinamikus értéket (például yyyy/mm/dd) ad meg mappa elérési útjaként, a paraméter a dinamikus mappa elérési útjának kitöltéséhez az aktuális triggeridőt adja át a folyamatnak. Ha a folyamatot ütemezési eseményindító vagy a windowsos eseményindító aktiválja, a felhasználóknak nem kell megadniuk ennek a paraméternek az értékét. Mintaérték: 2021-01-25T01:49:28Z
  11. Engedélyezze az eseményindítót a folyamatok üzembe helyezéséhez.

    Enable trigger

Vezérlőtábla frissítése adatmásoló eszközzel

A vezérlőtáblát bármikor közvetlenül frissítheti a másolandó objektum hozzáadásával vagy eltávolításával, illetve az egyes táblák másolási viselkedésének módosításával. Felhasználói felületet is létrehozunk a másolási adateszközben, hogy megkönnyítsük a vezérlőtábla szerkesztésének menetét.

  1. Kattintson a jobb gombbal a legfelső szintű folyamatra: MetadataDrivenCopyTask_xxx_TopLevel, majd válassza a Vezérlőtábla szerkesztése parancsot.

    Edit control table1

  2. Jelölje ki a szerkeszteni kívánt sorokat a vezérlőtáblából.

    Edit control table2

  3. Haladjon át a másolási adateszközön, és egy új SQL-szkripttel fog előállni. Futtassa újra az SQL-szkriptet a vezérlőtábla frissítéséhez.

    Edit control table3

    Megjegyzés:

    A folyamat NEM lesz újra üzembe helyezésre. Az új létrehozott SQL-szkript segítségével csak a vezérlőtáblát frissítheti.

Vezérlőtáblák

Fő vezérlőtábla

A vezérlőtábla minden sora tartalmazza a másolandó objektumok (például egy tábla) metaadatait.

Column name Leírás
Azonosító A másolandó objektum egyedi azonosítója.
SourceObject Gépház A forrásadatkészlet metaadatai. Lehet sémanév, táblanév stb. Íme egy példa.
Forrás Csatlakozás ion Gépház Name A forráskapcsolat-beállítás neve a kapcsolatvezérlő táblában. Nem kötelező.
CopySource Gépház A másolási tevékenység forrástulajdonságának metaadatai. Ez lehet lekérdezés, partíciók stb. Íme egy példa.
SinkObject Gépház A céladatkészlet metaadatai. Lehet fájlnév, mappa elérési útja, táblanév stb. Íme egy példa. Ha a dinamikus mappa elérési útja meg van adva, a változó értéke nem lesz itt megírva a vezérlőtáblában.
Fogadó Csatlakozás ion Gépház Name A célkapcsolat-beállítás neve a kapcsolatvezérlő táblában. Nem kötelező.
CopySink Gépház A másolási tevékenység fogadó tulajdonságának metaadatai. Lehet preCopyScript, tableOption stb. Íme egy példa.
CopyActivity Gépház A translator tulajdonság metaadatai másolási tevékenységben. Az oszlopleképezés definiálására szolgál.
TopLevelPipelineName A legfelső folyamat neve, amely átmásolhatja ezt az objektumot.
TriggerName Eseményindító neve, amely aktiválhatja a folyamatot az objektum másolásához. Hibakeresési futtatás esetén a név tesztkörnyezet. Manuális végrehajtás esetén a név manuális. Ütemezett futtatás esetén a név a társított eseményindító neve. Több nevet is megadhat.
DataLoadingBehavior Gépház Teljes terhelés és különbözeti terhelés.
TaskId A vezérlőtáblában (ORDER BY [TaskId] DESC) található TaskId alapján másolandó objektumok sorrendje. Ha nagy mennyiségű objektumot szeretne másolni, de csak a másolt példányok száma korlátozott, módosíthatja az egyes objektumok TaskId azonosítóját, hogy eldöntse, mely objektumokat lehet korábban másolni. The default value is 0.
CopyEnabled Adja meg, hogy az elem engedélyezve van-e az adatbetöltési folyamatban. Engedélyezett értékek: 1 (engedélyezve), 0 (letiltva). Az alapértelmezett érték 1.

Csatlakozás ion vezérlőtábla

A vezérlőtábla minden sora egyetlen kapcsolatbeállítást tartalmaz az adattárhoz.

Column name Leírás
Név A paraméteres kapcsolat neve a fő vezérlőtáblában.
Csatlakozás ion Gépház A kapcsolat beállításai. Lehet adatbázisnév, kiszolgálónév stb.

Pipelines

Három folyamatszintet fog látni a másolási adateszköz.

MetadataDrivenCopyTask_xxx_TopLevel

Ez a folyamat kiszámítja a futtatás során másolandó objektumok (táblák stb.) teljes számát, kiszámítja a szekvenciális kötegek számát a maximális egyidejű másolási feladat alapján, majd végrehajt egy másik folyamatot a különböző kötegek egymás utáni másolásához.

Parameters

Paraméterek neve Leírás
MaxNumberOfConcurrentTasks A folyamat futtatása előtt mindig módosíthatja az egyidejű másolási tevékenységek maximális számát. Az alapértelmezett érték lesz az, amit a másolási adateszközben ad meg.
MainControlTableName A fő vezérlőtábla táblaneve. A folyamat a futtatás előtt lekéri a metaadatokat ebből a táblából
Csatlakozás ionControlTableName A kapcsolatvezérlő tábla táblaneve (nem kötelező). A folyamat a futtatás előtt lekéri az adattárkapcsolathoz kapcsolódó metaadatokat
MaxNumberOfObjectsReturnedFromLookupActivity Annak érdekében, hogy ne érje el a kimeneti keresési tevékenység korlátját, megadhatja a keresési tevékenység által visszaadott objektumok maximális számát. A legtöbb esetben az alapértelmezett értéket nem kell módosítani.
windowStart Ha dinamikus értéket (például yyyy/mm/dd) ad meg mappa elérési útjaként, a paraméter a dinamikus mappa elérési útjának kitöltéséhez az aktuális triggeridőt adja át a folyamatnak. Ha a folyamatot ütemezési eseményindító vagy a windowsos eseményindító aktiválja, a felhasználóknak nem kell megadniuk ennek a paraméternek az értékét. Mintaérték: 2021-01-25T01:49:28Z

Tevékenységek

Tevékenység neve Tevékenység típusa Leírás
GetSumOfObjectsToCopy Lookup Számítsa ki az ebben a futtatásban másolandó objektumok (táblák stb.) teljes számát.
CopyBatchesOfObjectsSequentially ForEach Adja meg a szekvenciális kötegek számát a maximálisan engedélyezett egyidejű másolási feladatok alapján, majd hajtsa végre a különböző kötegek egymást követő másolásához egy másik folyamatot.
CopyObjectsInOneBtach Folyamat végrehajtása Egy másik folyamat végrehajtása egy objektumköteg másolásához. A köteghez tartozó objektumok másolása párhuzamosan fog folytatódni.

középszintű MetadataDrivenCopyTask_xxx_

Ez a folyamat egy objektumköteget másol. A köteghez tartozó objektumok másolása párhuzamosan fog folytatódni.

Parameters

Paraméterek neve Leírás
MaxNumberOfObjectsReturnedFromLookupActivity Annak érdekében, hogy ne érje el a kimeneti keresési tevékenység korlátját, megadhatja a keresési tevékenység által visszaadott objektumok maximális számát. A legtöbb esetben az alapértelmezett értéket nem kell módosítani.
TopLevelPipelineName A legfelső rétegbeli folyamat neve.
TriggerName Az eseményindító neve.
CurrentSequentialNumberOfBatch A szekvenciális köteg azonosítója.
SumOfObjectsToCopy A másolandó objektumok teljes száma.
SumOfObjectsToCopyForCurrentBatch Az aktuális kötegben másolandó objektumok száma.
MainControlTableName A fő vezérlőtábla neve.
Csatlakozás ionControlTableName A kapcsolatvezérlő tábla neve.

Tevékenységek

Tevékenység neve Tevékenység típusa Leírás
DivideOneBatchIntoMultipleGroups ForEach Az objektumok egy kötegből több párhuzamos csoportra oszthatók, hogy ne érjék el a keresési tevékenység kimeneti korlátját.
GetObjectsPerGroupToCopy Lookup Objektumokat (táblákat stb.) kérhet le a csoportba másolandó vezérlőtáblából. A vezérlőtáblában (ORDER BY [TaskId] DESC) található TaskId alapján másolandó objektumok sorrendje.
CopyObjectsInOneGroup Folyamat végrehajtása Egy másik folyamat végrehajtása objektumok másolásához egy csoportból. A csoporthoz tartozó objektumok másolása párhuzamosan fog folytatódni.

MetadataDrivenCopyTask_xxx_ BottomLevel

Ez a folyamat egy csoportból másolja az objektumokat. A csoporthoz tartozó objektumok másolása párhuzamosan fog folytatódni.

Parameters

Paraméterek neve Leírás
ObjectsPerGroupToCopy Az aktuális csoportban másolandó objektumok száma.
Csatlakozás ionControlTableName A kapcsolatvezérlő tábla neve.
windowStart A folyamat aktuális triggeridejének átengedésére szolgál, hogy kitöltse a dinamikus mappa elérési útját, ha azt a felhasználó konfigurálja.

Tevékenységek

Tevékenység neve Tevékenység típusa Leírás
ListObjectsFromOneGroup ForEach Sorolja fel az objektumokat egy csoportból, és iterálja őket az alsóbb rétegbeli tevékenységekre.
RouteJobsBasedOnLoadingBehavior Switch Ellenőrizze az egyes objektumok betöltési viselkedését. Ha ez az alapértelmezett vagy a Teljes terheléses eset, végezze el a teljes terhelést. DeltaLoad-eset esetén végezze el a növekményes terhelést a vízjel oszlopon keresztül a változások azonosításához
FullLoadOneObject Másolás Készítsen teljes pillanatképet erről az objektumról, és másolja a célhelyre.
DeltaLoadOneObject Másolás Másolja a módosított adatokat csak a legutóbbi időpontból a vízjel oszlopban lévő érték összehasonlításával a változások azonosításához.
GetMaxWatermarkValue Lookup A forrásobjektum lekérdezése a vízjeloszlop maximális értékének lekéréséhez.
UpdateWatermarkColumnValue StoreProcedure Írja vissza az új vízjelértéket a következő alkalommal használni kívánt táblázat vezérléséhez.

Known limitations

  • Az integrációs modul neve, adatbázistípusa és fájlformátuma nem paraméterezhető az ADF-ben. Ha például az Oracle Serverről és az SQL Serverről is szeretne adatokat betöltésre, két különböző paraméteres folyamatra lesz szüksége. Az egyetlen vezérlőtáblát azonban két folyamatcsoport oszthatja meg.
  • Az OPENJSON-t az adatmásoló eszközzel létrehozott SQL-szkriptekben használják. Ha az SQL Servert használja a vezérlőtábla üzemeltetéséhez, annak az SQL Server 2016 -nak (13.x) és újabbnak kell lennie az OPENJSON függvény támogatásához.

Próbálja ki az alábbi oktatóanyagokat, amelyek az Adatok másolása eszközt használják: