Retourwaarde voor pijplijn instellen in Azure Data Factory en Azure Synapse Analytics
VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics
Tip
Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .
In het onderliggende pijplijnparadigma voor aanroepen kunt u de activiteit Variabele instellen gebruiken om waarden van de onderliggende pijplijn te retourneren naar de aanroepende pijplijn. In het volgende scenario hebben we een onderliggende pijplijn via Pijplijnactiviteit uitvoeren. En we willen informatie ophalen uit de onderliggende pijplijn om vervolgens te worden gebruikt in de aanroepende pijplijn.
Introduceer de retourwaarde van pijplijn, een woordenlijst met sleutel-waardeparen, waarmee communicatie tussen onderliggende pijplijnen en bovenliggende pijplijn mogelijk is.
Vereiste: een onderliggende pijplijn aanroepen
Als vereiste heeft uw ontwerp een Execute Pipeline-activiteit nodig die een onderliggende pijplijn aanroept, waarbij wachten op voltooiing is ingeschakeld voor de activiteit.
Retourwaarde voor pijplijn configureren in onderliggende pijplijn
We hebben de activiteit Variabele instellen uitgebreid met systeemvariabelen Pipeline Return Value. U hoeft deze niet op pijplijnniveau te definiëren (in tegenstelling tot andere variabelen die u in de pijplijn gebruikt).
- Zoek naar Variabele instellen in het deelvenster Pijplijnactiviteiten en sleep een activiteit Variabele instellen naar het pijplijncanvas.
- Selecteer de activiteit Variabele instellen op het canvas als deze nog niet is geselecteerd en vervolgens het tabblad Variabelen om de details ervan te bewerken.
- Kies de retourwaarde pijplijn voor het variabele type.
- Selecteer Nieuw om een nieuw sleutelwaardepaar toe te voegen.
- Het aantal sleutel-waardeparen dat kan worden toegevoegd, wordt alleen beperkt door de groottelimiet van de geretourneerde JSON (4 MB).
Er zijn enkele opties voor waardetypen, waaronder
Typenaam | Beschrijving |
---|---|
String | Een constante tekenreekswaarde. bijvoorbeeld: 'ADF is geweldig' |
Expression | Hiermee kunt u verwijzen naar uitvoer van eerdere activiteiten. U kunt hier tekenreeksinterpolatie gebruiken om inline-expressiewaarden zoals "The value is @{guid()}" . |
Matrix | Er wordt een matrix met tekenreekswaarden verwacht. Druk op Enter om waarden in de matrix te scheiden |
Booleaanse waarde | True of False |
Null | Status van tijdelijke aanduiding van signaal; de waarde gelijk is aan null |
Int | Een numerieke waarde van het type geheel getal. Bijvoorbeeld: 42 |
Float | Een numerieke waarde van het floattype. Bijvoorbeeld: 2.71828 |
Object | Alleen complexe gebruiksvoorbeelden voor waarschuwingen. Hiermee kunt u een lijst met sleutel-waardeparen insluiten voor de waarde |
De waarde van het objecttype wordt als volgt gedefinieerd:
[{"key": "myKey1", "value": {"type": "String", "content": "hello world"}},
{"key": "myKey2", "value": {"type": "String", "content": "hi"}}
]
Waarde ophalen in aanroepende pijplijn
De retourwaarde voor de pijplijn van de onderliggende pijplijn wordt de activiteitsuitvoer van de Execute Pipeline Activity. U kunt de informatie ophalen met @activity('Execute Pipeline1').output.pipelineReturnValue.keyName. De use case is onbeperkt. U kunt bijvoorbeeld
- Een int-waarde van de onderliggende pijplijn om de wachttijd voor een wachtactiviteit te definiëren.
- Een tekenreekswaarde om de URL voor de webactiviteit te definiëren.
- Een nettolading voor expressiewaarden voor een scriptactiviteit voor logboekregistratiedoeleinden.
Er zijn twee merkbare bijschriften bij het verwijzen naar de retourwaarden van de pijplijn.
- Met objecttype kunt u verder uitbreiden naar het geneste json-object, zoals @activity('Execute Pipeline1').output.pipelineReturnValue.keyName.nextLevelKey
- Met matrixtype kunt u de index in de lijst opgeven met @activity('Execute Pipeline1').output.pipelineReturnValue.keyName[0]. Het getal is nul geïndexeerd, wat betekent dat het begint met 0.
Notitie
Zorg ervoor dat de keyName waarnaar u verwijst aanwezig is in uw onderliggende pijplijn. De opbouwfunctie voor ADF-expressies kan de referentiële controle voor u niet bevestigen. De pijplijn mislukt als de sleutel waarnaar wordt verwezen ontbreekt in de nettolading
Speciale overwegingen
Hoewel u meerdere activiteiten van set-pijplijn retourwaarde in een pijplijn kunt opnemen, is het belangrijk om ervoor te zorgen dat slechts één van deze activiteiten wordt uitgevoerd in de pijplijn.
Om het eerder beschreven probleem met ontbrekende sleutels te voorkomen bij het aanroepen van de pijplijn, raden we u aan dezelfde lijst met sleutels te hebben voor alle vertakkingen in de onderliggende pijplijn. Overweeg null-typen te gebruiken voor sleutels die geen waarden hebben, in een specifieke vertakking.
De expressietaal van Azure Data Factory biedt geen rechtstreekse ondersteuning voor inline JSON-objecten. In plaats daarvan is het nodig om tekenreeksen en expressies correct samen te voegen.
Bijvoorbeeld voor de volgende JSON-expressie:
{ "datetime": "@{utcnow()}", "date": "@{substring(utcnow(),0,10)}", "year": "@{substring(utcnow(),0,4)}", "month": "@{substring(utcnow(),5,2)}", "day": "@{substring(utcnow(),8,2)}" }
Een equivalente Azure Data Factory-expressie is:
@{ concat( '{', '"datetime": "', utcnow(), '", ', '"date": "', substring(utcnow(),0,10), '", ', '"year": "', substring(utcnow(),0,4), '", ', '"month": "', substring(utcnow(),5,2), '", ', '"day": "', substring(utcnow(),8,2), '"', '}' ) }
Gerelateerde inhoud
Meer informatie over een andere gerelateerde controlestroomactiviteit: