Sdílet prostřednictvím


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

PLATÍ PRO: Azure Data Factory Azure Synapse Analytics

Tip

Vyzkoušejte si službu Data Factory v Microsoft Fabric, řešení pro analýzy typu all-in-one pro podniky. Microsoft Fabric zahrnuje všechno od přesunu dat až po datové vědy, analýzy v reálném čase, business intelligence a vytváření sestav. Přečtěte si, jak začít používat novou zkušební verzi zdarma.

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 název připojení a tabulky řídicí tabulky, aby vygenerovaný kanál 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ě úložiště, můžete dále vybrat úplné načtení pouze na další stránce. Přírůstkové načítání nových souborů pouze z úložiště úložiště se v současné době nepodporuje.

  4. Zvolte chování 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 konfiguraci pro každou tabulku jednotlivě a vybrat rozdílové načtení a také název sloupce vodoznaku a hodnotu, která se má pro každou tabulku spustit.

  5. Vyberte Cílové úložiště dat.

  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í kanálu můžete zkopírovat nebo stáhnout skripty SQL z uživatelského rozhraní pro vytvoření řídicí tabulky a uložit proceduru.

    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í procedury úložiště. 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 tabulky ovládacích prvků dotazu1

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

  10. Pokud chcete zobrazit a ladit kanály, vraťte se na portál ADF. 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
    MaxNumberOfConcurrentTasks Před spuštěním kanálu můžete vždy změnit maximální počet souběžných aktivit kopírování. Výchozí hodnota bude ta, kterou zadáte v nástroji pro kopírování dat.
    MainControlTableName 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í aktuálního času aktivační události 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. Povolte trigger pro zprovoznění kanálů.

    Povolení triggeru

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. Přejděte ke propustnosti nástroje pro kopírování dat a zobrazí se vám nový skript SQL. Znovu spusťte skript SQL, aby se aktualizovala tabulka ovládacích prvků.

    Upravit tabulku ovládacího prvku 3

    Poznámka:

    Kanál nebude znovu nasazen. 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.
SourceObjectSettings Metadata zdrojové datové sady Může to být název schématu, název tabulky atd. Tady je příklad.
SourceConnectionSettingsName Název nastavení zdrojového připojení v tabulce ovládacích prvků připojení. Zadání je volitelné.
CopySourceSettings Metadata zdrojové vlastnosti 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.
SinkConnectionSettingsName Název nastavení cílového připojení v tabulce ovládacích prvků připojení. Zadání je volitelné.
CopySinkSettings Metadata vlastnosti jímky v aktivitě kopírování Může to být preCopyScript, tableOption atd. Tady je příklad.
CopyActivitySettings 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.
TriggerName Název triggeru, který může aktivovat kanál pro zkopírování tohoto objektu. Pokud se spustí ladění, název je Sandbox. Pokud je ruční spuštění, název je Ruční. 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ů.
DataLoadingBehaviorSettings Úplné zatížení vs. rozdílové zatížení.
Id úkolu Pořadí objektů, které se mají zkopírovat za 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
ConnectionSettings 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
MaxNumberOfConcurrentTasks Před spuštěním kanálu můžete vždy změnit maximální počet souběžných aktivit kopírování. Výchozí hodnota bude ta, kterou zadáte v nástroji pro kopírování dat.
MainControlTableName Název tabulky hlavní řídicí tabulky. Kanál před spuštěním získá metadata z této tabulky.
ConnectionControlTableName Název tabulky tabulky ovládacích prvků připojení (volitelné). 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í aktuálního času aktivační události 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ě.
CopyObjectsInOneBtach Spuštění kanálu Spuštěním jiného kanálu zkopírujte jednu dávku objektů. Objekty patřící do této dávky se zkopírují paralelně.

střední úroveň MetadataDrivenCopyTask_xxx_

Tento kanál 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 kanálu nejvyšší vrstvy.
TriggerName Název triggeru.
CurrentSequentialNumberOfBatch ID sekvenční dávky.
SumOfObjectsToCopy Celkový počet objektů, které chcete zkopírovat.
SumOfObjectsToCopyForCurrentBatch Počet objektů, které se mají zkopírovat v aktuální dávce.
MainControlTableName Název hlavní řídicí tabulky.
ConnectionControlTableName Název tabulky ovládacích prvků připojení.

Aktivity

Název aktivity Typ aktivity Popis
DivideOneBatchIntoMultipleGroups 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í.
GetObjectsPerGroupToCopy 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 za TaskId v řídicí tabulce (ORDER BY [TaskId] DESC).
CopyObjectsInOneGroup Spuštění kanálu Spuštěním dalšího kanálu zkopírujte objekty z jedné skupiny. Objekty patřící do této skupiny se zkopírují paralelně.

MetadataDrivenCopyTask_xxx_ BottomLevel

Tento kanál zkopíruje objekty z jedné skupiny. Objekty patřící do této skupiny se zkopírují paralelně.

Parametry

Název parametrů Popis
ObjectsPerGroupToCopy 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 kanálu, aby vyplnil cestu k dynamické složce, pokud je nakonfigurovaný uživatelem.

Aktivity

Název aktivity Typ aktivity Popis
ListObjectsFromOneGroup ForEach Vypíše objekty z jedné skupiny a každý z nich iteruje na podřízené aktivity.
RouteJobsBasedOnLoadingBehavior Přepínač Zkontrolujte chování načítání jednotlivých objektů. Pokud je výchozí případ nebo fullload, proveďte úplné načtení. Pokud se jedná o případ DeltaLoad, proveďte přírůstkové načtení prostřednictvím sloupce meze 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.
UpdateWatermarkColumnValue StoreProcedure Zapište novou hodnotu vodoznaku, aby se příště použila tabulka.

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 SQL Serveru, 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í se jednat o 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: