Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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:
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í.
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.
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.
- Než budete dynamicky upravovat připojení v rámci kanálu, získejte identifikátor GUID připojení, které chcete nastavit.
- Přejděte na Nastavení>Správa připojení a bran.
- Najděte název připojení a vyberte tlačítko se třemi tečkami (...) vedle něj.
- Vyberte Nastavení a zkopírujte ID připojení.
- 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. |