Sdílet prostřednictvím


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.

Snímek obrazovky s aktivitou ExecutePipeline

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.

Snímek obrazovky s nastavením aktivity ExecutePipeline, aby čekal na dokončení

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).

  1. Vyhledejte v podokně Aktivity kanálu proměnnou a přetáhněte aktivitu Nastavit proměnnou na plátno kanálu.
  2. Vyberte aktivitu Nastavit proměnnou na plátně, pokud ještě není vybraná, a potom na kartě Proměnné upravte podrobnosti.
  3. Zvolte návratová hodnota kanálu pro typ proměnné.
  4. Výběrem možnosti Nový přidáte nový pár hodnot klíče.
  5. 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).

Snímek obrazovky znázorňující uživatelské rozhraní návratové hodnoty kanálu

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í.

Snímek obrazovky znázorňující volající kanál

Při odkazování na návratové hodnoty kanálu existují dva znatelné bublinové popisky.

  1. S typem objektu můžete dále rozšířit do vnořeného objektu JSON, například @activity('Execute Pipeline1').output.pipelineReturnValue.keyName.nextLevelKey
  2. 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.

    Snímek obrazovky s návratovou hodnotou kanálu a větvením

    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), '"',
        '}'
      )
    }
    

Další informace o další související aktivitě toku řízení: