Nastavení návratové hodnoty potrubí v Azure Data Factory a Azure Synapse Analytics

VZTAHUJE SE NA: Azure Data Factory Azure Synapse Analytics

Tip

Data Factory v Microsoft Fabric je nová generace Azure Data Factory s jednodušší architekturou, integrovanou AI a novými funkcemi. Pokud s integrací dat začínáte, začněte Fabric Data Factory. Stávající úlohy ADF lze upgradovat na Fabric pro přístup k novým funkcím v oblastech datové vědy, analýz v reálném čase a vytváření sestav.

V paradigmatu nadřazeného a podřízeného potrubí můžete použít aktivitu Nastavit proměnnou k vrácení hodnot z podřízeného potrubí do nadřazeného potrubí. 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í dceřiného kanálu

Předpokladem je, že váš návrh musí obsahovat aktivitu Spuštění kanálu, která volá podřízený kanál s povolenou možností Čekat na dokončení.

Snímek obrazovky nastavení aktivity ExecutePipeline pro čekání na dokončení procesu.

Konfigurace návratové hodnoty kanálu v podřízeném potrubí

Rozšířili jsme aktivitu Nastavit proměnnou tak, aby zahrnovala systémovou proměnnou Návratová hodnota kanálu. 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 Nastavit proměnnou v podokně Aktivity kanálu 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 poté vyberte kartu Proměnné a upravte její podrobnosti.
  3. Zvolte návratovou hodnotu pipeline 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 zobrazující uživatelské rozhraní pro návratovou hodnotu pipeline.

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()}".
Array Očekává pole řetězcových hodnot. Stisknutím klávesy Enter oddělte hodnoty v poli.
logický 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 potrubí se stává výstupem aktivity Spustit potrubí. Informace můžete načíst pomocí @activity('Execute Pipeline1').output.pipelineReturnValue.keyName. Případ použití je neomezený. Můžete například použít

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

Při odkazování na návratové hodnoty potrubí existují dvě znatelné upozornění.

  1. Pomocí typu Objekt můžete dále rozšířit do vnořeného objektu JSON, například @activity('Execute Pipeline1').output.pipelineReturnValue.keyName.nextLevelKey
  2. Pomocí typu Array můžete v listu 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ší podřízené pipeline. Tvůrce výrazů ADF nemůže potvrdit referenční kontrolu za vás. Pipeline 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. Je třeba správně zřetězit řetězce a výrazy.

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