Megosztás a következőn keresztül:


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.

    Tevékenységtípus kiválasztása

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

    Paraméteres társított szolgáltatás kiválasztása

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

    Tábla kijelölése

    Feljegyzé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 Beállítások lapon döntheti el, 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.

    Beállítások lap

  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.

    Szkriptek letöltése

    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.

    Vezérlőtábla-szkript létrehozása

  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áblaLekérdezésvezérlő táblaszkript1

    Kapcsolatvezérlő táblaLekérdezésvezérlő táblaszkript2

  10. Térjen vissza az ADF portálra a folyamatok megtekintéséhez és hibakereséséhez. A "MetadataDrivenCopyTask_#########" elnevezéssel létrehozott mappa jelenik meg. 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.
    ConnectionControlTableName 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.

    Eseményindító engedélyezése

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.

    Vezérlőtábla szerkesztése1

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

    Vezérlőtábla szerkesztése2

  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.

    Vezérlőtábla szerkesztése3

    Feljegyzé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.

Oszlop neve Leírás
ID (Azonosító) A másolandó objektum egyedi azonosítója.
SourceObjectSettings A forrásadatkészlet metaadatai. Lehet sémanév, táblanév stb. Íme egy példa.
SourceConnectionSettingsName A forráskapcsolat-beállítás neve a kapcsolatvezérlő táblában. Nem kötelező.
CopySourceSettings 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.
SinkObjectSettings 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.
SinkConnectionSettingsName A célkapcsolat-beállítás neve a kapcsolatvezérlő táblában. Nem kötelező.
CopySinkSettings A másolási tevékenység fogadó tulajdonságának metaadatai. Lehet preCopyScript, tableOption stb. Íme egy példa.
CopyActivitySettings 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.
DataLoadingBehaviorSettings 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. Az alapértelmezett érték 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.

Kapcsolatvezérlő tábla

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

Oszlop neve Leírás
Név A paraméteres kapcsolat neve a fő vezérlőtáblában.
ConnectionSettings 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.

Paraméterek

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
ConnectionControlTableName 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 Keresés 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.

Paraméterek

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.
ConnectionControlTableName 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 Keresés 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.

Paraméterek

Paraméterek neve Leírás
ObjectsPerGroupToCopy Az aktuális csoportban másolandó objektumok száma.
ConnectionControlTableName 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 Keresés 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.

Ismert korlátozások

  • 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: