Data Flow-aktivitet i Azure Data Factory och Azure Synapse Analytics

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

Tips

Data Factory i Microsoft Fabric är nästa generations Azure Data Factory, med en enklare arkitektur, inbyggd AI och nya funktioner. Om dataintegrering är nytt för dig börjar du med Fabric Data Factory. Befintliga ADF-arbetsbelastningar kan uppgraderas till Fabric för att få åtkomst till nya funktioner inom datavetenskap, realtidsanalys och rapportering.

Använd aktiviteten Data Flow för att transformera och flytta data via mappning av dataflöden. Om du inte har använt dataflöden tidigare kan du läsa Mapping Data Flow översikt

Skapa en Data Flow aktivitet med användargränssnittet

Utför följande steg för att använda en Data Flow aktivitet i en pipeline:

  1. Sök efter Data Flow i aktiviteter för pipeline och dra en Data Flow-aktivitet till arbetsytan för pipeline.

  2. Välj den nya Data Flow aktiviteten på arbetsytan om den inte redan är markerad och dess Inställningar fliken för att redigera dess information.

    Visa användargränssnittet för en Data Flow activity.

  3. Kontrollpunktsnyckeln används för att ange kontrollpunkten när dataflödet används för ändrad datainsamling. Du kan skriva över den. Dataflödesaktiviteter använder ett guid-värde som kontrollpunktsnyckel i stället för "pipelinenamn + aktivitetsnamn" så att de alltid kan fortsätta spåra kundens status för ändringsdatainsamling även om det finns några namnbytesåtgärder. All befintlig dataflödesaktivitet använder den gamla mönsternyckeln för bakåtkompatibilitet. Alternativet Kontrollpunktsnyckel när du har publicerat en ny dataflödesaktivitet med aktiverad dataflödesresurs med ändringsdatainsamling visas enligt nedan.

    Visa användargränssnittet för en Data Flow aktivitet med kontrollpunktsnyckel.

  4. Välj ett befintligt dataflöde eller skapa ett nytt med knappen Nytt. Välj andra alternativ efter behov för att slutföra konfigurationen.

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 Obligatoriskt
dataflöde Referensen till det datatflöde som körs DataFlowReference Ja
integrationRuntime Beräkningsmiljön som dataflödet körs på. Om det inte anges används den autoupplösande Azure integrationskörning. IntegrationRuntimeReference Nej
compute.coreCount Antalet kärnor som används i Spark-klustret. Kan bara anges om autoupplösning för Azure Integration Runtime används 8, 16, 32, 48, 80, 144, 272 Nej
compute.computeType Den typ av beräkning som används i Spark-klustret. Kan bara anges om autoupplösning för Azure Integration Runtime används "Allmänt" Nej
staging.linkedService Om du använder en Azure Synapse Analytics källa eller mottagare anger du det lagringskonto som används för PolyBase-mellanlagring.

Om din Azure Storage har konfigurerats med VNet-tjänstslutpunkten måste du använda hanterad identitetsautentisering med "tillåt betrodd Microsoft tjänst" aktiverad på lagringskontot, se Impact of using VNet Service Endpoints with Azure storage. Lär dig även de konfigurationer som behövs för Azure Blob respektive 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 källa eller destination i Azure Synapse Analytics, används mappsökvägen i ditt bloblagringskonto för PolyBase-mellanlagring. String Endast om dataflödet läser eller skriver till Azure Synapse Analytics
traceLevel Ange loggningsnivå för exekvering av dataflödesaktivitet Fin, Grov, Ingen Nej

Kör Dataflöde

Dynamisk storlek på dataflödesberäkning vid körning

Egenskaperna Core Count och Compute Type kan ställas in dynamiskt för att justera till storleken på dina inkommande källdata vid körningstid. Använd pipelineaktiviteter som Sökning eller Hämta metadata för att hitta storleken på källdatauppsättningsdata. Använd sedan Lägg till dynamiskt innehåll i Data Flow aktivitetsegenskaper. Du kan välja små, medelstora eller stora beräkningsstorlekar. Du kan också välja "Anpassad" och konfigurera beräkningstyperna och antalet kärnor manuellt.

Dynamisk Dataflöde

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

Data Flow integrationskörning

Välj vilka Integration Runtime som ska användas för körningen av Data Flow aktivitet. Som standard använder tjänsten autoresolve Azure Integration Runtime med fyra arbetskärnor. Den här IR:t 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 egna Azure integrationskörningar som definierar specifika regioner, beräkningstyp, kärnantal och TTL för körning av dataflödesaktivitet.

En minsta beräkningstyp av Generell användning med en konfiguration på 8+8 (totalt 16 v-kärnor) och en TTL (Time to Live) på 10 minuter är den minsta rekommendationen 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. Mer information finns i Azure integration runtime.

Azure Integration Runtime

Viktigt!

Valet av Integration Runtime gäller endast för aktiverade körningar för din pipeline i Data Flow-aktiviteten. Felsökning av din pipeline med dataflöden körs i klustret som anges i felsökningssessionen.

PolyBase

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

Kontrollpunktsnyckel

När du använder alternativet för ändringsinsamling för dataflödeskällor underhåller och hanterar ADF kontrollpunkten åt dig automatiskt. Standardkontrollpunktsnyckeln är en hash för dataflödesnamnet och pipelinenamnet. Om du använder ett dynamiskt mönster för dina källtabeller eller -mappar kanske du vill åsidosätta den här hashen och ange ett eget värde för kontrollpunktsnyckeln här.

Loggningsnivå

Om du inte kräver varje pipelinekörning av dina dataflödesaktiviteter för att fullständigt logga alla utförliga telemetriloggar kan du ange loggningsnivån till "Basic" eller "None". När du kör dina dataflöden i "utförligt" läge (standard) begär du att tjänsten loggar aktivitet fullt ut på varje enskild partitionsnivå under dataomvandlingen. Detta kan vara en dyr åtgärd, så att bara aktivera utförliga när du felsöker kan förbättra ditt övergripande dataflöde och pipelineprestanda. "Basic"-läget loggar endast transformeringsvaraktigheterna medan "Ingen" endast ger en sammanfattning av varaktigheter.

Loggningsnivå

Egenskaper för mottagningsenhet

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

Standardbeteendet för dataflödesmottagare är att köra varje mottagare sekventiellt, på ett seriellt sätt, och att misslyckas med 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 sänka

Endast första raden

Det här alternativet är endast tillgängligt för dataflöden som har cachesänkor aktiverade för "Utdata till aktivitet". Utdata från det dataflöde som matas in direkt i din pipeline är begränsad till 2 MB. Om du ställer in "endast första raden" kan du begränsa datautflödet från dataflödet när utdata från dataflödesaktiviteten direkt införs i din pipeline.

Parameterisera Dataflöde

Parameteriserade datauppsättningar

Om dataflödet använder parametriserade datamängder anger du parametervärdena på fliken Inställningar .

Verkställ dataflödesparametrar

Parameteriserade dataflöden

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

Parameteriserade beräkningsegenskaper.

Du kan parametrisera kärnantalet eller beräkningstypen om du använder den automatiska Azure Integration Runtime och anger värden för compute.coreCount och compute.computeType.

Exekvera Dataflödesparameter Exempel

Felsökning av dataflödesaktivitet i pipeline

Om du vill utföra en felsökningskörning av en pipeline med aktiviteten Dataflöde, måste du aktivera felsökningsläget för dataflöde via skjutreglaget Data Flow Felsökning i det övre 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 den integrationskörningsmiljö som anges i Data Flow aktivitetsinställningarna. Du kan välja felsökningsmiljön för beräkning när du startar felsökningsläget.

Övervaka Data Flow aktivitet

Data Flow-aktiviteten har en speciell övervakningsfunktion där du kan visa information om partitionering, steghastighet och datalinjär. Öppna övervakningsfönstret via glasögonikonen under Åtgärder. Mer information finns i Övervakning Dataflöde.

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

Dataflödesaktiviteten genererar mätvärden om antalet rader som skrivs till varje mottagare och rader som läses från varje källsystem. Dessa resultat returneras i output avsnittet i aktivitetskörningsresultatet. De mått som returneras är i formatet för 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 ta reda på 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 mottagaren använder du @activity('dataflowActivity').output.runStatus.metrics.sink1.sources.source1.rowsRead.

Kommentar

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

Se kontrollflödesaktiviteter som stöds: