Vytváření rozsáhlých kanálů kopírování dat pomocí přístupu řízeného metadaty v nástroji pro kopírování dat

VZTAHUJE SE NA: Azure Data Factory Azure Synapse Analytics

Tip

Data Factory v Microsoft Fabric je nová generace Azure Data Factory s jednodušší architekturou, integrovanou AI a novými funkcemi. Pokud s integrací dat začínáte, začněte Fabric Data Factory. Stávající úlohy ADF lze upgradovat na Fabric pro přístup k novým funkcím v oblastech datové vědy, analýz v reálném čase a vytváření sestav.

Pokud chcete zkopírovat obrovské objemy objektů (například tisíce tabulek) nebo načíst data z velkých zdrojů, je vhodné zadat seznam názvů objektů s požadovaným chováním kopírování v řídicí tabulce a pak použít parametrizované kanály ke čtení stejného z řídicí tabulky a odpovídajícím způsobem je použít pro úlohy. Tímto způsobem můžete seznam objektů snadno zkopírovat (například přidat nebo odebrat), a to tak, že místo opětovného nasazení kanálů aktualizujete názvy objektů v řídicí tabulce. Kromě toho budete mít jediné místo, kde můžete snadno zkontrolovat, které objekty zkopírovaly, podle kterých kanálů a triggerů s definovaným chováním kopírování.

Nástroj pro kopírování dat v ADF usnadňuje vytváření takových kanálů kopírování dat řízených metadaty. Jakmile projdete intuitivním tokem z prostředí založeného na průvodci, může nástroj vygenerovat parametrizované kanály a skripty SQL, abyste mohli odpovídajícím způsobem vytvářet tabulky externích ovládacích prvků. Po spuštění vygenerovaných skriptů pro vytvoření řídicí tabulky v databázi SQL budou kanály číst metadata z řídicí tabulky a automaticky je aplikovat na úlohy kopírování.

Vytváření úloh kopírování řízených metadaty z nástroje pro kopírování dat

  1. V nástroji pro kopírování dat vyberte úlohu kopírování řízenou metadaty.

    Potřebujete zadat připojení a název tabulky vaší řídicí tabulky, aby generovaný pipeline načetl metadata z této tabulky.

    Vybrat typ úkolu

  2. Zadejte připojení zdrojové databáze. Můžete také použít parametrizovanou propojenou službu .

    Výběr parametrizované propojené služby

  3. Vyberte název tabulky, který chcete zkopírovat.

    Vyberte tabulku

    Poznámka:

    Pokud vyberete tabulkové úložiště dat, budete mít možnost dalšího výběru plného načtení nebo rozdílového načtení na další stránce. Pokud vyberete úložiště, můžete na další stránce dále zvolit pouze plné načtení. Přírůstkové načítání nových souborů pouze z úložiště není v současné době podporováno.

  4. Zvolte nastavení načítání.

    Tip

    Pokud chcete provést úplné kopírování všech tabulek, vyberte Úplné načtení všech tabulek. Pokud chcete provést přírůstkové kopírování, můžete vybrat konfigurovat každou tabulku jednotlivě a vybrat delta načtení, název sloupce vodoznaku a hodnotu jako počáteční bod pro každou tabulku.

  5. Vyberte cílové datové úložiště.

  6. Na stránce Nastavení můžete určit maximální počet aktivit kopírování pro kopírování dat ze zdrojového úložiště současně prostřednictvím počtu souběžných úloh kopírování. Výchozí hodnota je 20.

    Stránka Nastavení

  7. Po nasazení pipeline můžete zkopírovat nebo stáhnout skripty SQL z rozhraní pro vytvoření řídicí tabulky a uložené procedury.

    Stažení skriptů

    Zobrazí se dva skripty SQL.

    • První skript SQL slouží k vytvoření dvou řídicích tabulek. Hlavní řídicí tabulka ukládá chování seznamu tabulek, cesty k souboru nebo kopírování. Tabulka ovládacích prvků připojení ukládá hodnotu připojení úložiště dat, pokud jste použili parametrizovanou propojenou službu.
    • Druhý skript SQL slouží k vytvoření uložené procedury. Slouží k aktualizaci hodnoty meze v hlavní řídicí tabulce při každém dokončení úloh přírůstkového kopírování.
  8. Otevřete SSMS , abyste se připojili k řídicímu tabulkovému serveru, a spusťte dva skripty SQL, které vytvoří řídicí tabulky a uloží proceduru.

    Vytvoření skriptu řídicí tabulky

  9. Zadejte dotaz na hlavní řídicí tabulku a tabulku ovládacích prvků připojení a zkontrolujte metadata v ní.

    Hlavní řídicí tabulkaSkript řízení tabulky dotazu 1

    Tabulka ovládacích prvků připojeníSkript tabulky ovládacích prvků dotazu2

  10. Vraťte se na portál ADF a zobrazte a laděte datové toky. Zobrazí se složka vytvořená pojmenováním "MetadataDrivenCopyTask_#########". Klikněte na pojmenování kanálu s metadataDrivenCopyTask###_TopLevel" a klikněte na spustit ladění.

    Musíte zadat následující parametry:

    Název parametrů Popis
    MaximalníPočetSoučasnýchÚkolů Před spuštěním potrubí můžete vždy změnit maximální počet souběžných aktivit kopírování, které se spustí. Výchozí hodnota bude ta, kterou zadáte v nástroji pro kopírování dat.
    NázevHlavníOvládacíTabulky Název hlavní řídicí tabulky můžete vždy změnit, takže kanál před spuštěním získá metadata z této tabulky.
    ConnectionControlTableName Název tabulky ovládacích prvků připojení (volitelné) můžete kdykoli změnit, takže kanál před spuštěním získá metadata související s připojením k úložišti dat.
    MaxNumberOfObjectsReturnedFromLookupActivity Aby se zabránilo dosažení limitu výstupní aktivity vyhledávání, existuje způsob, jak definovat maximální počet objektů vrácených vyhledávací aktivitou. Ve většině případů není nutné změnit výchozí hodnotu.
    windowStart Když jako cestu ke složce zadáte dynamickou hodnotu (například yyyy/mm/dd), použije se parametr k předání času spuštění aktuálního triggeru do kanálu, aby se vyplnila cesta k dynamické složce. Když se kanál aktivuje triggerem plánu nebo triggerem pro přeskakující okna, uživatelé nemusí zadávat hodnotu tohoto parametru. Ukázková hodnota: 2021-01-25T01:49:28Z
  11. Aktivujte spouštěč pro zprovoznění potrubí.

    Povolit spouštěč

Aktualizace řídicí tabulky pomocí nástroje pro kopírování dat

Řídicí tabulku můžete kdykoli aktualizovat přidáním nebo odebráním objektu, který se má zkopírovat, nebo změnit chování kopírování pro každou tabulku. Také vytváříme uživatelské rozhraní v nástroji pro kopírování dat, abychom usnadnili úpravu řídicí tabulky.

  1. Klikněte pravým tlačítkem myši na kanál nejvyšší úrovně: MetadataDrivenCopyTask_xxx_TopLevel a pak vyberte Upravit řídicí tabulku.

    Upravit tabulku ovládacího prvku 1

  2. Vyberte řádky z řídicí tabulky, které chcete upravit.

    Upravit tabulku ovládacího prvku 2

  3. Projděte si nástroj na kopírování dat a získejte nový SQL skript. Znovu spusťte skript SQL, aby se aktualizovala tabulka ovládacích prvků.

    Upravit tabulku ovládacího prvku 3

    Poznámka:

    Potrubí nebude znovu nasazeno. Nový vytvořený skript SQL vám pomůže aktualizovat pouze řídicí tabulku.

Řídicí tabulky

Hlavní řídicí tabulka

Každý řádek v řídicí tabulce obsahuje metadata pro jeden objekt (například jednu tabulku), která se mají zkopírovat.

Název sloupce Popis
ID Jedinečné ID objektu, který se má zkopírovat.
NastaveníZdrojovéhoObjektu Metadata zdrojové datové sady Může to být název schématu, název tabulky atd. Tady je příklad.
NázevNastaveníPřipojeníZdroj Název nastavení zdrojového připojení v tabulce ovládacích prvků připojení. Zadání je volitelné.
KopírovatNastaveníZdroje Metadata vlastností zdroje v aktivitě kopírování Může to být dotaz, oddíly atd. Tady je příklad.
SinkObjectSettings Metadata cílové datové sady Může to být název souboru, cesta ke složce, název tabulky atd. Tady je příklad. Pokud je zadaná cesta k dynamické složce, proměnná hodnota se sem nezapíše v řídicí tabulce.
NastaveníPřipojeníSinkName Název nastavení cílového připojení v tabulce ovládacích prvků připojení. Zadání je volitelné.
CopySinkSettings Metadata vlastnosti cílového úložiště v kopírovací aktivitě Může to být preCopyScript, tableOption atd. Tady je příklad.
NastaveníKopírovacíAktivity Metadata vlastnosti translatoru v aktivitě kopírování Slouží k definování mapování sloupců.
TopLevelPipelineName Název hlavního kanálu, který může tento objekt zkopírovat.
Název spouště Název triggeru, který může aktivovat potrubí pro zkopírování tohoto objektu. Pokud je spuštěn ladící režim, název je Sandbox. Pokud je spuštění manuální, název je Manuální. Pokud je naplánované spuštění, název je přidruženým názvem triggeru. Může to být zadání více názvů.
Nastavení chování načítání dat Plná zátěž vs. diferenciální zátěž.
Id úkolu Pořadí objektů, které se mají zkopírovat podle TaskId v řídicí tabulce (ORDER BY [TaskId] DESC). Pokud máte obrovské množství objektů, které se mají zkopírovat, ale je povolený pouze omezený souběžný počet zkopírovaných objektů, můžete u každého objektu změnit ID úlohy a rozhodnout, které objekty je možné zkopírovat dříve. Výchozí hodnota je 0.
CopyEnabled Určete, jestli je položka povolená v procesu příjmu dat. Povolené hodnoty: 1 (povoleno), 0 (zakázáno). Výchozí hodnota je 1.

Tabulka ovládacích prvků připojení

Každý řádek v řídicí tabulce obsahuje jedno nastavení připojení pro úložiště dat.

Název sloupce Popis
Name Název parametrizovaného připojení v hlavní řídicí tabulce
Nastavení připojení Nastavení připojení. Může to být název databáze, název serveru atd.

Pipelines

Uvidíte, že nástroj pro kopírování dat generuje tři úrovně kanálů.

MetadataDrivenCopyTask_xxx_TopLevel

Tento kanál vypočítá celkový počet objektů (tabulky atd.), které se musí v tomto spuštění zkopírovat, vytvoří se počet sekvenčních dávek na základě maximální povolené úlohy souběžného kopírování a potom spustí jiný kanál, který bude kopírovat různé dávky postupně.

Parametry

Název parametrů Popis
MaximalníPočetSoučasnýchÚkolů Před spuštěním potrubí můžete vždy změnit maximální počet souběžných aktivit kopírování, které se spustí. Výchozí hodnota bude ta, kterou zadáte v nástroji pro kopírování dat.
NázevHlavníOvládacíTabulky Název tabulky hlavní řídicí tabulky. Před spuštěním tento kanál získá z této tabulky metadata.
ConnectionControlTableName Název tabulky tabulky ovládacích prvků připojení (volitelné). Kanál před spuštěním získá metadata spojená s připojením k úložišti dat.
MaxNumberOfObjectsReturnedFromLookupActivity Aby se zabránilo dosažení limitu výstupní aktivity vyhledávání, existuje způsob, jak definovat maximální počet objektů vrácených vyhledávací aktivitou. Ve většině případů není nutné změnit výchozí hodnotu.
windowStart Když jako cestu ke složce zadáte dynamickou hodnotu (například yyyy/mm/dd), použije se parametr k předání času spuštění aktuálního triggeru do kanálu, aby se vyplnila cesta k dynamické složce. Když se kanál aktivuje triggerem plánu nebo triggerem pro přeskakující okna, uživatelé nemusí zadávat hodnotu tohoto parametru. Ukázková hodnota: 2021-01-25T01:49:28Z

Aktivity

Název aktivity Typ aktivity Popis
GetSumOfObjectsToCopy Vyhledání Výpočet celkového počtu objektů (tabulek atd.) potřebných ke zkopírování v tomto spuštění.
CopyBatchesOfObjectsSequenly ForEach Vymyslete počet sekvenčních dávek na základě maximálního povoleného počtu souběžných úloh kopírování a pak spusťte další kanál, který bude kopírovat různé dávky postupně.
CopyObjectsInOneBatch Spuštění kanálu Spusťte další potrubí pro zkopírování jedné dávky objektů. Objekty patřící do této dávky se zkopírují paralelně.

MetadataDrivenCopyTask_xxx_ střední úroveň

Toto potrubí zkopíruje jednu dávku objektů. Objekty patřící do této dávky se zkopírují paralelně.

Parametry

Název parametrů Popis
MaxNumberOfObjectsReturnedFromLookupActivity Aby se zabránilo dosažení limitu výstupní aktivity vyhledávání, existuje způsob, jak definovat maximální počet objektů vrácených vyhledávací aktivitou. Ve většině případů není nutné změnit výchozí hodnotu.
TopLevelPipelineName Název procesního řetězce nejvyšší vrstvy.
Název spouště Název spouštěče.
AktuálníPořadovéČísloŠarže ID sekvenční dávky.
SoučetObjektůKeKopírování Celkový počet objektů, které chcete zkopírovat.
Součet objektů ke kopírování pro aktuální dávku Počet objektů, které se mají zkopírovat v aktuální dávce.
NázevHlavníOvládacíTabulky Název hlavní řídicí tabulky.
ConnectionControlTableName Název tabulky ovládacích prvků připojení.

Aktivity

Název aktivity Typ aktivity Popis
RozdělitJednuDávkuNaVíceSkupin ForEach Rozdělte objekty z jedné dávky do několika paralelních skupin, abyste se vyhnuli dosažení výstupního limitu aktivity vyhledávání.
ZískatObjektyNaSkupinuKeKopírování Vyhledání Získejte objekty (tabulky atd.) z řídicí tabulky, které je potřeba zkopírovat v této skupině. Pořadí objektů, které se mají zkopírovat podle TaskId v řídicí tabulce (ORDER BY [TaskId] DESC).
KopírovatObjektyVJednéSkupině Spuštění kanálu Spusťte další pipeline pro zkopírování objektů z jedné skupiny. Objekty patřící do této skupiny se zkopírují paralelně.

MetadataDrivenCopyTask_xxx_ ÚroveňSpodku

Toto potrubí zkopíruje objekty z jedné skupiny. Objekty patřící do této skupiny se zkopírují paralelně.

Parametry

Název parametrů Popis
PočetObjektůKeKopírováníNaSkupinu Počet objektů, které se mají kopírovat v aktuální skupině.
ConnectionControlTableName Název tabulky ovládacích prvků připojení.
windowStart Používá se k předání aktuálního času triggeru pipeline, aby vyplnil cestu k dynamické složce, pokud je nakonfigurované uživatelem.

Aktivity

Název aktivity Typ aktivity Popis
SeznamPředmětůZJednéSkupiny ForEach Seznamte objekty z jedné skupiny a každý z nich iterujte směrem k následným aktivitám.
SměrujPrácePodleChováníPřiNačítání Přepínač Zkontrolujte chování načítání jednotlivých objektů. Pokud je výchozí případ nebo FullLoad, proveďte úplné nahrání. Pokud se jedná o případ DeltaLoadu, proveďte přírůstkové načtení pomocí sloupce pro sledování změn a identifikujte změny.
FullLoadOneObject Kopírovat Pořiďte na tomto objektu úplný snímek a zkopírujte ho do cíle.
DeltaLoadOneObject Kopírovat Změněná data zkopírujte jenom z posledního okamžiku porovnáním hodnoty ve sloupci vodoznaku a identifikujte změny.
GetMaxWatermarkValue Vyhledání Zadejte dotaz na zdrojový objekt a získejte maximální hodnotu ze sloupce vodoznaku.
AktualizovatHodnotuSloupceWatermark StoreProcedure Zapište novou hodnotu vodoznaku do řídicí tabulky, aby mohla být použita příště.

Známá omezení

  • Název prostředí IR, typ databáze, typ formátu souboru nelze parametrizovat v ADF. Pokud například chcete ingestovat data z Oracle Serveru i z SQL Server, budete potřebovat dva různé parametrizované kanály. Jedinou řídicí tabulku ale můžou sdílet dvě sady kanálů.
  • OpenJSON se používá ve generovaných skriptech SQL pomocí nástroje pro kopírování dat. Pokud k hostování řídicí tabulky používáte SQL Server, musí být SQL Server 2016 (13.x) a novější, aby bylo možné podporovat funkci OPENJSON.

Vyzkoušejte tyto kurzy, které používají nástroj pro kopírování dat: