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
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.
Adja meg a forrásadatbázis kapcsolatát. A paraméteres társított szolgáltatást is használhatja.
Válassza ki a másolni kívánt táblanevet .
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.
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.
Válassza a Céladattár lehetőséget.
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.
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.
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.
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.
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ábla
Kapcsolatvezérlő tábla
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 Engedélyezze az eseményindítót a folyamatok üzembe helyezéséhez.
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.
Kattintson a jobb gombbal a legfelső szintű folyamatra: MetadataDrivenCopyTask_xxx_TopLevel, majd válassza a Vezérlőtábla szerkesztése parancsot.
Jelölje ki a szerkeszteni kívánt sorokat a vezérlőtáblából.
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.
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.
Kapcsolódó tartalom
Próbálja ki az alábbi oktatóanyagokat, amelyek az Adatok másolása eszközt használják: