Pipelines a aktivity v Azure Data Factory a Azure Synapse Analytics

PLATÍ PRO: Azure Data Factory Azure Synapse Analytics

Důležité

podpora pro Machine Learning Studio (classic) skončí 31. srpna 2024. v tomto datu doporučujeme přejít na Azure Machine Learning .

od 1. prosince 2021 nebudete moci vytvářet nové prostředky Machine Learning Studio (classic). do 31. srpna 2024 můžete nadále používat stávající prostředky Machine Learning Studio (classic).

dokumentace k ML Studio (classic) se vyřadí a v budoucnu se nemusí aktualizovat.

Tento článek vám pomůže pochopit kanály a aktivity ve službě Azure Data Factory a Azure synapse Analytics a použít je k sestavení kompletních pracovních postupů založených na datech pro vaše scénáře přesunu dat a zpracování dat.

Přehled

Pracovní prostor Data Factory nebo synapse může obsahovat jeden nebo více kanálů. Kanál je logické seskupení aktivit, které společně provádějí úlohu. Kanál může například obsahovat sadu aktivit, které ingestují a čistí data protokolu a pak odstartují mapování toku dat k analýze data protokolu. Kanál umožňuje spravovat aktivity jako sadu, místo toho, abyste je museli spravovat jednotlivě. Místo toho, abyste nezávisle nasazovali a plánovali aktivity, nasadíte a naplánujete kanál.

Aktivity v kanálu definují akce, které se mají provádět s daty. aktivitu kopírování můžete například použít ke kopírování dat z SQL Server do Azure Blob Storage. Pak použijte aktivitu toku dat nebo aktivitu poznámkového bloku datacihly ke zpracování a transformaci dat z úložiště objektů blob do fondu služby Azure synapse Analytics nad tím, které business intelligence řešení pro vytváření sestav sestavená.

Azure Data Factory a Azure synapse Analytics mají tři skupiny aktivit: aktivity přesunu dat, aktivity transformace data aktivity řízení. Aktivita může mít nula nebo více vstupních datových sad a vytvoří 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:

Vztah mezi datovou sadou, aktivitou a kanálem

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 můžete tuto datovou sadu používat v aktivitách v rámci 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 Datové sady v Azure Data Factory.

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. Kliknutím na úložiště dat se dozvíte, jak kopírovat data z a do daného úložiště.

Kategorie Úložiště dat Podporované jako zdroj Podporované jako jímka Podporované prostředím Azure IR Podporované místním prostředím IR
Azure Azure Blob Storage
  Index služby Azure Cognitive Search
  Azure Cosmos DB (SQL API)
  Rozhraní API služby Azure Cosmos DB pro MongoDB
  Azure Data Explorer
  Azure Data Lake Storage Gen1
  Azure Data Lake Storage Gen2
  Azure Database for MariaDB
  Azure Database for MySQL
  Azure Database for PostgreSQL
  Azure Databricks Delta Lake
  Azure Files
  Azure SQL Database
  Spravovaná instance Azure SQL
  Azure Synapse Analytics
  Azure Table storage
Database Amazon RDS for Oracle
  Amazon RDS for SQL Server
  Amazon Redshift
  DB2
  Drill
  Google BigQuery
  Greenplum
  HBase
  Hive
  Apache Impala
  Informix
  MariaDB
  Microsoft Access
  MySQL
  Netezza
  Oracle
  Phoenix
  PostgreSQL
  Presto
  SAP Business Warehouse přes Open Hub
  SAP Business Warehouse přes MDX
  SAP HANA Jímka podporovaná jenom s konektorem ODBC a ovladačem SAP HANA ODBC
  Tabulka SAP
  Snowflake
  Spark
  SQL Server
  Sybase
  Teradata
  Vertica
NoSQL Cassandra
  Couchbase (Preview)
  MongoDB
  MongoDB Atlas
File Amazon S3
  Kompatibilní s Amazon S3 Storage
  Systém souborů
  FTP
  Cloudové úložiště Googlu
  HDFS
  Oracle Cloud Storage
  SFTP
Obecný protokol Obecná rozhraní HTTP
  Obecná OData
  Obecná rozhraní ODBC
  Obecný standard REST
Služby a aplikace Webová služba Amazon Marketplace
  Concur (Preview)
  Dataverse
  Dynamics 365
  Dynamics AX
  Dynamics CRM
  Google AdWords
  HubSpot
  Jira
  Magento (Preview)
  Marketo (Preview)
  Microsoft 365
  Oracle Eloqua (Preview)
  Oracle Responsys (Preview)
  Oracle Service Cloud (Preview)
  PayPal (Preview)
  QuickBooks (Preview)
  Salesforce
  Cloud služeb Salesforce
  Salesforce Marketing Cloud
  SAP Cloud for Customer (C4C)
  SAP ECC
  ServiceNow
Seznam služby SharePoint Online
  Shopify (Preview)
  Square (Preview)
  Webová tabulka (tabulka HTML)
  Xero
  Zoho (Preview)

Poznámka

Konektory s označením Preview si můžete vyzkoušet a poskytnout nám k nim zpětnou vazbu. Pokud do svého řešení chcete zavést závislost na konektorech ve verzi Preview, kontaktujte podporu Azure.

Další informace najdete v článku Aktivita kopírování – přehled.

Aktivity transformace dat

Azure Data Factory a Azure synapse Analytics podporují následující aktivity transformace, které je možné přidat jednotlivě nebo zřetězit s jinou aktivitou.

Aktivita transformace dat Výpočetní prostředí
Data Flow Apache Spark clusterů spravovaných pomocí Azure Data Factory
Funkce Azure Functions Azure Functions
Hive HDInsight [Hadoop]
Pig HDInsight [Hadoop]
MapReduce HDInsight [Hadoop]
Streamování Hadoop HDInsight [Hadoop]
Spark HDInsight [Hadoop]
ML Studio (klasické) aktivity: dávkové provádění a aktualizace prostředku Virtuální počítač Azure
Uložená procedura azure SQL, azure Synapse Analytics nebo SQL Server
U-SQL Azure Data Lake Analytics
Vlastní aktivita Azure Batch
Poznámkový blok Databricks Azure Databricks
Aktivita JAR pro datacihly Azure Databricks
Aktivita v Pythonu datacihly Azure Databricks

Další informace najdete v článku Aktivity transformace dat.

Aktivity toku řízení

Podporují se následující aktivity toku řízení:

Aktivita řízení Description
Připojit proměnnou Přidejte hodnotu do existující proměnné pole.
Spustit kanál Aktivita spuštění kanálu umožňuje kanálu Data Factory nebo synapse vyvolat jiný kanál.
Filtr Použití výrazu filtru na vstupní pole
Pro každý Aktivita ForEach definuje ve vašem kanálu opakovaný tok řízení. Tato aktivita se používá k opakování v 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ískat metadata Aktivita GetMetadata se dá použít k načtení metadat všech dat v kanálu Data Factory nebo synapse.
Aktivita podmínky Když 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. Vyhodnocuje sadu aktivit, když se podmínka vyhodnotí jako true a jiná sada 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.
Set Variable Nastaví 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 do aktivity do.
Aktivita ověřování Zajistěte, aby kanál pokračoval pouze v provádění, pokud existuje referenční datová sada, splňuje zadaná kritéria nebo byl dosažen časový limit.
Aktivita Wait Když v kanálu použijete aktivitu čekání, kanál počká zadanou dobu, než bude pokračovat v provádění následných aktivit.
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 Webhook volejte koncový bod a předejte adresu URL zpětného volání. Běh kanálu čeká na vyvolání zpětného volání před pokračováním na další aktivitu.

Zápis JSON kanálu

Tady je způsob definice kanálu ve formátu JSON:

{
    "name": "PipelineName",
    "properties":
    {
        "description": "pipeline description",
        "activities":
        [
        ],
        "parameters": {
        },
        "concurrency": <your max pipeline concurrency>,
        "annotations": [
        ]
    }
}
Značka Popis Typ Vyžadováno
name Název kanálu. Určuje název, který představuje akci prováděnou kanálem.
  • Maximální počet znaků: 140.
  • Musí začínat písmenem, číslicí nebo podtržítkem ( _ ).
  • Nejsou povoleny následující znaky: ".", "+", "?", "/", "<", ">", "*", "%", "&", ":", " "
Řetězec Yes
description Určuje text popisující, k čemu se kanál používá. Řetězec No
activities Část activities může obsahovat definici jedné nebo více aktivit. Podrobnosti o elementu activities formátu JSON najdete v části Zápis JSON aktivity. Pole Yes
parameters Část parameters může obsahovat definici jednoho nebo více parametrů v kanálu, aby byl kanál flexibilní pro opakované použití. Seznam No
souběžnost Maximální počet souběžných spuštění kanálu může být. Ve výchozím nastavení neexistuje žádná maximální hodnota. Pokud je dosaženo limitu souběžnosti, další spuštění kanálu se zařadí do fronty, dokud se dřív nedokončí. Číslo No
anotac Seznam značek přidružených k kanálu Pole No

Zápis JSON aktivity

Část activities může obsahovat definici jedné nebo více aktivit. Existují dva hlavní typy aktivit: aktivity spuštění a aktivity řízení.

Aktivity spuště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:

Značka Popis Vyžadováno
name Název aktivity. Určuje název, který představuje akci prováděnou danou aktivitou.
  • Maximální počet znaků: 55.
  • Musí začínat písmenem nebo podtržítkem ( _ ).
  • Nejsou povoleny následující znaky: ".", "+", "?", "/", "<", ">", "*", "%", "&", ":", " "
Yes
description Text popisující, k čemu aktivita slouží. Yes
typ Typ aktivity. Různé typy aktivit najdete v částech aktivity přesunu dat, aktivity transformace data aktivity řízení . Yes
linkedServiceName Název propojené služby používané aktivitou.

Aktivita může vyžadovat zadání propojené služby, která odkazuje na požadované výpočetní prostředí.
ano pro aktivity HDInsight, aktivita dávkového vyhodnocování ML Studio (classic), aktivita uložené procedury

Ne ve všech ostatních případech
typeProperties Vlastnosti v části typeProperties závisí na příslušném typu aktivity. Pokud chcete zobrazit vlastnosti typu určité aktivity, klikněte na odkaz na aktivitu v předchozí části. No
policy Zásady, které ovlivňují chování aktivity za běhu. Tato vlastnost obsahuje časový limit a chování při opakování. Pokud není zadaný, použijí se výchozí hodnoty. Další informace najdete v části Zásada aktivity. No
dependsOn 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. No

Zásada aktivity

Zásady ovlivňují chování aktivity za běhu a nabízejí možnosti konfigurace. Zásady aktivit jsou dostupné jenom pro aktivity spuštění.

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 Description Povolené hodnoty Vyžadováno
timeout Určuje časový limit pro spuštění aktivity. Časový interval No. Výchozí hodnota časového limitu je 7 dní.
retry Maximální počet opakovaných pokusů. Integer No. Výchozí hodnota je 0.
retryIntervalInSeconds Prodleva mezi pokusy o opakování v sekundách. Integer No. Výchozí hodnota je 30 sekund.
secureOutput Pokud je nastavená hodnota true, výstup z aktivity se považuje za zabezpečený a nezaprotokoluje se pro monitorování. Logická hodnota No. 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":
    {
    }
}
Značka Popis Vyžadováno
name Název aktivity. Určuje název, který představuje akci prováděnou danou aktivitou.
  • Maximální počet znaků: 55.
  • Musí začínán písmenem nebo podtržítkem ( _ ).
  • Nejsou povoleny následující znaky: ".", "+", "?", "/", "<", ">", "*", "%", " &", ":", " "
Yes
    description Text popisující, k čemu aktivita slouží. Yes
    typ Typ aktivity. Informace o různých typech aktivit najdete v částech Aktivity přesunu dat, Aktivity transformace dat a Aktivity řízení. Yes
    typeProperties Vlastnosti v části typeProperties závisí na příslušném typu aktivity. Pokud chcete zobrazit vlastnosti typu určité aktivity, klikněte na odkaz na aktivitu v předchozí části. No
    dependsOn 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 tématu Závislost aktivit. No

    Závislost aktivit

    Závislost aktivity definuje, jak následující aktivity závisejí na předchozích aktivitách, a určuje podmínku, jestli 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 má například kanál scénář aktivita A -> aktivita 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 má podmínku závislosti na aktivitě A s vynechání: Aktivita B se spustí, pokud má aktivita A konečný stav Vynecháno. Stav Přeskočeno nastává ve scénáři aktivita X -> aktivita Y -> aktivita Z, kde se každá aktivita spustí jenom v případě, že úspěšně proběhnou předchozí aktivity. Pokud aktivita X selže, aktivita Y je ve stavu Vynecháno, protože se nikdy neprovede. 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 části activities jedna aktivita typu Kopírování. V této ukázce aktivita kopírování kopíruje data z úložiště objektů blob v 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"
            }
          }
        ]
      }
    }
    

    Je třeba počítat s následujícím:

    • V části aktivit je jenom jedna aktivita, jejíž vlastnost type je nastavená na Copy.
    • 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. Pokud chcete zjistit více informací o přesouvání dat do úložiště dat a z něj, v části Aktivity přesunu dat klikněte na úložiště dat, které chcete použít jako zdroj nebo jímku.

    Úplný návod k vytvoření tohoto kanálu najdete v tématu Rychlý start: vytvoření Data Factory.

    Ukázkový kanál transformace

    V následujícím ukázkovém kanálu je v části activities jedna aktivita typu HDInsightHive. V této ukázce aktivita HDInsight Hive transformuje data ze služby Azure Blob Storage tak, že v clusteru Azure HDInsight Hadoop spustí soubor skriptu Hive.

    {
        "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"
                }
            ]
        }
    }
    

    Je třeba počítat s následujícím:

    • V části activities je jenom jedna aktivita, jejíž vlastnost type má hodnotu HDInsightHive.
    • Soubor skriptu Hive partitionweblogs.hql je uložený v účtu Azure Storage (který specifikuje služba scriptLinkedService s názvem AzureStorageLinkedService) a ve složce script v kontejneru adfgetstarted .
    • Část defines urč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á. Další informace o vlastnostech typu podporovaných u aktivit transformace získáte kliknutím na aktivitu transformace v části Aktivity transformace dat.

    Kompletní postup vytváření tohoto kanálu najdete v části Kurz: Transformace dat pomocí jazyka Spark.

    Více aktivit v kanálu

    Oba předchozí ukázkové kanály obsahovaly jenom jednu aktivitu. Kanál může obsahovat víc než jednu aktivitu. Pokud máte kanál s více aktivitami a následující aktivity nejsou závislé na předchozích aktivitách, mohou se aktivity spouštět souběžně.

    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ů

    Kanály se plánují pomocí aktivačních událostí. Existují různé typy triggerů (aktivační událost plánovače, která umožňuje spouštění kanálů podle hodinového plánu, a také ruční aktivační událost, která aktivuje kanály na vyžádání). Další informace o aktivačních událostech najdete v článku Spouštění kanálů a aktivační události.

    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 kanály a aktivačními událostmi 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 aktivační událost definovaná, musíte ji spustit, aby mohla začít aktivovat kanál. Další informace o aktivačních událostech najdete v článku Spouštění kanálů a aktivační události.

    Řekněme například, že máte aktivační událost plánovače Trigger A, kterou chci aktivovat kanál MyCopyPipeline. Trigger definujete, jak je znázorněno v následujícím příkladu:

    Definice aktivační události Trigger A

    {
      "name": "TriggerA",
      "properties": {
        "type": "ScheduleTrigger",
        "typeProperties": {
          ...
          }
        },
        "pipeline": {
          "pipelineReference": {
            "type": "PipelineReference",
            "referenceName": "MyCopyPipeline"
          },
          "parameters": {
            "copySourceName": "FileSource"
          }
        }
      }
    }
    

    Další kroky

    V následujících kurzech najdete podrobné pokyny pro vytváření kanálů s aktivitami:

    Jak dosáhnout CI/CD (kontinuální integrace a doručování) pomocí Azure Data Factory