Omvandling av mottagare i mappning av dataflöde

gäller för: Azure Data Factory Azure Synapse Analytics

När du har transformerade dina data skriver du dem till ett målarkiv med hjälp av mottagartransformeringen. Varje dataflöde kräver minst en omvandling av mottagare, men du kan skriva till så många mottagare som behövs för att slutföra transformeringsflödet. Om du vill skriva till ytterligare mottagare skapar du nya strömmar via nya grenar och villkorliga delningar.

Varje transformering av mottagare är associerad med exakt Azure Data Factory datauppsättningsobjekt eller länkad tjänst. Omvandlingen av mottagaren avgör formen och platsen för de data som du vill skriva till.

Infogade datauppsättningar

När du skapar en omvandling av mottagare väljer du om din mottagares information har definierats i ett datamängdsobjekt eller i omvandlingen av mottagaren. De flesta format är bara tillgängliga i det ena eller det andra. Information om hur du använder en specifik anslutningsapp finns i dokumentet om lämpliga anslutningsappar.

När ett format stöds för både infogade och i ett datamängdsobjekt finns det fördelar med båda. Datauppsättningsobjekt är återanvändbara entiteter som kan användas i andra dataflöden och aktiviteter som Kopiera. Dessa återanvändbara entiteter är särskilt användbara när du använder ett härdat schema. Datauppsättningar baseras inte i Spark. Ibland kan du behöva åsidosätta vissa inställningar eller schemaprojektion i omvandlingen av mottagaren.

Infogade datauppsättningar rekommenderas när du använder flexibla scheman, instanser av en enda mottagare eller parametriserade mottagare. Om mottagaren är kraftigt parametriserad kan du med infogade datauppsättningar inte skapa ett "dummy"-objekt. Infogade datauppsättningar är baserade i Spark och deras egenskaper är inbyggda i dataflödet.

Om du vill använda en infogade datauppsättning väljer du det format som du vill använda i väljaren Typ av mottagare. I stället för att välja en datauppsättning för mottagare väljer du den länkade tjänst som du vill ansluta till.

Skärmbild som visar Infogad markerad.

Typer av mottagare som stöds

Mappning av dataflöde följer en ELT-metod (extrahering, inläsning och transformering) och fungerar med mellanlagring av datauppsättningar som finns i Azure. För närvarande kan följande datauppsättningar användas i en källtransformering.

Anslutning Format Datauppsättning/infogade
Azure Blob Storage Avro
Avgränsad text
Delta
JSON
Orc
Parquet
✓/-
✓/-
-/✓
✓/-
✓/✓
✓/-
Azure Cosmos DB (SQL API) ✓/-
Azure Data Lake Storage Gen1 Avro
Avgränsad text
JSON
Orc
Parquet
✓/-
✓/-
✓/-
✓/✓
✓/-
Azure Data Lake Storage Gen2 Avro
Common Data Service
Avgränsad text
Delta
JSON
Orc
Parquet
✓/-
-/✓
✓/-
-/✓
✓/-
✓/✓
✓/-
Azure Database for MySQL ✓/✓
Azure Database for PostgreSQL ✓/✓
Azure SQL Database ✓/✓
Hanterad Azure SQL-instans ✓/-
Azure Synapse Analytics ✓/-
Snowflake ✓/✓
SQL Server ✓/✓

Inställningar som är specifika för dessa anslutningsappar finns Inställningar fliken. Exempel på informations- och dataflödesskript för dessa inställningar finns i dokumentationen för anslutningsappen.

Azure Data Factory har åtkomst till fler än 90 inbyggda anslutningsappar. Om du vill skriva data till de andra källorna från ditt dataflöde använder du kopieringsaktiviteten för att läsa in dessa data från en mottagare som stöds.

Inställningar för mottagare

När du har lagt till en mottagare konfigurerar du via fliken Mottagare. Här kan du välja eller skapa den datauppsättning som din mottagare skriver till. Utvecklingsvärden för datauppsättningsparametrar kan konfigureras i felsökningsinställningarna. (Felsökningsläget måste vara aktiverat.)

I följande video beskrivs ett antal olika alternativ för mottagare för textavgränsade filtyper.

Skärmbild som visar inställningar för mottagare.

Schemaavdrift: Schemaavdrift är möjligheten Data Factory att inbyggt hantera flexibla scheman i dina dataflöden utan att behöva definiera kolumnändringar explicit. Aktivera Tillåt schemaavdrift för att skriva ytterligare kolumner ovanpå det som definieras i schemat för mottagaresdata.

Validera schema: Om validera schema har valts misslyckas dataflödet om det inte finns någon kolumn i det inkommande källschemat i källprojektionen, eller om datatyperna inte matchar. Använd den här inställningen för att framtvinga att källdata uppfyller kontraktet för den definierade projektionen. Det är användbart i databaskällscenarier för att signalera att kolumnnamn eller typer har ändrats.

Cache-mottagare

En cache-mottagare är när ett dataflöde skriver data till Spark-cachen i stället för ett datalager. När du mappar dataflöden kan du referera till dessa data i samma flöde många gånger med hjälp av en cache-sökning. Detta är användbart när du vill referera till data som en del av ett uttryck, men inte uttryckligen vill koppla kolumnerna till det. Vanliga exempel där en cache-mottagare kan vara till hjälp för att leta upp ett maxvärde för ett datalager och matcha felkoder till en felmeddelandedatabas.

Om du vill skriva till en cache-mottagare lägger du till en transformering för mottagare och väljer Cache som typ av mottagare. Till skillnad från andra typer av mottagare behöver du inte välja en datauppsättning eller länkad tjänst eftersom du inte skriver till ett externt arkiv.

Välj cache mottagare

I inställningarna för mottagare kan du välja att ange nyckelkolumnerna för cache-mottagaren. Dessa används som matchande villkor när du använder lookup() funktionen i en cache-sökning. Om du anger nyckelkolumner kan du inte använda outputs() funktionen i en cache-sökning. Mer information om syntaxen för cacheuppslag finns i cachelagrade uppslag.

Nyckelkolumner för cache-mottagare

Om jag till exempel anger en enda nyckelkolumn i i en cache-mottagare med namnet , skulle anropet ha en parameter som anger vilken rad i column1 cacheExample cacheExample#lookup() cache-mottagaren som ska matchas. Funktionen matar ut en enda komplex kolumn med underkolumner för varje mappad kolumn.

Anteckning

En cache-mottagare måste finnas i en helt oberoende dataström från alla transformationer som refererar till den via en cache-sökning. En cache-mottagare måste också den första mottagaren skrivas.

Skriv till aktivitetsutdata Den cachelagrade mottagaren kan eventuellt skriva dina utdata till indata för nästa pipelineaktivitet. På så sätt kan du snabbt och enkelt skicka data från din dataflödesaktivitet utan att behöva spara data i ett datalager.

Fältmappning

På samma sätt som vid en select-transformering kan du på fliken Mappning i mottagaren bestämma vilka inkommande kolumner som ska skrivas. Som standard mappas alla indatakolumner, inklusive fördrångade kolumner. Det här beteendet kallas automappning.

När du inaktiverar automappning kan du lägga till antingen fasta kolumnbaserade mappningar eller regelbaserade mappningar. Med regelbaserade mappningar kan du skriva uttryck med mönstermatchning. Mappningen mappar logiska och fysiska kolumnnamn. Mer information om regelbaserad mappning finns i Kolumnmönster i mappning av dataflöde.

Beställning av anpassad mottagare

Som standard skrivs data till flera mottagare i en icke-terministisk ordning. Körningsmotorn skriver data parallellt när transformeringslogiken har slutförts och sinkordningen kan variera varje körning. Om du vill ange en exakt mottagaresordning aktiverar du Anpassad mottagaresordningfliken Allmänt i dataflödet. När den här inställningen är aktiverad skrivs mottagare sekventiellt i stigande ordning.

Skärmbild som visar beställning av anpassade mottagare.

Anteckning

När du använder cachelagradeuppslag ska du se till att din mottagare har cachelagrade mottagare inställda på 1, den lägsta (eller första) i ordningen.

Beställning av anpassade mottagare

Mottagare grupper

Du kan gruppera mottagare genom att använda samma ordernummer för en serie mottagare. ADF behandlar dessa mottagare som grupper som kan köras parallellt. Alternativ för parallell körning visas i pipelinedataflödesaktiviteten.

Felhantering av poster

När du skriver till databaser kan vissa rader med data misslyckas på grund av begränsningar som anges av målet. Som standard misslyckas en dataflödeskörning vid det första felet som den får. I vissa anslutningsappar kan du välja fortsätt vid fel som gör att ditt dataflöde kan slutföras även om enskilda rader har fel. För närvarande är den här funktionen endast tillgänglig i Azure SQL Database och Synapse. Mer information finns i felradshantering i Azure SQL DB.

Nedan visas en videokurs om hur du använder databasfelradshantering automatiskt i din transformering av mottagare.

Dataförhandsgranskning i mottagare

När du hämtar en förhandsgranskning av data i felsökningsläge skrivs inga data till mottagaren. En ögonblicksbild av hur data ser ut returneras, men inget skrivs till målet. Om du vill testa att skriva data till mottagaren kör du en pipelinefelsökning från pipelinearbetsytan.

Dataflödesskript

Exempel

Nedan visas ett exempel på en omvandling av en mottagare och dess dataflödesskript:

sink(input(
        movie as integer,
        title as string,
        genres as string,
        year as integer,
        Rating as integer
    ),
    allowSchemaDrift: true,
    validateSchema: false,
    deletable:false,
    insertable:false,
    updateable:true,
    upsertable:false,
    keys:['movie'],
    format: 'table',
    skipDuplicateMapInputs: true,
    skipDuplicateMapOutputs: true,
    saveOrder: 1,
    errorHandlingOption: 'stopOnFirstError') ~> sink1

Nästa steg

Nu när du har skapat ditt dataflöde lägger du till en dataflödesaktivitet i din pipeline.