Nastavení návratové hodnoty kanálu ve službě Azure Data Factory a Azure Synapse Analytics
PLATÍ PRO: Azure Data Factory Azure Synapse Analytics
Tip
Vyzkoušejte si službu Data Factory v Microsoft Fabric, řešení pro analýzy typu all-in-one pro podniky. Microsoft Fabric zahrnuje všechno od přesunu dat až po datové vědy, analýzy v reálném čase, business intelligence a vytváření sestav. Přečtěte si, jak začít používat novou zkušební verzi zdarma.
V paradigmatu kanálu podřízeného volání kanálu můžete použít aktivitu Nastavit proměnnou k vrácení hodnot z podřízeného kanálu do volajícího kanálu. V následujícím scénáři máme podřízený kanál prostřednictvím aktivity spuštění kanálu. A chceme načíst informace z podřízeného kanálu, aby se pak použily ve volajícím kanálu.
Představuje návratovou hodnotu kanálu, slovník párů klíč-hodnota, který umožňuje komunikaci mezi podřízenými kanály a nadřazeným kanálem.
Předpoklad – volání podřízeného kanálu
Předpokladem je, že váš návrh vyžaduje aktivitu spuštění kanálu, která volá podřízený kanál s povoleným čekáním na dokončení aktivity.
Konfigurace návratové hodnoty kanálu v podřízeného kanálu
Rozšířili jsme aktivitu Nastavit proměnnou tak, aby zahrnovala návratovou hodnotu kanálu systémových proměnných. Nemusíte je definovat na úrovni kanálu (na rozdíl od jiných proměnných, které v kanálu používáte).
- Vyhledejte v podokně Aktivity kanálu proměnnou a přetáhněte aktivitu Nastavit proměnnou na plátno kanálu.
- Vyberte aktivitu Nastavit proměnnou na plátně, pokud ještě není vybraná, a potom na kartě Proměnné upravte podrobnosti.
- Zvolte návratová hodnota kanálu pro typ proměnné.
- Výběrem možnosti Nový přidáte nový pár hodnot klíče.
- Počet párů klíč-hodnota, které je možné přidat, je omezen pouze limitem velikosti vráceného formátu JSON (4 MB).
Existuje několik možností pro typy hodnot, včetně
Název typu | Popis |
---|---|
String | Konstantní řetězcová hodnota. Například: ADF je úžasné. |
Výraz | Umožňuje odkazovat na výstup z předchozích aktivit. Tady můžete použít interpolaci řetězců k zahrnutí hodnot v řádku výrazů, například "The value is @{guid()}" . |
Pole | Očekává pole řetězcových hodnot. Stisknutím klávesy Enter oddělte hodnoty v poli. |
Logická hodnota | Pravda nebo Nepravda |
Null | Stav držitele signalizačního místa; hodnota je konstantní null. |
Int | Číselná hodnota celočíselného typu Příklad: 42 |
Float | Číselná hodnota typu float. Příklad: 2.71828 |
Objekt | Upozornění pouze na složité případy použití Umožňuje vložit seznam párů klíčových hodnot pro hodnotu. |
Hodnota typu objektu je definována takto:
[{"key": "myKey1", "value": {"type": "String", "content": "hello world"}},
{"key": "myKey2", "value": {"type": "String", "content": "hi"}}
]
Načítání hodnoty ve volajícím kanálu
Návratová hodnota kanálu podřízeného kanálu se stane výstupem aktivity spuštění kanálu. Informace můžete načíst pomocí @activity('Execute Pipeline1').output.pipelineReturnValue.keyName. Případ použití je neomezený. Můžete například použít
- Hodnota int z podřízeného kanálu pro definování doby čekání na aktivitu čekání.
- Řetězcová hodnota definující adresu URL pro webovou aktivitu.
- Datová část hodnoty výrazu pro aktivitu skriptu pro účely protokolování.
Při odkazování na návratové hodnoty kanálu existují dva znatelné bublinové popisky.
- S typem objektu můžete dále rozšířit do vnořeného objektu JSON, například @activity('Execute Pipeline1').output.pipelineReturnValue.keyName.nextLevelKey
- Pomocí typu Pole můžete v seznamu zadat index s @activity('Execute Pipeline1').output.pipelineReturnValue.keyName[0]. Číslo je nulové indexované, což znamená, že začíná číslem 0.
Poznámka:
Ujistěte se, že název klíče , na který odkazujete, existuje ve vašem podřízeném kanálu. Tvůrce výrazů ADF nemůže potvrdit referenční kontrolu za vás. Kanál selže, pokud v datové části chybí odkazovaný klíč.
Zvláštní aspekty
I když můžete do kanálu zahrnout více aktivit Set Pipeline Return Value, je důležité zajistit, aby se v kanálu spustil pouze jeden z nich.
Abyste předešli dříve popsanému problému s chybějícím klíčem při volání kanálu, doporučujeme mít stejný seznam klíčů pro všechny větve v podřízeném kanálu. Zvažte použití typů null pro klíče, které nemají hodnoty v konkrétní větvi.
Jazyk výrazů Azure Data Factory přímo nepodporuje vložené objekty JSON. Místo toho je nutné zřetězení řetězců a výrazů správně.
Například pro následující výraz JSON:
{ "datetime": "@{utcnow()}", "date": "@{substring(utcnow(),0,10)}", "year": "@{substring(utcnow(),0,4)}", "month": "@{substring(utcnow(),5,2)}", "day": "@{substring(utcnow(),8,2)}" }
Ekvivalentní výraz služby Azure Data Factory by byl:
@{ concat( '{', '"datetime": "', utcnow(), '", ', '"date": "', substring(utcnow(),0,10), '", ', '"year": "', substring(utcnow(),0,4), '", ', '"month": "', substring(utcnow(),5,2), '", ', '"day": "', substring(utcnow(),8,2), '"', '}' ) }
Související obsah
Další informace o další související aktivitě toku řízení: