Data Flow aktivitet i Azure Data Factory och Azure Synapse Analytics

GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics

Använd dataflödesaktiviteten Flow transformera och flytta data via mappning av dataflöden. Om dataflöden är nytt för dig kan du se Mappa data Flow översikt

Syntax

{
    "name": "MyDataFlowActivity",
    "type": "ExecuteDataFlow",
    "typeProperties": {
      "dataflow": {
         "referenceName": "MyDataFlow",
         "type": "DataFlowReference"
      },
      "compute": {
         "coreCount": 8,
         "computeType": "General"
      },
      "traceLevel": "Fine",
      "runConcurrently": true,
      "continueOnError": true,      
      "staging": {
          "linkedService": {
              "referenceName": "MyStagingLinkedService",
              "type": "LinkedServiceReference"
          },
          "folderPath": "my-container/my-folder"
      },
      "integrationRuntime": {
          "referenceName": "MyDataFlowIntegrationRuntime",
          "type": "IntegrationRuntimeReference"
      }
}

Typegenskaper

Egenskap Beskrivning Tillåtna värden Obligatorisk
dataflöde Referensen till data Flow körs DataFlowReference Yes
integrationRuntime Beräkningsmiljön som dataflödet körs på. Om inget anges används den automatiska lösningskörningen för Azure-integrering. IntegrationRuntimeReference No
compute.coreCount Antalet kärnor som används i Spark-klustret. Kan bara anges om den automatiskt lösa Azure Integration Runtime används 8, 16, 32, 48, 80, 144, 272 No
compute.computeType Den typ av beräkning som används i Spark-klustret. Kan bara anges om den automatiskt lösa Azure Integration Runtime används "General", "ComputeOptimized", "MemoryOptimized" No
staging.linkedService Om du använder en Azure Synapse Analytics eller mottagare anger du det lagringskonto som används för PolyBase-mellanlagring.

Om din Azure Storage har konfigurerats med VNet-tjänstslutpunkt måste du använda hanterad identitetsautentisering med "tillåt betrodd Microsoft-tjänst" aktiverat för lagringskontot.Se Effekten av att använda VNet-tjänstslutpunkter med Azure Storage . Lär dig även de nödvändiga konfigurationerna för Azure Blob och Azure Data Lake Storage Gen2.
LinkedServiceReference Endast om dataflödet läser eller skriver till en Azure Synapse Analytics
staging.folderPath Om du använder en Azure Synapse Analytics eller mottagare, mappsökvägen i bloblagringskontot som används för PolyBase-mellanlagring Sträng Endast om dataflödet läser eller skriver till Azure Synapse Analytics
traceLevel Ange loggningsnivå för körning av dataflödesaktivitet Fine, Grov, Ingen No

Köra data Flow

Ändra dataflödesbearbetningens storlek dynamiskt vid körning

Egenskaperna Antal kärnor och Beräkningstyp kan ställas in dynamiskt för att justera efter storleken på dina inkommande källdata vid körning. Använd pipeline-aktiviteter som Lookup eller Get Metadata för att hitta storleken på datauppsättningens källdata. Använd sedan Lägg till dynamiskt innehåll i Flow dataaktivitetsegenskaper.

Anteckning

När du väljer drivrutins- och arbetsnodkärnor Azure Synapse dataflöden används alltid minst 3 noder.

Dynamiska data Flow

Här är en kort videokurs som förklarar den här tekniken

Data Flow Integration Runtime

Välj vilken Integration Runtime ska användas för datakörningen Flow aktivitet. Som standard använder tjänsten Azure Integration Runtime för automatisk lösning med fyra arbetskärnor. Den här IR:en har en beräkningstyp för generell användning och körs i samma region som din tjänstinstans. För operationaliserade pipelines rekommenderar vi starkt att du skapar dina egna Azure Integration Runtimes som definierar specifika regioner, beräkningstyp, antal kärnor och TTL för körning av dataflödesaktivitet.

En minsta beräkningstyp på Generell användning (beräkningsoptimerad rekommenderas inte för stora arbetsbelastningar) med en konfiguration på 8+8 (totalt 16 virtuella kärnor) och en 10-minutersrekommendation är minimirekommendationen för de flesta produktionsarbetsbelastningar. Genom att ange en liten TTL kan Azure IR underhålla ett varmt kluster som inte medför flera minuters starttid för ett kallt kluster. Du kan påskynda körningen av dina dataflöden ännu mer genom att välja "Snabb återanvändning" i Azure IR av dataflödeskonfigurationer. Mer information finns i Azure Integration Runtime.

Azure Integration Runtime

Viktigt

Valet Integration Runtime data i dataaktiviteten Flow endast för utlösta körningar av din pipeline. Felsökning av din pipeline med dataflöden körs i det kluster som anges i felsökningssessionen.

PolyBase

Om du använder en Azure Synapse Analytics som mottagare eller källa måste du välja en mellanlagringsplats för din PolyBase-batchbelastning. PolyBase tillåter batchinläsning i grupp i stället för att läsa in data rad för rad. PolyBase minskar drastiskt inläsningstiden till Azure Synapse Analytics.

Loggningsnivå

Om du inte behöver alla pipelinekörningar av dina dataflödesaktiviteter för att helt logga alla utförliga telemetriloggar kan du välja att ställa in din loggningsnivå på "Basic" eller "None". När du kör dina dataflöden i "utförligt" läge (standard) begär du att tjänsten ska logga aktiviteten fullständigt på varje enskild partitionsnivå under datatransformering. Detta kan vara en dyr åtgärd, så att bara aktivera utförlig när felsökning kan förbättra det övergripande dataflödet och pipelineprestandan. Läget "Basic" loggar endast omvandlingens varaktigheter medan "Ingen" endast ger en sammanfattning av varaktigheter.

Loggningsnivå

Egenskaper för mottagare

Med grupperingsfunktionen i dataflöden kan du både ange körningsordningen för dina mottagare samt gruppera mottagare tillsammans med samma gruppnummer. För att hantera grupper kan du be tjänsten att köra mottagare parallellt i samma grupp. Du kan också ange att mottagaresgruppen ska fortsätta även efter att en av mottagare påträffar ett fel.

Standardbeteendet för dataflödes mottagare är att köra varje mottagare sekventiellt, på ett seriellt sätt och att misslyckas dataflödet när ett fel påträffas i mottagaren. Dessutom är alla mottagare som standard samma grupp om du inte går in i dataflödesegenskaperna och anger olika prioriteter för mottagare.

Egenskaper för mottagare

Endast första raden

Det här alternativet är endast tillgängligt för dataflöden som har cache-mottagare aktiverade för "Utdata till aktivitet". Utdata från dataflödet som matas in direkt i din pipeline är begränsade till 2 MB. Genom att ange "endast första raden" kan du begränsa datautdata från dataflödet när du matar in dataflödesaktivitetsutdata direkt till din pipeline.

Parametrisera dataflöden

Parametriserade datauppsättningar

Om ditt dataflöde använder parametriserade datauppsättningar anger du parametervärdena på Inställningar fliken.

Köra data Flow parametrar

Parametriserade dataflöden

Om ditt dataflöde är parametriserat anger du de dynamiska värdena för dataflödesparametrarna på fliken Parametrar. Du kan använda antingen språket för pipelineuttryck eller uttrycksspråket för dataflöde för att tilldela dynamiska eller literala parametervärden. Mer information finns i Data Flow Parametrar.

Parametriserade beräkningsegenskaper.

Du kan parameterisera antalet kärnor eller beräkningstypen om du använder den automatiska lösningskörningen för Azure Integration och anger värden för compute.coreCount och compute.computeType.

Exempel på körning Flow data och parameter

Pipelinefelsökning av data Flow aktivitet

Om du vill köra en felsökningspipelinekörning med en Data Flow-aktivitet måste du växla i felsökningsläge för dataflöde via skjutreglaget Data Flow Debug i det översta fältet. Med felsökningsläget kan du köra dataflödet mot ett aktivt Spark-kluster. Mer information finns i Felsökningsläge.

Skärmbild som visar var är felsökningsknappen

Felsökningspipelinen körs mot det aktiva felsökningsklustret, inte integreringskörningsmiljön som anges i inställningarna Flow dataaktivitet. Du kan välja beräkningsmiljö för felsökning när du startar felsökningsläget.

Övervaka dataaktiviteten Flow data

Dataaktiviteten Flow har en särskild övervakningsupplevelse där du kan visa information om partitionering, fastid och data härledning. Öppna övervakningsfönstret via glasögonikonen under Åtgärder. Mer information finns i Övervaka dataflöden.

Använd Data Flow aktivitetsresultat i en efterföljande aktivitet

Dataflödesaktiviteten matar ut mått om antalet rader som skrivs till varje mottagare och rader som läses från varje källa. Dessa resultat returneras i output avsnittet i aktivitetskörningsresultatet. De mått som returneras har formatet json nedan.

{
    "runStatus": {
        "metrics": {
            "<your sink name1>": {
                "rowsWritten": <number of rows written>,
                "sinkProcessingTime": <sink processing time in ms>,
                "sources": {
                    "<your source name1>": {
                        "rowsRead": <number of rows read>
                    },
                    "<your source name2>": {
                        "rowsRead": <number of rows read>
                    },
                    ...
                }
            },
            "<your sink name2>": {
                ...
            },
            ...
        }
    }
}

Om du till exempel vill komma till antalet rader som skrivits till en mottagare med namnet "sink1" i en aktivitet med namnet "dataflowActivity" använder du @activity('dataflowActivity').output.runStatus.metrics.sink1.rowsWritten .

Om du vill hämta antalet rader som lästs från en källa med namnet "source1" som användes i den mottagaren använder du @activity('dataflowActivity').output.runStatus.metrics.sink1.sources.source1.rowsRead .

Anteckning

Om en mottagare har noll rader skrivna visas den inte i mått. Förekomsten kan verifieras med hjälp av contains funktionen . Kontrollerar till contains(activity('dataflowActivity').output.runStatus.metrics, 'sink1') exempel om några rader har skrivits till sink1.

Nästa steg

Se kontrollflödesaktiviteter som stöds: