Parametry služby Data Factory v Microsoft Fabric
Tento dokument popisuje, jak používat parametry ve vašich kanálech pro službu Data Factory v prostředcích infrastruktury.
Jak používat parametry, výrazy a funkce v kanálech pro službu Data Factory v prostředcích infrastruktury
V tomto dokumentu se zaměříme na výuku základních konceptů s různými příklady, abychom prozkoumali možnost vytvářet parametrizované datové kanály v rámci služby Data Factory v prostředcích infrastruktury. Parametrizace a dynamické výrazy můžou ušetřit obrovské množství času a umožnit mnohem flexibilnější řešení extrakce, transformace, načítání (ETL) nebo extrakce, načítání, transformace (ELT), které výrazně sníží náklady na údržbu řešení a urychlí implementaci nových funkcí do stávajících kanálů. Tyto zisky jsou způsobené tím, že parametrizace minimalizuje objem pevného kódování a zvyšuje počet opakovaně použitelných objektů a procesů v řešení.
Koncepty parametrů a výrazů
Pomocí parametrů můžete předávat externí hodnoty do kanálů. Jakmile se parametr předá do prostředku, nelze ho změnit. Když parametrizujete prostředky, můžete je pokaždé znovu použít s různými hodnotami. Parametry lze použít jednotlivě nebo jako součást výrazů. Hodnoty parametrů v definici mohou být literál nebo výrazy, které se vyhodnocují za běhu.
Výrazy se můžou objevit kdekoli v řetězcové hodnotě a vždy generovat jinou řetězcovou hodnotu. Tady je heslo parametrem kanálu ve výrazu. Pokud je hodnota parametru výrazem, text výrazu se extrahuje odebráním znaku at(@). Pokud je potřeba řetězec literálu, který začíná znakem @, musí být uchvácen pomocí @@. Následující příklady ukazují, jak se výrazy vyhodnocují.
Hodnota parametru | Výsledek |
---|---|
"parameters" | Vrátí se znaky "parameters". |
"parameters[1]" | Vrátí se znaky parameters[1]. |
"@@" | Vrátí se řetězec 1 znaku, který obsahuje znak @. |
" @" | Vrátí se řetězec 2 znaků, který obsahuje znak @. |
Výrazy se mohou objevit také uvnitř řetězců pomocí funkce označované jako interpolace řetězců, ve které jsou výrazy zabaleny @{ ... }
. 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}"
Pomocí interpolace řetězců je výsledkem vždy řetězec. Pokud jste například definovali myNumber
jako 42
a myString
jako foo
:
Hodnota parametru | Výsledek |
---|---|
"@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 použití parametrů ve výrazech
Vytváření a používání parametrů
Pokud chcete vytvořit parametry, vyberte pozadí plátna editoru kanálů a potom kartu Parametry okna vlastností v dolní části. Vyberte tlačítko + Nový a přidejte do kanálu nový parametr, pojmenujte ho, datový typ a výchozí hodnotu:
Pak můžete použít parametr kdekoli ve vašem kanálu, kde se podporuje dynamický obsah. V tomto příkladu se parametr používá k dynamickému zadání názvu úložiště dat Lakehouse na kartě Zdroj na stránkách vlastností aktivity kopírování.
Zobrazí se okno Přidat dynamický obsah , které vám umožní zadat jakýkoli druh dynamického obsahu, včetně parametrů, systémových proměnných, funkcí nebo proměnných kanálu. V tomto příkladu je vybraný dříve definovaný parametr a automaticky se vyplní okno dynamického obsahu správným výrazem pro odkaz na parametr.
Příklad komplexního výrazu
Následující příklad ukazuje složitý příklad, který 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 místo operátoru tečk(.) syntaxi [] (jako v případě dílčího pole1 a dílčího pole2).
@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 výše uvedený obsah na následující výraz:
MYDATA
Použití funkcí a proměnných ve výrazech
Funkce můžete volat 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 ve formátu JSON kanálu.
Název proměnné | Popis |
---|---|
@pipeline().DataFactory | Název pracovního prostoru dat nebo Synapse, ve kterém běží spuštění kanálu |
@pipeline().Pipeline | Název kanálu |
@pipeline().RunId | ID konkrétního spuštění kanálu |
@pipeline().TriggerId | ID aktivační události, která vyvolala kanál |
@pipeline().TriggerName | Název triggeru, který vyvolal kanál |
@pipeline().TriggerTime | Čas spuštění triggeru, který vyvolal kanál. Jedná se o čas, kdy se trigger skutečně aktivoval pro vyvolání spuštění kanálu, a může se mírně lišit od naplánovaného času triggeru. |
@pipeline().GroupId | ID skupiny, do které patří spuštění kanálu. |
@pipeline()?. TriggeredByPipelineName | Název kanálu, který aktivuje spuštění kanálu. Platí, pokud je spuštění kanálu aktivováno aktivitou ExecutePipeline. Při použití v jiných případech se vyhodnotí na hodnotu Null . Povšimněte si otazníku @pipeline() |
@pipeline()?. TriggeredByPipelineRunId | ID spuštění kanálu, který aktivuje spuštění kanálu. Platí, pokud je spuštění kanálu aktivováno aktivitou ExecutePipeline. Při použití v jiných případech se vyhodnotí na hodnotu Null . Povšimněte si otazníku @pipeline() |
Poznámka:
Systémové proměnné pro datum a čas související s triggery (v rozsahech kanálu i triggerů) vrací data UTC ve formátu ISO 8601, 2017-06-01T22:20:00.4061448Z
například .
Funkce řetězců
Pro práci s řetězci můžete použít tyto řetězcové funkce a také některé funkce kolekce. Řetězcové funkce fungují jenom na řetězcích.
Řetězcová funkce | Úloha |
---|---|
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. |
Identifikátor guid | Vygenerujte globálně jedinečný identifikátor (GUID) jako řetězec. |
Indexof | Vrátí počáteční pozici podřetězdce. |
Lastindexof | Vrátí počáteční pozici posledního výskytu podřetězdce. |
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. |
Podřetězec | Vrátí znaky z řetězce počínaje zadanou pozicí. |
Tolower | Vrátí řetězec ve formátu malými písmeny. |
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, obecně polemi, řetězci a někdy slovníky, můžete tyto funkce kolekce používat.
Funkce Kolekce | Úloha |
---|---|
Obsahuje | Zkontrolujte, jestli kolekce obsahuje konkrétní položku. |
empty | Zkontrolujte, jestli je kolekce prázdná. |
První | Vrátí první položku z kolekce. |
Průsečíku | Vrátí kolekci, která obsahuje pouze společné položky v zadaných kolekcích. |
join | Vrátí řetězec, který obsahuje všechny položky z pole oddělené zadaným znakem. |
Poslední | Vrátí poslední položku z kolekce. |
length | Vrátí počet položek v řetězci nebo poli. |
Přeskočit | Odeberte položky z přední části kolekce a vraťte všechny ostatní položky. |
vzít | Vrátí položky z přední části kolekce. |
Unie | Vrátí kolekci, která obsahuje všechny položky ze zadaných kolekcí. |
Logické funkce
Tyto funkce jsou užitečné v podmínkách, lze je použít k vyhodnocení libovolného typu logiky.
Logická funkce porovnání | Úloha |
---|---|
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ě. |
Pokud | 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. |
nebo | Zkontrolujte, jestli je alespoň jeden výraz pravdivý. |
Převodní funkce
Tyto funkce slouží k převodu mezi jednotlivými nativními typy v jazyce:
- string
- integer
- float (číslo s plovoucí řádovou čárkou)
- boolean
- Pole
- Slovníky
Převodní funkce | Úloha |
---|---|
Pole | Vrátí pole z jednoho zadaného vstupu. Více vstupů naleznete v tématu 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í verzi řetězce pro řetězec kódovaný v base64. |
Binární | Vrátí binární verzi pro vstupní 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ů. |
identifikátor dataURI | Vrátí identifikátor URI dat pro vstupní hodnotu. |
dataUriToBinary | Vrátí binární verzi identifikátoru URI dat. |
dataUriToString | Vrátí verzi řetězce pro identifikátor URI dat. |
decodeBase64 | Vrátí verzi řetězce pro řetězec kódovaný v base64. |
decodeDataUri | Vrátí binární verzi identifikátoru URI dat. |
decodeUriComponent | Vrátí řetězec, který nahradí řídicí znaky dekódovanými verzemi. |
encodeUriComponent | Vrátí řetězec, který nahradí nebezpečné znaky adresy URL řídicími znaky. |
float | Vrátí číslo s plovoucí desetinou čárkou pro vstupní hodnotu. |
int | Vrátí celočíselnou verzi řetězce. |
Json | Vrátí hodnotu typu JSON (JavaScript Object Notation) nebo objekt pro řetězec nebo XML. |
string | Vrátí verzi řetězce pro vstupní hodnotu. |
uriComponent | Vrátí verzi zakódovanou identifikátorem URI pro vstupní hodnotu nahrazením nebezpečných znaků adresy URL řídicí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 lze použít pro některý z typů čísel: celá čísla a float.
Matematické funkce | Úloha |
---|---|
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 od 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. |
Dílčí | Vrátí výsledek od odečtení druhého čísla od prvního čísla. |
Datové funkce
Funkce data nebo času | Úloha |
---|---|
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 standardu UTC (Universal Time Coordinated) 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řeveďte časové razítko ze zdrojového časového pásma na standard UTC (Universal Time Coordinated). |
denOfMonth | 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í den 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čítáníFromTime. |
startOfDay | Vrátí začátek dne pro časové razítko. |
startOfHour | Vrátí začátek hodiny pro časové razítko. |
startOfMonth | Vrátí začátek měsíce pro časové razítko. |
odečístFromTime | Odečte počet časových jednotek od časového razítka. Viz také getPastTime. |
Klíšťata | ticks Vrátí hodnotu vlastnosti pro zadané časové razítko. |
UtcNow | Vrátí aktuální časové razítko jako řetězec. |