Ange returvärde för pipeline 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!
I det anropande pipeline-underordnade pipelineparadigmet kan du använda aktiviteten Ange variabel för att returnera värden från den underordnade pipelinen till den anropande pipelinen. I följande scenario har vi en underordnad pipeline via Kör pipelineaktivitet. Och vi vill hämta information från den underordnade pipelinen och sedan användas i den anropande pipelinen.
Introducera returvärde för pipeline, en ordlista med nyckelvärdepar, som möjliggör kommunikation mellan underordnade pipelines och överordnad pipeline.
Krav – Anropa en underordnad pipeline
Som en förutsättning behöver din design en Körningspipelineaktivitet som anropar en underordnad pipeline, med Vänta vid slutförande aktiverat på aktiviteten.
Konfigurera returvärde för pipeline i underordnad pipeline
Vi expanderade aktiviteten Ange variabel för att inkludera systemvariabler Pipeline Return Value. Du behöver inte definiera dem på pipelinenivå (till skillnad från andra variabler som du använder i pipelinen).
- Sök efter Ange variabel i fönstret Pipelineaktiviteter och dra en Aktivitet för att ange variabel till pipelinearbetsytan.
- Välj aktiviteten Ange variabel på arbetsytan om den inte redan är markerad och sedan fliken Variabler för att redigera dess information.
- Välj Returvärde för pipeline för variabeltyp.
- Välj Ny för att lägga till ett nytt nyckelvärdepar.
- Antalet nyckel/värde-par som kan läggas till begränsas endast av storleksgränsen för den returnerade JSON(4 MB).
Det finns några alternativ för värdetyper, inklusive
Typnamn | beskrivning |
---|---|
String | Ett konstant strängvärde. till exempel: "ADF är fantastiskt" |
Uttryck | Du kan referera till utdata från tidigare aktiviteter. Du kan använda stränginterpolation här för att inkludera värden för infogade uttryck, till exempel "The value is @{guid()}" . |
Matris | Den förväntar sig en matris med strängvärden. Tryck på "retur"-tangenten för att avgränsa värden i matrisen |
Booleskt | Sant eller Falskt |
Null | Status för signalplatshållare; värdet är konstant null |
Int | Ett numeriskt värde av heltalstyp. Till exempel: 42 |
Flyttal | Ett numeriskt värde av flyttaltyp. Till exempel: 2.71828 |
Objekt | Varning endast för komplicerade användningsfall. Det gör att du kan bädda in en lista med nyckelvärdepartyp för värdet |
Värdet för objekttypen definieras på följande sätt:
[{"key": "myKey1", "value": {"type": "String", "content": "hello world"}},
{"key": "myKey2", "value": {"type": "String", "content": "hi"}}
]
Hämtar värde i anropspipeline
Returvärdet för pipelinen för den underordnade pipelinen blir aktivitetsutdata för körningspipelineaktiviteten. Du kan hämta informationen med @activity('Execute Pipeline1').output.pipelineReturnValue.keyName. Användningsfallet är obegränsat. Du kan till exempel använda
- Ett int-värde från en underordnad pipeline för att definiera väntetiden för en vänteaktivitet.
- Ett strängvärde för att definiera URL:en för webbaktiviteten.
- Ett uttrycksvärdesnyttolast för en skriptaktivitet i loggningssyfte.
Det finns två märkbara pratbubblar när du refererar till pipelinens returvärden.
- Med Objekttyp kan du expandera ytterligare till det kapslade json-objektet, till exempel @activity('Execute Pipeline1').output.pipelineReturnValue.keyName.nextLevelKey
- Med matristypen kan du ange indexet i listan med @activity('Execute Pipeline1').output.pipelineReturnValue.keyName[0]. Talet är noll indexerat, vilket innebär att det börjar med 0.
Kommentar
Kontrollera att keyName som du refererar till finns i den underordnade pipelinen. ADF-uttrycksverktyget kan inte bekräfta referenskontrollen åt dig. Pipelinen misslyckas om nyckeln som refereras saknas i nyttolasten
Särskilda överväganden
Även om du kan inkludera flera set pipeline return value-aktiviteter i en pipeline är det viktigt att se till att endast en av dem körs i pipelinen.
För att undvika det tidigare beskrivna saknade nyckelproblemet när den anropande pipelinen, rekommenderar vi att du har samma lista med nycklar för alla grenar i den underordnade pipelinen. Överväg att använda null-typer för nycklar som inte har värden i en specifik gren.
Azure Data Factory-uttrycksspråket stöder inte direkt infogade JSON-objekt. I stället är det nödvändigt att sammanfoga strängar och uttryck korrekt.
Till exempel för följande JSON-uttryck:
{ "datetime": "@{utcnow()}", "date": "@{substring(utcnow(),0,10)}", "year": "@{substring(utcnow(),0,4)}", "month": "@{substring(utcnow(),5,2)}", "day": "@{substring(utcnow(),8,2)}" }
Ett motsvarande Azure Data Factory-uttryck skulle vara:
@{ concat( '{', '"datetime": "', utcnow(), '", ', '"date": "', substring(utcnow(),0,10), '", ', '"year": "', substring(utcnow(),0,4), '", ', '"month": "', substring(utcnow(),5,2), '", ', '"day": "', substring(utcnow(),8,2), '"', '}' ) }
Relaterat innehåll
Läs mer om en annan relaterad kontrollflödesaktivitet: