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 |
Ä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.
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.
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.
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.
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.
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.
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.
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: