Parametrizace mapování toků dat

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.

Mapování toků dat v kanálech Azure Data Factory a Synapse podporuje použití parametrů. Definujte parametry uvnitř definice toku dat a použijte je ve výrazech. Hodnoty parametrů jsou nastaveny voláním kanálu prostřednictvím aktivity Execute Tok dat. Pro nastavení hodnot ve výrazech aktivity toku dat máte tři možnosti:

  • Použití jazyka výrazu toku řízení kanálu k nastavení dynamické hodnoty
  • Použití jazyka výrazů toku dat k nastavení dynamické hodnoty
  • Nastavení statické hodnoty literálu pomocí jazyka výrazu

Pomocí této funkce můžete vytvářet toky dat pro obecné účely, flexibilní a opakovaně použitelné. Pomocí těchto parametrů můžete parametrizovat nastavení toku dat a výrazy.

Vytvoření parametrů v toku dat mapování

Pokud chcete do toku dat přidat parametry, kliknutím na prázdnou část plátna toku dat zobrazíte obecné vlastnosti. V podokně nastavení se zobrazí karta s názvem Parametr. Výběrem možnosti Nový vygenerujete nový parametr. Pro každý parametr musíte přiřadit název, vybrat typ a volitelně nastavit výchozí hodnotu.

Snímek obrazovky s parametry vytvoření Tok dat

Použití parametrů v mapování toku dat

Na parametry lze odkazovat v libovolném výrazu toku dat. Parametry začínají $ a jsou neměnné. Seznam dostupných parametrů najdete v Tvůrci výrazů na kartě Parametry .

Snímek obrazovky ukazuje dostupné parametry na kartě Parametry.

Další parametry můžete rychle přidat tak, že vyberete Nový parametr a zadáte název a typ.

Snímek obrazovky znázorňující parametry na kartě Parametry s přidanými novými parametry

Použití parametrizovaných propojených služeb v toku dat mapování

Parametrizované propojené služby se dají použít v mapování toku dat (pro datové sady nebo vložené zdrojové typy).

Pro vložený typ zdroje se parametry propojené služby zveřejňují v nastavení aktivity toku dat v kanálu, jak je znázorněno níže.

Snímek obrazovky ukazuje použití parametrů propojené služby v toku dat.

U typu zdroje datové sady se parametry propojené služby zveřejňují přímo v konfiguraci datové sady.

Přiřazení hodnot parametrů z kanálu

Jakmile vytvoříte tok dat s parametry, můžete ho spustit z kanálu pomocí aktivity Spustit Tok dat. Po přidání aktivity na plátno kanálu se na kartě Parametry aktivity zobrazí dostupné parametry toku dat.

Při přiřazování hodnot parametrů můžete použít jazyk výrazu kanálu nebo jazyk výrazu toku dat založený na typech Sparku. Každý tok dat mapování může mít libovolnou kombinaci parametrů kanálu a toku dat.

Snímek obrazovky znázorňující kartu Parametry s výrazem Tok dat vybraným pro hodnotu myparam

Parametry výrazu kanálu

Parametry výrazu kanálu umožňují odkazovat na systémové proměnné, funkce, parametry kanálu a proměnné podobné jiným aktivitám kanálu. Když kliknete na výraz kanálu, otevře se boční navigace, která umožňuje zadat výraz pomocí tvůrce výrazů.

Snímek obrazovky znázorňující podokno tvůrce výrazů

Při odkazování se vyhodnocují parametry kanálu a jejich hodnota se použije v jazyce výrazu toku dat. Typ výrazu kanálu nemusí odpovídat typu parametru toku dat.

Řetězcové literály vs. výrazy

Při přiřazování parametru výrazu kanálu řetězce typu se ve výchozím nastavení přidají uvozovky a hodnota se vyhodnotí jako literál. Pokud chcete číst hodnotu parametru jako výraz toku dat, zaškrtněte políčko výrazu vedle parametru.

Snímek obrazovky znázorňující podokno Parametry toku dat vybrané pro parametr

Pokud parametr stringParam toku dat odkazuje na parametr kanálu s hodnotou upper(column1).

  • Pokud je výraz zaškrtnutý, $stringParam vyhodnotí se jako hodnota sloupce1 všechna velká písmena.
  • Pokud výraz není zaškrtnutý (výchozí chování), $stringParam vyhodnotí se jako 'upper(column1)'

Předávání časových razítek

V jazyce výrazů kanálu systémové proměnné, jako jsou a funkce, jako pipeline().TriggerTime jsou utcNow() návratová časová razítka jako řetězce ve formátu rrrr-MM-dd'T'HH:mm:ss. SSSSSZ. Pokud je chcete převést na parametry toku dat s časovým razítkem typu, použijte interpolaci řetězců k zahrnutí požadovaného časového razítka do toTimestamp() funkce. Pokud chcete například převést čas aktivace kanálu na parametr toku dat, můžete použít toTimestamp(left('@{pipeline().TriggerTime}', 23), 'yyyy-MM-dd\'T\'HH:mm:ss.SSS').

Snímek obrazovky znázorňující kartu Parametry, kde můžete zadat čas triggeru

Poznámka:

Tok dat mohou podporovat pouze 3 milisekundové číslice. Funkce left() se používá k oříznutí dalších číslic.

Příklad parametru kanálu

Řekněme, že máte celočíselnou parametr intParam , který odkazuje na parametr kanálu typu String, @pipeline.parameters.pipelineParam.

Snímek obrazovky znázorňující kartu Parametry s parametry s názvem stringParam a intParam

@pipeline.parameters.pipelineParam je přiřazena hodnota abs(1) za běhu.

Snímek obrazovky znázorňující kartu Parametry s vybranou hodnotou b s (1)

Pokud $intParam je odkazován ve výrazu, jako je odvozený sloupec, vyhodnotí abs(1) se návrat 1.

Snímek obrazovky znázorňující hodnotu sloupců

Parametry výrazu toku dat

Výběr výrazu toku dat otevře tvůrce výrazů toku dat. V rámci toku dat budete moct odkazovat na funkce, další parametry a jakýkoli definovaný sloupec schématu. Tento výraz se vyhodnotí jako při odkazování.

Poznámka:

Pokud předáte neplatný výraz nebo odkazujete na sloupec schématu, který v této transformaci neexistuje, parametr se vyhodnotí jako null.

Předání názvu sloupce jako parametru

Běžným vzorem je předání názvu sloupce jako hodnoty parametru. Pokud je sloupec definovaný ve schématu toku dat, můžete na něj odkazovat přímo jako řetězcový výraz. Pokud sloupec není definován ve schématu, použijte byName() funkci. Nezapomeňte přetypovat sloupec na příslušný typ pomocí funkce přetypování, například toString().

Pokud jste například chtěli namapovat sloupec řetězce na základě parametru columnName, můžete přidat odvozenou transformaci sloupce rovnou toString(byName($columnName)).

Předání názvu sloupce jako parametru

Poznámka:

Ve výrazech toku dat se nepodporuje interpolace řetězců (nahrazení proměnných uvnitř řetězce). Místo toho zřetězení výrazu do řetězcových hodnot. Například 'string part 1' + $variable + 'string part 2'