Parametry služby Data Factory v Microsoft Fabric

V tomto článku se dozvíte, jak používat parametry v kanálech služby Data Factory v Fabric, abyste mohli vytvářet flexibilní opakovaně použitelné pracovní postupy.

Použití parametrů, výrazů a funkcí v kanálech Data Factory

Tato část vás provede základy vytváření parametrizovaných kanálů ve službě Data Factory pro Fabric pomocí jasných příkladů. Parametry a dynamické výrazy šetří čas a umožňují vytvářet flexibilní řešení extrakce, transformace, načítání (ETL) nebo extrakce, načítání, transformace (ELT). Omezují pevné kódování a umožňují opakovaně používat objekty a procesy, což usnadňuje údržbu kanálů a umožňuje rychleji dodávat nové funkce.

Koncepty parametrů a výrazů

Parametry můžete použít k předání externích hodnot do pipelin. Po nastavení parametru zůstane jeho hodnota v průběhu celého spuštění stejná. Parametry umožňují pokaždé znovu použít stejný kanál s různými hodnotami. Parametry můžete použít samostatně nebo uvnitř výrazů s hodnotami, které jsou buď pevné, nebo vypočítané při spuštění kanálu.

Výrazy mohou být umístěny kdekoliv v řetězcové hodnotě a vždy vrátit další řetězcovou hodnotu. Pokud například použijete @password, kanál považuje heslo za parametr. Pokud je hodnota výrazem, odeberte znak @ a získejte skutečný obsah. Chcete-li použít řetězec začínající znakem @, zapište jej jako @@. Následující příklady ukazují, jak to funguje v praxi.

Hodnota parametru Result
"parameters" Vrátí se znaky tvořící slovo "parameters".
"parameters[1]" Vrátí se znaky 'parameters[1]'.
"@@" Vrátí se řetězec o délce 1 znak, který obsahuje '@'.
" @" Vrátí se řetězec 2 znaků, který obsahuje znak @.

Výrazy se také mohou objevit uvnitř řetězců prostřednictvím interpolace řetězců, kde zalamujete výrazy do @{ ... }. Například následující řetězec obsahuje hodnoty parametrů a hodnoty literálového řetězce:

"Jméno: @{pipeline().parameters.firstName} Příjmení: @{pipeline().parameters.lastName}"

Interpolace řetězců vždy vrací řetězec. Pokud například definujete myNumber jako 42 a myString jako foo:

Hodnota parametru Result
"@pipeline().parameters.myString" Vrátí foo jako řetězec.
"@{pipeline().parameters.myString}" Vrátí foo jako řetězec.
"@pipeline().parameters.myNumber" Vrátí 42 jako číslo.
"@{pipeline().parameters.myNumber}" Vrátí 42 jako řetězec.
"Odpověď je: @{pipeline().parameters.myNumber}" Vrátí řetězec Answer is: 42.
"@concat('Answer is: ', string(pipeline().parameters.myNumber)" Vrátí řetězec Answer is: 42.
"Odpověď je: @@{pipeline().parameters.myNumber}" Vrátí řetězec Answer is: @{pipeline().parameters.myNumber}.

Příklady výrazů parametrů

Vytvoření a použití parametrů

Pokud chcete vytvořit parametry, vyberte pozadí plátna editoru kanálů a pak vyberte kartu Parametry okna vlastností v dolní části. Vyberte + Nový , pokud chcete přidat parametr do kanálu, a pojmenujte ho, datový typ a výchozí hodnotu:

snímek obrazovky zobrazující editor parametrů na stránkách vlastností datového toku

Pak můžete použít parametr kdekoli, kde kanál podporuje dynamický obsah. V tomto příkladu parametr dynamicky zadává název úložiště Lakehouse na kartě Zdroj na stránkách vlastností aktivity Kopírování.

Snímek obrazovky zobrazující kartu Zdroj na stránkách vlastností aktivity kopírování, zvýrazněná možnost Přidat dynamický obsah

Otevře se okno Přidat dynamický obsah . Slouží k určení jakéhokoli druhu dynamického obsahu, včetně parametrů, systémových proměnných, funkcí nebo proměnných kanálu. V tomto příkladu vyberete parametr, který jste definovali dříve, a okno dynamického obsahu automaticky naplní správným výrazem, který na něj odkazuje.

Snímek obrazovky s oknem Přidat dynamický obsah, ve kterém je vybrán parametr potrubí

Parametrizace připojení

Pokud chcete parametrizovat připojení v kanálech, použijte globálně jedinečný identifikátor (GUID) připojení, které chcete dynamicky nahradit.

  1. Než budete dynamicky upravovat připojení v rámci kanálu, získejte identifikátor GUID připojení, které chcete nastavit.
  2. Přejděte na Nastavení>Správa připojení a bran.
  3. Najděte název připojení a vyberte tlačítko se třemi tečkami (...) vedle něj.
  4. Vyberte Nastavení a zkopírujte ID připojení.
  5. Vložte identifikátor GUID do řetězcového parametru a odkazujte na tento parametr v dynamickém výrazu.

Příklad komplexního výrazu

Následující výraz odkazuje na hluboké dílčí pole výstupu aktivity. Pokud chcete odkazovat na parametr kanálu, který se vyhodnotí jako dílčí pole, použijte [] syntaxi namísto operátoru tečky (.) jako s subfield1 a subfield2.

@activity('*activityName*').output.*subfield1*.*subfield2*[pipeline().parameters.*subfield3*].*subfield4*

Editor dynamického obsahu

Editor dynamického obsahu po dokončení úprav automaticky uchytá znaky v obsahu. Například následující obsah v editoru obsahu je interpolace řetězců pomocí funkce výrazu:

@{toUpper('myData')}

Editor dynamického obsahu převede předchozí obsah na následující výraz:

MYDATA

Použití funkcí a proměnných ve výrazech

Můžete volat funkce a používat proměnné ve výrazech. Následující části obsahují informace o funkcích, které lze použít ve výrazu.

Proměnné oboru kanálu

Na tyto systémové proměnné můžete odkazovat kdekoli v JSON kanálu.

Název proměnné Description
@pipeline().DataFactory Název pracovního prostoru, ve kterém běží běh kanálu
@pipeline().Pipeline Název kanálu
@pipeline().RunId ID konkrétního spuštění potrubí
@pipeline().TriggerId ID aktivační události, která vyvolala pipeline
@pipeline().TriggerName Název triggeru, který vyvolal pipeline
@pipeline().TriggerTime Čas spuštění triggeru, který vyvolal kanál. Tato hodnota představuje čas, kdy aktivační událost skutečně spustila běh kanálu, a může se mírně lišit od plánovaného času aktivační události.
@pipeline().GroupId ID skupiny, do které patří běh kanálu. V Microsoft Fabric je skupina kolekcí souvisejících prostředků, které spravujete společně. Skupiny uspořádají a řídí přístup k prostředkům, což usnadňuje správu oprávnění a monitorování aktivit napříč několika kanály.
@pipeline()?.TriggeredByPipelineName Název potrubí, které aktivuje spuštění potrubí. Platí, když aktivita Execute Pipeline spustí běh kanálu. Vyhodnotí hodnotu Null v jiných případech. Povšimněte si otazníku za @pipeline().
@pipeline()?.TriggeredByPipelineRunId ID spuštění kanálu, který aktivuje jeho běh. Platí, když aktivita Spustit kanál aktivuje běh kanálu. Vyhodnotí hodnotu Null v jiných případech. Povšimněte si otazníku za @pipeline().

Note

Systémové proměnné data a času související s triggery (v rozsahu kanálu i triggeru) vracejí hodnoty data a času v koordinovaném světovém čase (UTC) ve formátu ISO 8601, například 2017-06-01T22:20:00.4061448Z.

Řetězcové funkce

Pokud chcete pracovat s řetězci, použijte tyto řetězcové funkce a také některé funkce kolekce. Řetězcové funkce fungují jenom na řetězcích.

Funkce řetězce Task
concat Zkombinujte dva nebo více řetězců a vraťte sloučený řetězec.
endsWith Zkontrolujte, jestli řetězec končí zadaným podřetězcem.
guid Vygenerujte globálně jedinečný identifikátor (GUID) jako řetězec.
indexOf Vrátí počáteční pozici podřetězdce.
lastIndexOf Vrať počáteční pozici posledního výskytu podřetězce.
replace Nahraďte podřetězce zadaným řetězcem a vraťte aktualizovaný řetězec.
split Vrátí pole, které obsahuje podřetězce oddělené čárkami, od většího řetězce založeného na zadaném znaku oddělovače v původním řetězci.
startsWith Zkontrolujte, jestli řetězec začíná určitým podřetězcem.
substring Vrátí znaky z řetězce počínaje zadanou pozicí.
toLower Vrátit řetězec v malých písmenech.
toUpper Vrátí řetězec ve formátu velkými písmeny.
trim Odeberte počáteční a koncové prázdné znaky z řetězce a vraťte aktualizovaný řetězec.

Funkce kolekcí

Pokud chcete pracovat s kolekcemi, jako jsou pole, řetězce a slovníky, použijte tyto funkce kolekce.

Funkce Kolekce Task
contains Zkontrolujte, jestli kolekce obsahuje konkrétní položku.
empty Zkontrolujte, jestli je kolekce prázdná.
first Vrátí první položku z kolekce.
intersection Vrátí kolekci, která pouze společné položky v zadaných kolekcích.
join Vrátí řetězec, který má všechny položky z pole, které jsou oddělené zadaným znakem.
last Vrátí poslední položku z kolekce.
length Vrátí počet položek v řetězci nebo poli.
skip Odeberte položky z přední části kolekce a vraťte všechny ostatní položky.
take Vrátí položky z přední části kolekce.
union Vrátí kolekci, která obsahuje všechny položky ze zadaných kolekcí.

Logické funkce

Tyto funkce použijte uvnitř podmínek k vyhodnocení libovolného typu logiky.

Logická funkce porovnání Task
and Zkontrolujte, jestli jsou všechny výrazy pravdivé.
equals Zkontrolujte, jestli jsou obě hodnoty ekvivalentní.
greater Zkontrolujte, jestli je první hodnota větší než druhá hodnota.
greaterOrEquals Zkontrolujte, jestli je první hodnota větší nebo rovna druhé hodnotě.
if Zkontrolujte, jestli je výraz pravdivý nebo nepravda. Na základě výsledku vrátí zadanou hodnotu.
less Zkontrolujte, jestli je první hodnota menší než druhá hodnota.
lessOrEquals Zkontrolujte, jestli je první hodnota menší nebo rovna druhé hodnotě.
not Zkontrolujte, jestli je výraz nepravda.
or Zkontrolujte, jestli je alespoň jeden výraz pravdivý.

Převodní funkce

Pomocí těchto funkcí můžete převést mezi jednotlivými nativními typy v jazyce:

  • řetězec
  • integer
  • float
  • boolean
  • arrays
  • dictionaries
Převodní funkce Task
array Vrátí pole z jednoho zadaného vstupu. Pro více vstupů se podívejte na createArray.
base64 Vrátí verzi zakódovanou v base64 pro řetězec.
base64ToBinary Vrátí binární verzi řetězce s kódováním base64.
base64ToString Vrátí textovou verzi pro řetězec, který je kódovaný v base64.
binary Vrátí binární verzi pro zadanou hodnotu.
bool Vrátí logickou verzi pro vstupní hodnotu.
coalesce Vrátí první hodnotu, která není null, z jednoho nebo více parametrů.
createArray Vrátí pole z více vstupů.
dataUri Vrátit datový identifikátor URI pro vstupní hodnotu.
dataUriToBinary Vrátit binární verzi datového URI.
dataUriToString Vrátí textovou reprezentaci pro datový URI.
decodeBase64 Vrátí textovou verzi pro řetězec, který je kódovaný v base64.
decodeDataUri Vrátit binární verzi datového URI.
decodeUriComponent Vrátí řetězec, ve kterém jsou únikové znaky nahrazeny dekódovanými verzemi.
encodeUriComponent Vrátit řetězec, který nahradí znaky, které nejsou bezpečné pro URL, unikovými znaky.
float Vrátí číslo s plovoucí čárkou pro danou hodnotu.
int Vrátit celočíselnou verzi pro řetězec.
json Vrátí hodnotu typu JSON (JavaScript Object Notation) nebo objekt pro řetězec nebo XML.
string Vrátí textovou podobu pro zadanou hodnotu.
uriComponent Vrátí verzi zakódovanou v URI pro vstupní hodnotu nahrazením nepovolených znaků adresy URL unikovými znaky.
uriComponentToBinary Vrátí binární verzi řetězce kódovaného identifikátorem URI.
uriComponentToString Vrátí verzi řetězce pro řetězec kódovaný identifikátorem URI.
xml Vrátí verzi XML pro řetězec.
xpath Zkontrolujte kód XML pro uzly nebo hodnoty, které odpovídají výrazu XPath (XML Path Language) a vrátí odpovídající uzly nebo hodnoty.

Matematické funkce

Tyto funkce použijte s oběma typy čísel: celá čísla a plovoucí čísla.

Matematické funkce Task
add Vrátí výsledek sčítání dvou čísel.
div Vrátí výsledek dělení dvou čísel.
max Vrátí nejvyšší hodnotu ze sady čísel nebo pole.
min Vrátí nejnižší hodnotu ze sady čísel nebo pole.
mod Vrátí zbytek z dělení dvou čísel.
mul Vrátí součin od vynásobení dvou čísel.
rand Vrátí náhodné celé číslo ze zadaného rozsahu.
range Vrátí celočíselnou matici, která začíná zadaným celočíselnou hodnotou.
sub Vrátí výsledek od odečtení druhého čísla od prvního čísla.

Datumové funkce

Funkce data nebo času Task
addDays Přidejte do časového razítka počet dní.
addHours Přidejte do časového razítka počet hodin.
addMinutes Přidejte do časového razítka několik minut.
addSeconds Přidejte do časového razítka několik sekund.
addToTime Přidejte do časového razítka řadu časových jednotek. Viz také getFutureTime.
convertFromUtc Převeďte časové razítko z koordinovaného univerzálního času (UTC) na cílové časové pásmo.
convertTimeZone Převeďte časové razítko ze zdrojového časového pásma na cílové časové pásmo.
convertToUtc Převede časové razítko ze zdrojového časového pásma na koordinovaný univerzální čas (UTC).
dayOfMonth Vrátí den součásti měsíce z časového razítka.
dayOfWeek Vrátí součást dne v týdnu z časového razítka.
dayOfYear Vrátí část dne v roce z časového razítka.
formatDateTime Vrátí časové razítko jako řetězec ve volitelném formátu.
getFutureTime Vrátí aktuální časové razítko a zadané časové jednotky. Viz také addToTime.
getPastTime Vrátí aktuální časové razítko minus zadané časové jednotky. Viz také odečístFromTime.
startOfDay Vrátí začátek dne pro časové razítko.
startOfHour Vrátí počátek hodiny pro časové razítko.
startOfMonth Vrátí začátek měsíce pro časové razítko.
subtractFromTime Odečte počet časových jednotek od časového razítka. Viz také getPastTime.
ticks Vrátí hodnotu vlastnosti ticks pro zadané časové razítko.
utcNow Vrátí aktuální časové razítko jako řetězec.