Dataflödesaktivitet i Azure Data Factory och Azure Synapse Analytics

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

Dricks

Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!

Använd dataflödesaktiviteten 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 Översikt över mappning av dataflöde

Skapa en dataflödesaktivitet med användargränssnittet

Utför följande steg för att använda en dataflödesaktivitet i en pipeline:

  1. Sök efter dataflöde i fönstret Pipelineaktiviteter och dra en dataflödesaktivitet till pipelinearbetsytan.

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

    Visar användargränssnittet för en dataflödesaktivitet.

  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.

    Visar användargränssnittet för en dataflödesaktivitet 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

Property beskrivning Tillåtna värden Obligatoriskt
dataflöde Referensen till dataflödet som körs DataFlowReference Ja
integrationRuntime Beräkningsmiljön som dataflödet körs på. Om det inte anges används den automatiska Azure-integreringskörningen. IntegrationRuntimeReference Nej
compute.coreCount Antalet kärnor som används i Spark-klustret. Det går bara att ange om den automatiska Azure Integration-körningen används 8, 16, 32, 48, 80, 144, 272 Nej
compute.computeType Den typ av beräkning som används i Spark-klustret. Det går bara att ange om den automatiska Azure Integration-körningen 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 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 Påverkan av att använda VNet-tjänstslutpunkter med Azure Storage. Lär dig också 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 Azure Synapse Analytics-källa eller mottagare, mappsökvägen i bloblagringskontot som används för Mellanlagring av PolyBase String Endast om dataflödet läser eller skriver till Azure Synapse Analytics
traceLevel Ange loggningsnivå för körning av dataflödesaktivitet Fine, Coarse, None Nej

Köra 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örning. 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 egenskaperna för dataflödesaktivitet. 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.

Dynamiskt dataflöde

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

Körning av dataflödesintegrering

Välj vilken Integration Runtime som ska användas för körningen av dataflödesaktiviteten. Som standard använder tjänsten Azure Integration Runtime med automatisk upplösning och 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 dina egna Azure Integration Runtimes som definierar specifika regioner, beräkningstyp, kärnantal och TTL för körning av dataflödesaktivitet.

En minsta beräkningstyp för 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 Integration Runtime i dataflödesaktiviteten gäller endast för utlösta körningar av din pipeline. Felsökning av din pipeline med dataflöden körs i klustret 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 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 i 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 mottagare

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 mottagare påträffar 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 mottagare

Endast första raden

Det här alternativet är endast tillgängligt för dataflöden som har cachemottagare 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 anger "endast första raden" kan du begränsa datautdata från dataflödet när du matar in dataflödesaktivitetens utdata direkt till din pipeline.

Parameterisera dataflöden

Parameteriserade datauppsättningar

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

Köra 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 Dataflödesparametrar.

Parameteriserade beräkningsegenskaper.

Du kan parametrisera antalet kärnor eller beräkningstypen om du använder Azure Integration-körningen automatiskt och anger värden för compute.coreCount och compute.computeType.

Exempel på körning av dataflödesparameter

Pipelinefelsökning av dataflödesaktivitet

Om du vill köra en felsökningspipelinekörning med en dataflödesaktivitet måste du aktivera felsökningsläget för dataflöden via skjutreglaget För felsökning av dataflöde 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 inställningarna för dataflödesaktivitet. Du kan välja felsökningsmiljön för beräkning när du startar felsökningsläget.

Övervaka dataflödesaktiviteten

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

Använda dataflödesaktivitetsresultat i en efterföljande aktivitet

Dataflödesaktiviteten matar ut mått om antalet rader som skrivs till varje mottagare och rader som läse från varje källa. 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 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 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 . Kontrollerar contains(activity('dataflowActivity').output.runStatus.metrics, 'sink1') till exempel om några rader har skrivits till sink1.

Se kontrollflödesaktiviteter som stöds: