Skapa datafabriksaktiviteter och pipelines

Slutförd

Aktiviteter i Azure Data Factory definierar de åtgärder som ska utföras på data och det finns tre kategorier, inklusive:

  • Dataförflyttningsaktiviteter
  • Datatransformeringsaktiviteter
  • Kontrollaktiviteter

Dataförflyttningsaktiviteter

Dataförflyttningsaktiviteter flyttar helt enkelt data från ett datalager till ett annat. Du kan använda kopieringsaktiviteten för att utföra dataförflyttningsaktiviteter eller med hjälp av JSON. Det finns ett brett utbud av datalager som stöds som källa och som mottagare. Den här listan ökar ständigt och du hittar den senaste informationen här.

Datatransformeringsaktiviteter

Datatransformeringsaktiviteter kan utföras internt i redigeringsverktyget för Azure Data Factory med hjälp av Dataflöde mappning. Du kan också anropa en beräkningsresurs för att ändra eller förbättra data genom transformering eller utföra analys av data. Dessa omfattar beräkningstekniker som Azure Databricks, Azure Batch, SQL Database och Azure Synapse Analytics, Machine Learning Services, Azure Virtual Machines och HDInsight. Du kan använda alla befintliga SSIS-paket (SQL Server Integration Services) som lagras i en katalog för att köras i Azure

Eftersom den här listan alltid utvecklas kan du få den senaste informationen här.

Kontrollaktiviteter

När du skapar ADF-lösningar grafiskt kan du använda kontrollflödet i designen för att samordna pipelineaktiviteter som inkluderar länkningsaktiviteter i en sekvens, förgrening, definition av parametrar på pipelinenivå och skicka argument när du anropar pipelinen på begäran eller från en utlösare. Här är några av de nuvarande funktionerna:

Kontrollaktivitet beskrivning
Execute Pipeline-aktivitet Med Execute Pipeline-aktiviteten kan en Data Factory-pipeline anropa en annan pipeline.
ForEach-aktivitet ForEach-aktiviteten definierar ett upprepat kontrollflöde i din pipeline. Den här aktiviteten används till att iterera över en samling och kör angivna aktiviteter i en loop. Implementeringen av loopen för den här aktiviteten liknar Foreach-loopstrukturen i programmeringsspråk.
Webbaktivitet Webbaktiviteten kan används till att anropa en anpassad REST-slutpunkt från en Data Factory-pipeline. Du kan överföra datauppsättningar och länkade tjänster så att de förbrukas och används av aktiviteten.
Lookup-aktivitet Lookup-aktiviteten kan användas till att läsa eller söka efter en post/ett tabellnamn/ett värde från valfri extern källa. Dessa utdata kan vidare refereras av efterföljande aktiviteter.
GetMetadata-aktivitet GetMetadata-aktiviteten kan användas till att hämta metadata för data i Azure Data Factory.
Until-aktivitet Implementerar Do-Until-loop som liknar Do-Until-loopstrukturen i programmeringsspråk. En uppsättning aktiviteter körs i en loop tills det villkor som är associerat med aktiviteten utvärderas till sant. Du kan ange en tidsgräns för Until-aktiviteten i Data Factory.
If-villkorsaktivitet If-villkoret kan användas grenbaserat på villkor som utvärderas som sanna eller falska. If-villkoret fungerar på samma sätt som en if-sats i ett programmeringsspråk. Den utvärderar en uppsättning aktiviteter när villkoret utvärderas till sant och en annan uppsättning aktiviteter när villkoret utvärderas till false.
Wait-aktivitet När du använder en Wait-aktivitet i en pipeline väntar pipelinen under den angivna tidsperioden innan körningen återupptas med alla efterföljande aktiviteter.

Du kan få den senaste informationen här.

Aktiviteter och pipelines

Definiera aktiviteter

När du använder JSON-notation kan aktivitetsavsnittet ha en eller flera aktiviteter definierade i den. Det finns två huvudtyper av aktiviteter: körnings- och kontrollaktiviteter. Körningsaktiviteter (kallas även beräkning) omfattar aktiviteter för dataförflyttning och datatransformering. De har följande toppnivåstruktur:

{
    "name": "Execution Activity Name",
    "description": "description",
    "type": "<ActivityType>",
    "typeProperties":
    {
    },
    "linkedServiceName": "MyLinkedService",
    "policy":
    {
    },
    "dependsOn":
    {
    }
}

I följande tabell beskrivs egenskaper i ovanstående JSON:

Property Beskrivning Obligatoriskt
name Namnet på aktiviteten. Ja
description Text som beskriver vad aktiviteten eller används till. Nej
type Definierar typen av aktivitet. Ja
linkedServiceName Namnet på den länkade tjänst som används av aktiviteten. Ja för HDInsight, Machine Learning Batch-bedömningsaktivitet och lagrad proceduraktivitet
typeProperties Egenskaperna i avsnittet typeProperties beror på varje typ av aktivitet. Nej
policy Principer som påverkar körningsbeteende för aktiviteten. I den här egenskapen ingår tidsgräns- och omförsökbeteende. Nej
dependsOn Den här egenskapen används till att definiera aktivitetsberoenden och hur efterföljande aktiviteter beror på tidigare aktiviteter. Nej

Definiera kontrollaktiviteter

En kontrollaktivitet i Data Factory definieras i JSON-format enligt följande:

{
    "name": "Control Activity Name",
    "description": "description",
    "type": "<ActivityType>",
    "typeProperties":
    {
    },
    "dependsOn":
    {
    }
}

I följande tabell beskrivs egenskaper i ovanstående JSON:

Property Beskrivning Obligatoriskt
name Namnet på aktiviteten. Ja
description Text som beskriver vad aktiviteten eller används till. Ja
type Definierar typen av aktivitet. Ja
typeProperties Egenskaperna i avsnittet typeProperties beror på varje typ av aktivitet. Nej
dependsOn Den här egenskapen används till att definiera aktivitetsberoenden och hur efterföljande aktiviteter beror på tidigare aktiviteter. Nej

Definiera pipelines

Så här definieras en pipeline i JSON-format:

{
    "name": "PipelineName",
    "properties":
    {
        "description": "pipeline description",
        "activities":
        [
        ],
        "parameters": {
         }
    }
}

I följande tabell beskrivs egenskaper i ovanstående JSON:

Property Beskrivning Obligatoriskt
name Namnet på pipeline. Ja
description Text som beskriver vad pipelinen används till. Nej
activities Avsnittet activities kan ha en eller flera definierade aktiviteter. Ja
parametrar Avsnittet parameters kan ha en eller flera definierade parametrar i pipeline, vilket gör pipeline flexibel för återanvändning. Nej

Exempel

Följande JSON definierar pipeline med namnet "MyFirstPipeline" som innehåller en aktivitetstyp av HDInsightHive som anropar en fråga från ett skriptnamn "partitionweblogs.hql" som lagras i den länkade tjänsten med namnet "StorageLinkedService", med indata med namnet "AzureBlobInput" och utdata med namnet "AzureBlobOutput". Den kör detta mot beräkningsresursen som definierats i den länkade tjänsten med namnet "HDInsightOnDemandLinkedService"

Pipelinen är schemalagd att köras varje månad och försöker köra 3 gånger om den misslyckas.

{
    "name": "MyFirstPipeline",
    "properties": {
        "description": "My first Azure Data Factory pipeline",
        "activities": [
            {
                "type": "HDInsightHive",
                "typeProperties": {
                    "scriptPath": "adfgetstarted/script/partitionweblogs.hql",
                    "scriptLinkedService": "StorageLinkedService",
                    "defines": {
                        "inputtable": "wasb://adfgetstarted@ctostorageaccount.blob.core.windows.net/inputdata",
                        "partitionedtable": "wasb://adfgetstarted@ctostorageaccount.blob.core.windows.net/partitioneddata"
                    }
                },
                "inputs": [
                    {
                        "name": "AzureBlobInput"
                    }
                ],
                "outputs": [
                    {
                        "name": "AzureBlobOutput"
                    }
                ],
                "policy": {
                    "concurrency": 1,
                    "retry": 3
                },
                "scheduler": {
                    "frequency": "Month",
                    "interval": 1
              },
                "name": "RunSampleHiveActivity",
                "linkedServiceName": "HDInsightOnDemandLinkedService"
            }
        ],
        "start": "2017-04-01T00:00:00Z",
        "end": "2017-04-02T00:00:00Z",
        "isPaused": false,
        "hubName": "ctogetstarteddf_hub",
        "pipelineMode": "Scheduled"
    }
}