Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
VZTAHUJE SE NA:
Azure Data Factory
Azure Synapse Analytics
Návod
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.
Důležité
Podpora azure Machine Learning Studio (classic) skončí 31. srpna 2024. Do tohoto data doporučujeme přejít na Azure Machine Learning.
Od 1. prosince 2021 nemůžete vytvářet nové prostředky Machine Learning Studio (klasické) jako pracovní prostor a plán webových služeb. Až do 31. srpna 2024 můžete dál používat stávající experimenty a webové služby Machine Learning Studio (klasické). Další informace naleznete v tématu:
Machine Learning Studio (klasická) dokumentace se vyřadí z provozu a v budoucnu se nemusí aktualizovat.
Tento článek vám pomůže pochopit kanály a aktivity v Azure Data Factory a Azure Synapse Analytics a používat je k vytváření kompletních pracovních postupů řízených daty pro scénáře přesunu a zpracování dat.
Přehled
Pracovní prostor Data Factory nebo Synapse může mít jeden nebo více kanálů. Potrubí je logické seskupení činností, které společně provádějí úkol. Kanál může například obsahovat sadu aktivit, které přijímají a čistí logy, a pak spustí datové mapování pro analýzu logů. Datový proud umožňuje spravovat aktivity jako sadu, místo toho, abyste každou řídili samostatně. Místo toho, abyste nasazovali a plánovali aktivity samostatně, nasadíte a naplánujete celý kanál.
Aktivity v datovém kanálu definují akce, které se mají s daty provádět. Můžete například použít aktivitu kopírování ke kopírování dat z SQL Server do Azure Blob Storage. Potom pomocí činnosti toku dat nebo činnosti poznámkového bloku Databricks můžete zpracovávat a transformovat data z úložiště blob na fond Azure Synapse Analytics, na kterém jsou postaveny řešení pro reporting business intelligence.
Azure Data Factory a Azure Synapse Analytics mají tři skupiny aktivit: aktivity přesunu dat , aktivity transformace dat a aktivity control. Každá aktivita může mít nula nebo více vstupních datových sad a může generovat jednu nebo více výstupních datových sad. Následující diagram znázorňuje vztah mezi kanálem, aktivitou a datovou sadou:
Vstupní datová sada představuje vstup pro aktivitu v kanálu a výstupní datová sada představuje výstup aktivity. Datové sady identifikují data v rámci různých úložišť dat, jako jsou tabulky, soubory, složky a dokumenty. Po vytvoření datové sady ji můžete používat v aktivitách v rámci datového kanálu. Datová sada například může být vstupní/výstupní datovou sadou aktivity kopírování nebo aktivity HDInsightHive. Další informace o datových sadách najdete v článku Datasets v článku Azure Data Factory.
Poznámka:
Pro každý kanál existuje výchozí měkký limit maximálního počtu 120 aktivit, který zahrnuje vnitřní aktivity pro kontejnery.
Aktivity přesunu dat
Aktivita kopírování ve službě Data Factory kopíruje data ze zdrojového úložiště dat do úložiště dat jímky. Služba Data Factory podporuje úložiště dat uvedená v tabulce v této části. Data z libovolného zdroje lze zapsat do libovolné jímky.
Další informace najdete v článku Aktivita kopírování – přehled.
Výběrem úložiště dat se dozvíte, jak kopírovat data z a do daného úložiště.
Poznámka:
Konektory s označením Preview si můžete vyzkoušet a poskytnout nám k nim zpětnou vazbu. Pokud chcete ve svém řešení využívat závislost na konektorech ve verzi Preview, obraťte se na podpora Azure.
Aktivity transformace dat
Azure Data Factory a Azure Synapse Analytics podporují následující transformační aktivity, které je možné přidat jednotlivě nebo zřetězené s jinou aktivitou.
Další informace najdete v článku Aktivity transformace dat.
| Aktivita transformace dat | Výpočetní prostředí |
|---|---|
| Tok dat | Clustery Apache Spark spravované Azure Data Factory |
| funkce Azure | Azure Functions |
| Hive | HDInsight [Hadoop] |
| Prase | HDInsight [Hadoop] |
| MapReduce | HDInsight [Hadoop] |
| Streamování Hadoop | HDInsight [Hadoop] |
| Spark | HDInsight [Hadoop] |
| Uložená procedura | Azure SQL, Azure Synapse Analytics nebo SQL Server |
| Vlastní aktivita | Azure Batch |
| Poznámkový blok Databricks | Azure Databricks |
| Aktivita Jar Databricks | Azure Databricks |
| Databricks Python aktivita | Azure Databricks |
| Aktivita poznámkového bloku Synapse | Azure Synapse Analytics |
Řídicí tokové aktivity
Podporují se následující aktivity toku řízení:
| Aktivita řízení | Popis |
|---|---|
| Připojit proměnnou | Přidejte hodnotu do existující proměnné pole. |
| Spuštění pipeline | Aktivita spuštění kanálu umožňuje kanálu Data Factory nebo Synapse vyvolat jiný kanál. |
| Filtr | Aplikujte výraz filtru na vstupní pole |
| Pro každou z nich | Aktivita ForEach definuje ve vašem pipeline opakovaný tok řízení. Tato aktivita se používá k iteraci přes kolekci a spouští zadané aktivity ve smyčce. Smyčková implementace této aktivity se podobá struktuře smyčky Foreach používané v programovacích jazycích. |
| Získání metadat | Aktivita GetMetadata se dá použít k načtení metadat všech dat v kanálu Data Factory nebo Synapse. |
| Kondiční aktivita If | Podmínka If se dá použít k vytvoření větve na základě podmínky, která provádí vyhodnocení na hodnotu True nebo False. Aktivita podmínky If funguje stejně jako příkaz if v programovacích jazycích. Vyhodnotí sadu aktivit, když se podmínka vyhodnotí na true jinou sadu aktivit, když se podmínka vyhodnotí jako false. |
| Aktivita vyhledávání | Aktivita vyhledávání slouží ke čtení nebo vyhledání záznamu / názvu tabulky / hodnoty z jakéhokoli externího zdroje. Na tento výstup mohou dále odkazovat následující aktivity. |
| Nastavit proměnnou | Nastavte hodnotu existující proměnné. |
| Aktivita Until | Implementuje smyčku Do-Until, která se podobá struktuře smyčky Do-Until v programovacích jazycích. Provádí ve smyčce sadu aktivit, dokud se podmínka přidružená k aktivitě nevyhodnotí jako pravdivá. Můžete zadat hodnotu časového limitu pro aktivitu do té doby. |
| Aktivita ověření | Ujistěte se, že kanál pokračuje ve spouštění pouze v případě, že existuje referenční datová sada, splňuje zadaná kritéria nebo je dosaženo časového limitu. |
| Aktivita čekání | Pokud v kanálu použijete aktivitu Wait, kanál před pokračováním v provádění následných aktivit počká na zadaný čas. |
| Webová aktivita | Webová aktivita se dá použít k volání vlastního koncového bodu REST z kanálu. Můžete předávat datové sady a propojené služby, které má aktivita používat a ke kterým má mít přístup. |
| Aktivita webhooku | Pomocí aktivity webhooku zavolejte koncový bod a předejte adresu URL zpětného volání. Spuštění kanálu čeká na vyvolání zpětného volání, než přejde k další aktivitě. |
Vytvoření pipeline s uživatelským rozhraním
Chcete-li vytvořit nový kanálový proces, přejděte v aplikaci Data Factory Studio na kartu Autor (reprezentovanou ikonou tužky), vyberte znaménko plus a v nabídce zvolte Kanálový proces a z podnabídky znovu Kanálový proces.
Datová továrna zobrazuje editor datového toku, kde můžete najít:
- Všechny aktivity, které lze použít v rámci potrubí.
- Plátno editoru kanálů, kde se aktivity zobrazují při přidání do kanálu.
- Podokno konfigurace kanálu, včetně parametrů, proměnných, obecných nastavení a výstupu.
- Podokno vlastností kanálu, kde je možné nakonfigurovat název kanálu, volitelný popis a poznámky. Toto podokno také zobrazuje všechny související položky datového kanálu v rámci datové továrny.
JSON kanálu
Kanál je definovaný ve formátu JSON:
{
"name": "PipelineName",
"properties":
{
"description": "pipeline description",
"activities":
[
],
"parameters": {
},
"concurrency": <your max pipeline concurrency>,
"annotations": [
]
}
}
| Štítek | Popis | Typ | Požaduje se |
|---|---|---|---|
| název | Název kanálu. Určuje název, který představuje akci prováděnou kanálem.
|
Řetězec | Ano |
| popis | Určuje text popisující, k čemu se kanál používá. | Řetězec | Ne |
| činnosti | Část activities může obsahovat definici jedné nebo více aktivit. Podívejte se na část Zápis JSON aktivity pro podrobnosti o elementu aktivită ve formátu JSON. | Pole | Ano |
| parametry | Část parameters může obsahovat definici jednoho nebo více parametrů v kanálu, aby byl kanál flexibilní pro opakované použití. | Seznam | Ne |
| souběžnost | Maximální počet souběžných spuštění, který kanál může mít. Ve výchozím nastavení neexistuje žádné maximum. Pokud je dosažen limit souběžnosti, další spuštění kanálu se zařadí do fronty, dokud se dřívější spuštění nedokončí. | Číslo | Ne |
| anotace | Seznam značek přidružených ke kanálu | Pole | Ne |
Aktivita JSON
Část activities může obsahovat definici jedné nebo více aktivit. Existují dva hlavní typy aktivit: Výkonné aktivity a Kontrolní aktivity.
Aktivity provádění
Aktivity spuštění zahrnují aktivity přesunu dat a transformace dat. Mají následující strukturu nejvyšší úrovně:
{
"name": "Execution Activity Name",
"description": "description",
"type": "<ActivityType>",
"typeProperties":
{
},
"linkedServiceName": "MyLinkedService",
"policy":
{
},
"dependsOn":
{
}
}
Následující tabulka obsahuje popis vlastností v definici aktivity ve formátu JSON:
| Štítek | Popis | Požaduje se |
|---|---|---|
| název | Název aktivity. Určuje název, který představuje akci prováděnou danou aktivitou.
|
Ano |
| popis | Text popisující, k čemu aktivita slouží. | Ano |
| typ | Typ aktivity. Informace o různých typech aktivit najdete v částech Aktivity přesunu dat, Aktivity transformace dat a Aktivity řízení. | Ano |
| název propojené služby | Název propojené služby používané aktivitou. Aktivita může vyžadovat, abyste zadali propojenou službu, která odkazuje na požadované výpočetní prostředí. |
Ano pro aktivitu HDInsight, dávkovou skórovací aktivitu v ML Studio (classic), uloženou procedurální aktivitu. Ne ve všech ostatních případech |
| typVlastnosti | Vlastnosti v části typeProperties závisí na příslušném typu aktivity. Pokud chcete zobrazit vlastnosti typu pro aktivitu, vyberte odkazy na aktivitu v předchozí části. | Ne |
| zásada | Zásady, které ovlivňují běhové chování aktivity. Tato vlastnost zahrnuje vypršení časového limitu a chování při opakování. Pokud není zadaný, použijí se výchozí hodnoty. Další informace najdete v části Zásada aktivity. | Ne |
| závisí na | Tato vlastnost slouží k určení závislostí aktivity a toho, jak následující aktivity závisejí na předchozích aktivitách. Další informace najdete v části Závislost aktivit. | Ne |
Zásady aktivity
Zásady ovlivňují chování aktivity za běhu a poskytují možnosti konfigurace. Zásady aktivit jsou dostupné jenom pro výkonné činnosti.
Definice zásady aktivity ve formátu JSON
{
"name": "MyPipelineName",
"properties": {
"activities": [
{
"name": "MyCopyBlobtoSqlActivity",
"type": "Copy",
"typeProperties": {
...
},
"policy": {
"timeout": "00:10:00",
"retry": 1,
"retryIntervalInSeconds": 60,
"secureOutput": true
}
}
],
"parameters": {
...
}
}
}
| Název JSON | Popis | Povolené hodnoty | Požaduje se |
|---|---|---|---|
| časový limit | Určuje časový limit pro spuštění aktivity. | Časový úsek | Ne. Výchozí časový limit je 12 hodin, minimálně 10 minut. |
| opakovat | Maximální počet opakovaných pokusů. | Datový typ 'celé číslo' | Ne. Výchozí hodnota je 0. |
| retryIntervalInSeconds | Prodleva mezi pokusy o opakování v sekundách. | Datový typ 'celé číslo' | Ne. Výchozí hodnota je 30 sekund. |
| zabezpečený výstup | Pokud je nastavená hodnota true, výstup z aktivity se považuje za zabezpečený a neprotokoluje se pro monitorování. | logický | Ne. Výchozí hodnota je False. |
Aktivita řízení
Aktivity řízení mají následující strukturu nejvyšší úrovně:
{
"name": "Control Activity Name",
"description": "description",
"type": "<ActivityType>",
"typeProperties":
{
},
"dependsOn":
{
}
}
| Štítek | Popis | Požaduje se |
|---|---|---|
| název | Název aktivity. Určuje název, který představuje akci prováděnou danou aktivitou.
|
Ano |
| popis | Text popisující, k čemu aktivita slouží. | Ano |
| typ | Typ aktivity. Informace o různých typech aktivit najdete v částech Aktivity přesunu dat, Aktivity transformace dat a Aktivity řízení. | Ano |
| typVlastnosti | Vlastnosti v části typeProperties závisí na příslušném typu aktivity. Pokud chcete zobrazit vlastnosti typu pro aktivitu, vyberte odkazy na aktivitu v předchozí části. | Ne |
| závisí na | Tato vlastnost slouží k určení závislostí aktivity a toho, jak následující aktivity závisejí na předchozích aktivitách. Další informace najdete v části Závislost aktivit. | Ne |
Závislost aktivit
Závislost aktivity definuje, jak další aktivity závisejí na předchozích aktivitách, a určuje podmínku, zda se má pokračovat v provádění další úlohy. Aktivita může záviset na jedné nebo více předchozích aktivitách s různými podmínkami závislosti.
Existují různé podmínky závislosti: Úspěch, Chyba, Vynecháno, Dokončeno.
Pokud například potrubí obsahuje Aktivitu A –> Aktivitu B, mohou nastat různé scénáře:
- Aktivita B má podmínku závislosti na aktivitě A s hodnotou Úspěch: aktivita B se spustí jenom v případě, že má aktivita A konečný stav Úspěch.
- Aktivita B má podmínku závislosti na aktivitě A s hodnotou Chyba: aktivita B se spustí jenom v případě, že má aktivita A konečný stav Chyba.
- Aktivita B má podmínku závislosti na aktivitě A s hodnotou Dokončeno: aktivita B se spustí v případě, že má aktivita A konečný stav Dokončeno.
- Aktivita B je závislá na aktivitě A s podmínkou přeskočeno: Aktivita B se spustí, pokud má aktivita A konečný stav 'přeskočeno'. Vynecháno je ve scénáři aktivity X –> Aktivita Y –> Aktivita Z, kde se každá aktivita spouští pouze v případě, že předchozí aktivita proběhne úspěšně. Pokud aktivita X selže, má aktivita Y stav Vynecháno, protože se nikdy nespustí. Podobně má aktivita Z také stav "Vynecháno".
Příklad: Aktivita 2 závisí na předchozí aktivitě 1.
{
"name": "PipelineName",
"properties":
{
"description": "pipeline description",
"activities": [
{
"name": "MyFirstActivity",
"type": "Copy",
"typeProperties": {
},
"linkedServiceName": {
}
},
{
"name": "MySecondActivity",
"type": "Copy",
"typeProperties": {
},
"linkedServiceName": {
},
"dependsOn": [
{
"activity": "MyFirstActivity",
"dependencyConditions": [
"Succeeded"
]
}
]
}
],
"parameters": {
}
}
}
Ukázkový kanál kopírování
V následujícím ukázkovém kanálu je v sekci aktivit jedna aktivita typu Kopírování. V této ukázce aktivita copy kopíruje data z úložiště objektů blob Azure do databáze v Azure SQL Database.
{
"name": "CopyPipeline",
"properties": {
"description": "Copy data from a blob to Azure SQL table",
"activities": [
{
"name": "CopyFromBlobToSQL",
"type": "Copy",
"inputs": [
{
"name": "InputDataset"
}
],
"outputs": [
{
"name": "OutputDataset"
}
],
"typeProperties": {
"source": {
"type": "BlobSource"
},
"sink": {
"type": "SqlSink",
"writeBatchSize": 10000,
"writeBatchTimeout": "60:00:00"
}
},
"policy": {
"retry": 2,
"timeout": "01:00:00"
}
}
]
}
}
Mějte na paměti následující body:
- V části aktivity existuje pouze jedna aktivita, jejíž typ je nastavený na Kopírovat.
- Vstup aktivity je nastavený na InputDataset a výstup aktivity je nastavený na OutputDataset. Informace o definicích datových sad ve formátu JSON najdete v článku Datové sady.
- V části typeProperties je jako typ zdroje určen BlobSource a jako typ jímky SqlSink. V části Aktivity přesunu dat vyberte úložiště dat, které chcete použít jako zdroj nebo jímku, a přečtěte si další informace o přesunu dat do a z daného úložiště dat.
Úplný návod k vytvoření tohoto kanálu najdete v tématu Rychlý start: Vytvoření datové továrny.
Ukázkový transformační řetězec
V následující ukázkové zpracovatelské lince je v sekci activities jedna aktivita typu HDInsightHive. V této ukázce aktivita Hive služby HDInsight transformuje data z úložiště Azure Blob spuštěním Hive skriptu v clusteru Azure HDInsight Hadoop.
{
"name": "TransformPipeline",
"properties": {
"description": "My first Azure Data Factory pipeline",
"activities": [
{
"type": "HDInsightHive",
"typeProperties": {
"scriptPath": "adfgetstarted/script/partitionweblogs.hql",
"scriptLinkedService": "AzureStorageLinkedService",
"defines": {
"inputtable": "wasb://adfgetstarted@<storageaccountname>.blob.core.windows.net/inputdata",
"partitionedtable": "wasb://adfgetstarted@<storageaccountname>.blob.core.windows.net/partitioneddata"
}
},
"inputs": [
{
"name": "AzureBlobInput"
}
],
"outputs": [
{
"name": "AzureBlobOutput"
}
],
"policy": {
"retry": 3
},
"name": "RunSampleHiveActivity",
"linkedServiceName": "HDInsightOnDemandLinkedService"
}
]
}
}
Mějte na paměti následující body:
- V části aktivity existuje pouze jedna aktivita, jejíž typ je nastavený na HDInsightHive.
- Soubor skriptu Hive, partitionweblogs.hql, je uložen v účtu Azure Storage (určený službou scriptLinkedService, nazývanou AzureStorageLinkedService) a ve složce scripts v kontejneru
adfgetstarted. - Část
definesurčuje nastavení běhového prostředí, které se předá skriptu Hive jako konfigurační hodnoty Hive (např. ${hiveconf:inputtable},${hiveconf:partitionedtable}).
Část typeProperties je u každé aktivity transformace odlišná. Pokud se chcete dozvědět o vlastnostech typů podporovaných pro aktivitu transformace, vyberte aktivitu transformace v aktivitách transformace dat.
Kompletní postup vytváření tohoto kanálu najdete v části Kurz: Transformace dat pomocí jazyka Spark.
Více aktivit v potrubí
Oba předchozí ukázkové kanály obsahovaly jenom jednu aktivitu. V pipeline můžete mít více než jednu aktivitu. Pokud máte v kanálu více aktivit a následné aktivity nejsou závislé na předchozích aktivitách, můžou se aktivity spouštět paralelně.
Dvě aktivity můžete zřetězit pomocí závislosti aktivit, která určuje, jak následující aktivity závisejí na předchozích aktivitách, a stanovuje podmínku určující, jestli se má pokračovat provedením další úlohy. Aktivita může záviset na jedné nebo více předchozích aktivitách s různými podmínkami závislosti.
Plánování kanálů
Pipeliny jsou plánovány pomocí spouštěčů. Existují různé typy aktivačních událostí (trigger Plánovače, který umožňuje aktivaci kanálů podle časového plánu a ruční aktivační událost, která aktivuje kanály na vyžádání). Další informace o triggerech najdete v článku Spouštění pipeline a triggery.
Pokud chcete, aby aktivační událost aktivovala spuštění kanálu, musíte do definice aktivační události zahrnout odkaz na příslušný kanál. Mezi datovými toky a spouštěči existuje vztah n-m. Více triggerů může aktivovat jeden kanál a jeden trigger může aktivovat více kanálů. Jakmile je spouštěč definován, musíte ho spustit, aby mohl začít spouštět pipeline. Další informace o triggerech najdete v článku Spouštění pipeline a triggery.
Řekněme například, že máte aktivační událost Plánovače „Trigger A,“ kterou chcete spustit svůj kanál, "MyCopyPipeline." Aktivační událost definujete podle následujícího příkladu:
Definice aktivační události Trigger A
{
"name": "TriggerA",
"properties": {
"type": "ScheduleTrigger",
"typeProperties": {
...
}
},
"pipeline": {
"pipelineReference": {
"type": "PipelineReference",
"referenceName": "MyCopyPipeline"
},
"parameters": {
"copySourceName": "FileSource"
}
}
}
}