Paraméterek, kifejezések és függvények használata az Azure Data Factoryben

A következőkre vonatkozik: Azure Data Factory Azure Synapse Analytics

Tipp.

Próbálja ki a Data Factoryt a Microsoft Fabricben, amely egy teljes körű elemzési megoldás a nagyvállalatok számára. A Microsoft Fabric az adattovábbítástól az adatelemzésig, a valós idejű elemzésig, az üzleti intelligenciáig és a jelentéskészítésig mindent lefed. Ismerje meg, hogyan indíthat új próbaverziót ingyenesen!

Ebben a dokumentumban elsősorban az alapvető fogalmak megismerésére összpontosítunk, különböző példákkal, amelyekkel megvizsgálhatjuk a paraméteres adatfolyamatok Azure Data Factoryn belüli létrehozásának lehetőségét. A paraméterezés és a dinamikus kifejezések olyan figyelemre méltó kiegészítések az ADF-hez, mivel rengeteg időt takaríthatnak meg, és sokkal rugalmasabb kinyerési, átalakítási, betöltési (ETL) vagy kinyerési, betöltési, átalakítási (ELT) megoldást tesznek lehetővé, ami jelentősen csökkenti a megoldáskarbantartás költségeit, és felgyorsítja az új funkciók implementálását a meglévő folyamatokban. Ennek az az oka, hogy a paraméterezés minimalizálja a kemény kódolás mennyiségét, és növeli az újrafelhasználható objektumok és folyamatok számát egy megoldásban.

Az Azure Data Factory felhasználói felülete és paraméterei

Ha most ismerkedik az Azure Data Factory paraméterhasználatával az ADF felhasználói felületén, tekintse át a Data Factory felhasználói felületét a paraméterekkel rendelkező társított szolgáltatásokhoz, a Data Factory felhasználói felületét pedig a metaadatalapú folyamathoz, a vizualizációs magyarázat paramétereivel .

Paraméter- és kifejezésfogalmak

A paraméterekkel külső értékeket továbbíthat folyamatokba, adatkészletekbe, társított szolgáltatásokba és adatfolyamokba. Miután a paramétert átadta az erőforrásnak, nem módosítható. Az erőforrások paraméterezésével minden alkalommal más-más értékekkel használhatja fel őket. A paraméterek külön-külön vagy a kifejezések részeként is használhatók. A definíció JSON-értékei lehetnek konstansok vagy futásidőben kiértékelt kifejezések.

Például:

"name": "value"

vagy

"name": "@pipeline().parameters.password"

A kifejezések bárhol megjelenhetnek egy JSON-sztringértékben, és mindig egy másik JSON-értéket eredményeznek. Itt a jelszó egy folyamatparaméter a kifejezésben. Ha egy JSON-érték kifejezés, a rendszer az at-sign (@) eltávolításával nyeri ki a kifejezés törzsét. Ha @-val kezdődő literális sztringre van szükség, akkor a @@használatával kell megszabadulnia. Az alábbi példák a kifejezések kiértékelésének módját mutatják be.

JSON-érték Eredmény
"paraméterek" A rendszer a "paraméterek" karaktereket adja vissza.
"paraméterek[1]" A rendszer a "parameters[1]" karaktereket adja vissza.
"@@" A függvény egy 1 karakteres sztringet ad vissza, amely "@" karaktert tartalmaz.
" @" A függvény egy 2 karakteres sztringet ad vissza, amely a "@" karaktert tartalmazza.

A kifejezések sztringeken belül is megjelenhetnek egy sztring interpoláció nevű funkcióval, amelyben a kifejezések be vannak csomagolva@{ ... }. For example: "name" : "First Name: @{pipeline().parameters.firstName} Last Name: @{pipeline().parameters.lastName}"

Sztring interpolációval az eredmény mindig sztring. Tegyük fel, hogy definiáltam myNumber a következőt 42foo:myString

JSON-érték Eredmény
"@pipeline().parameters.myString" Sztringként ad foo vissza.
"@{pipeline().parameters.myString}" Sztringként ad foo vissza.
"@pipeline().parameters.myNumber" 42 Számként adja vissza.
"@{pipeline().parameters.myNumber}" Sztringként ad 42 vissza.
"Válasz: @{pipeline().parameters.myNumber}" A sztringet Answer is: 42adja vissza.
"@concat('Válasz: ', string(pipeline().parameters.myNumber))" A sztring visszaadása Answer is: 42
"Válasz: @@{pipeline().parameters.myNumber}" A sztringet Answer is: @{pipeline().parameters.myNumber}adja vissza.

Példák paraméterek kifejezésben való használatára

Összetett kifejezési példa

Az alábbi példa egy összetett példát mutat be, amely a tevékenység kimenetének egy mély almezőjére hivatkozik. Ha egy almezőre kiértékelt folyamatparaméterre szeretne hivatkozni, használja a pont(.) operátor helyett a [] szintaxist (mint az almező1 és az almező2 esetén)

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

Dinamikus tartalomszerkesztő

A dinamikus tartalomszerkesztő automatikusan kikerüli a tartalom karaktereit a szerkesztés befejezésekor. A tartalomszerkesztőben például a következő tartalom egy sztring interpolációja két kifejezésfüggvényrel.

{ 
  "type": "@{if(equals(1, 2), 'Blob', 'Table' )}",
  "name": "@{toUpper('myData')}"
}

A dinamikus tartalomszerkesztő a fenti tartalmat kifejezéssé "{ \n \"type\": \"@{if(equals(1, 2), 'Blob', 'Table' )}\",\n \"name\": \"@{toUpper('myData')}\"\n}"alakítja. Ennek a kifejezésnek az eredménye egy alább bemutatott JSON formátumú sztring.

{
  "type": "Table",
  "name": "MYDATA"
}

Egy paraméterekkel rendelkező adatkészlet

Az alábbi példában a BlobDataset egy elérési út nevű paramétert vesz fel. Az érték a folderPath tulajdonság értékének beállítására szolgál a következő kifejezéssel: dataset().path.

{
    "name": "BlobDataset",
    "properties": {
        "type": "AzureBlob",
        "typeProperties": {
            "folderPath": "@dataset().path"
        },
        "linkedServiceName": {
            "referenceName": "AzureStorageLinkedService",
            "type": "LinkedServiceReference"
        },
        "parameters": {
            "path": {
                "type": "String"
            }
        }
    }
}

Folyamat paraméterekkel

A következő példában a folyamat inputPath- és outputPath-paramétereket vesz fel. A paraméteres blobadatkészlet elérési útja ezen paraméterek értékeinek használatával van beállítva. Az itt használt szintaxis a következő: pipeline().parameters.parametername.

{
    "name": "Adfv2QuickStartPipeline",
    "properties": {
        "activities": [
            {
                "name": "CopyFromBlobToBlob",
                "type": "Copy",
                "inputs": [
                    {
                        "referenceName": "BlobDataset",
                        "parameters": {
                            "path": "@pipeline().parameters.inputPath"
                        },
                        "type": "DatasetReference"
                    }
                ],
                "outputs": [
                    {
                        "referenceName": "BlobDataset",
                        "parameters": {
                            "path": "@pipeline().parameters.outputPath"
                        },
                        "type": "DatasetReference"
                    }
                ],
                "typeProperties": {
                    "source": {
                        "type": "BlobSource"
                    },
                    "sink": {
                        "type": "BlobSink"
                    }
                }
            }
        ],
        "parameters": {
            "inputPath": {
                "type": "String"
            },
            "outputPath": {
                "type": "String"
            }
        }
    }
}

Függvények meghívása kifejezéseken belül

Függvényeket a kifejezéseken belül is meghívhat. A következő szakaszok a kifejezésekben használható függvényekről nyújtanak információkat.

Sztringfüggvények

A sztringek használatához használhatja ezeket a sztringfüggvényeket és néhány gyűjteményfüggvényt is. A sztringfüggvények csak sztringeken működnek.

Sztringfüggvény Task
Concat Két vagy több sztring egyesítése és az egyesített sztring visszaadása.
endsWith Ellenőrizze, hogy egy sztring a megadott részsztringgel végződik-e.
Guid Globálisan egyedi azonosító (GUID) létrehozása sztringként.
indexOf Egy részszúrás kezdőpozíciójának visszaadása.
lastIndexOf Adja vissza az alsztring utolsó előfordulásának kezdő pozícióját.
helyettesít Cserélje le az alsztringet a megadott sztringre, és adja vissza a frissített sztringet.
hasít Olyan tömböt ad vissza, amely vesszővel elválasztott részsztringeket tartalmaz egy nagyobb sztringtől az eredeti sztring megadott elválasztó karaktere alapján.
startsWith Ellenőrizze, hogy egy sztring egy adott részsztringgel kezdődik-e.
Substring Karaktereket ad vissza egy sztringből, a megadott pozíciótól kezdve.
toLower Kisbetűs karakterláncot ad vissza.
toUpper Karakterláncot ad vissza nagybetűs formátumban.
Berendezés Távolítsa el a kezdő és záró szóközt egy sztringből, és adja vissza a frissített sztringet.

Gyűjteményfüggvények

Gyűjtemények, általában tömbök, sztringek és néha szótárak használatához használhatja ezeket a gyűjteményfüggvényeket.

Gyűjteményfüggvény Task
Tartalmaz Ellenőrizze, hogy egy gyűjtemény tartalmaz-e egy adott elemet.
Üres Ellenőrizze, hogy egy gyűjtemény üres-e.
Első Egy gyűjtemény első elemének visszaadása.
Kereszteződés Olyan gyűjteményt ad vissza, amely csak a megadott gyűjtemények közös elemeit tartalmazza.
csatlakozás Olyan sztringet ad vissza, amely egy tömb összes elemét tartalmazza, a megadott karakterrel elválasztva.
Utolsó Egy gyűjtemény utolsó elemének visszaadása.
length (hossz) Egy sztring vagy tömb elemeinek számát adja vissza.
Ugrál Távolítsa el az elemeket a gyűjtemény elejéről, és adja vissza az összes többi elemet.
take Elemeket ad vissza a gyűjtemény elejéről.
Unió Olyan gyűjteményt ad vissza, amely a megadott gyűjtemények összes elemét tartalmazza.

Logikai függvények

Ezek a függvények a feltételeken belül hasznosak, bármilyen típusú logika kiértékelésére használhatók.

Logikai összehasonlító függvény Task
És Ellenőrizze, hogy az összes kifejezés igaz-e.
Egyenlő Ellenőrizze, hogy mindkét érték egyenértékű-e.
Nagyobb Ellenőrizze, hogy az első érték nagyobb-e a másodiknál.
greaterOrEquals Ellenőrizze, hogy az első érték nagyobb-e, mint a második érték.
Ha Ellenőrizze, hogy egy kifejezés igaz vagy hamis-e. Az eredmény alapján adjon vissza egy megadott értéket.
Kevesebb Ellenőrizze, hogy az első érték kisebb-e a másodiknál.
lessOrEquals Ellenőrizze, hogy az első érték kisebb-e, mint a második érték.
Nem Ellenőrizze, hogy egy kifejezés hamis-e.
vagy Ellenőrizze, hogy legalább egy kifejezés igaz-e.

Konverziós függvények

Ezek a függvények a nyelv natív típusai közötti konvertálásra szolgálnak:

  • sztring
  • egész szám
  • float
  • Logikai
  • Tömbök
  • Szótárak
Konvertálási függvény Task
Tömb Tömb visszaadása egyetlen megadott bemenetből. Több bemenet esetén lásd: createArray.
base64 Visszaadja egy sztring base64 kódolású verzióját.
base64ToBinary Egy base64 kódolású sztring bináris verzióját adja vissza.
base64ToString Egy base64 kódolású sztring sztringverzióját adja vissza.
Bináris Adja vissza egy bemeneti érték bináris verzióját.
Bool Adja vissza egy bemeneti érték logikai verzióját.
coalesce Az első nem null értéket adja vissza egy vagy több paraméterből.
createArray Több bemenetből származó tömböt ad vissza.
dataUri Adja vissza egy bemeneti érték adat URI-jának értékét.
dataUriToBinary Adja vissza egy adat URI bináris verzióját.
dataUriToString Az adat URI sztringverziójának visszaadása.
decodeBase64 Egy base64 kódolású sztring sztringverzióját adja vissza.
decodeDataUri Adja vissza egy adat URI bináris verzióját.
decodeUriComponent Visszaad egy sztringet, amely a feloldó karaktereket dekódolt verziókra cseréli.
encodeUriComponent Olyan sztringet ad vissza, amely az URL-cím szempontjából nem biztonságos karaktereket feloldó karakterekre cseréli.
Úszó Egy bemeneti érték lebegőpontos számát adja vissza.
Int Egy sztring egész verziójának visszaadása.
Json Adja vissza egy sztring vagy XML JavaScript Object Notation (JSON) típusértékét vagy objektumát.
Karakterlánc Adja vissza egy bemeneti érték sztringverziójának értékét.
uriComponent Adja vissza egy bemeneti érték URI-kódolású verzióját úgy, hogy az URL-cím szempontjából nem biztonságos karaktereket feloldó karakterekre cseréli.
uriComponentToBinary Adja vissza az URI-kódolt sztring bináris verzióját.
uriComponentToString Adja vissza egy URI-kódolt sztring sztringverzióját.
xml Sztring XML-verzióját adja vissza.
Xpath Ellenőrizze az XML-ben az XPath (XML Path Language) kifejezésnek megfelelő csomópontokat vagy értékeket, és adja vissza az egyező csomópontokat vagy értékeket.

Matematikai függvények

Ezek a függvények bármilyen típusú számhoz használhatók: egész számokhoz és lebegőpontosakhoz.

Matematikai függvény Task
Hozzáadása Két szám hozzáadásának eredményét adja vissza.
Div Két szám osztásából származó eredményt adja vissza.
Max Számkészletből vagy tömbből a legmagasabb értéket adja vissza.
Min A legkisebb értéket adja vissza számkészletből vagy tömbből.
Mod A maradékot adja vissza két szám felosztásától.
Mul Adja vissza a szorzatot két szám szorzásából.
Rand Véletlenszerű egész számot ad vissza egy megadott tartományból.
Tartomány Adott egész számból induló egész tömböt ad vissza.
Al A második szám kivonásának eredményét adja vissza az első számból.

Dátumfüggvények

Dátum- vagy időfüggvény Task
addDays Adjon hozzá néhány napot egy időbélyeghez.
addHours Adjon hozzá több órát egy időbélyeghez.
addMinutes Adjon hozzá néhány percet egy időbélyeghez.
addSeconds Adjon hozzá néhány másodpercet egy időbélyeghez.
addToTime Adjon hozzá több időegységet egy időbélyeghez. Lásd még : getFutureTime.
convertFromUtc Időbélyeg konvertálása az univerzális idő szerint koordinált (UTC) időzónából a cél időzónába.
convertTimeZone Időbélyeg konvertálása a forrás időzónából a cél időzónává.
convertToUtc Időbélyeg konvertálása a forrás időzónából univerzális idő koordinált (UTC) időzónává.
dayOfMonth Adja vissza a hónap napját egy időbélyegből.
dayOfWeek A hét napját adja vissza egy időbélyegből.
dayOfYear Az év napját adja vissza egy időbélyegből.
formatDateTime Az időbélyeget sztringként adja vissza opcionális formátumban.
getFutureTime Adja vissza az aktuális időbélyeget és a megadott időegységeket. Lásd még : addToTime.
getPastTime Az aktuális időbélyeget adja vissza a megadott időegységekkel együtt. Lásd még : subtractFromTime.
startOfDay Az időbélyeg napjának kezdetét adja vissza.
startOfHour Az óra kezdetét adja vissza egy időbélyeghez.
startOfMonth Adja vissza a hónap kezdetét egy időbélyeghez.
subtractFromTime Vonjon ki több időegységet egy időbélyegből. Lásd még : getPastTime.
Kullancsok ticks Adott időbélyeg tulajdonságértékének visszaadása.
utcNow Az aktuális időbélyeg visszaadása sztringként.

Részletes példák a gyakorlathoz

Részletes Azure Data Factory másolási folyamat paraméterekkel

Ez az Azure Data Factory másolási folyamatparaméter átadási oktatóanyaga bemutatja, hogyan adhat át paramétereket egy folyamat és tevékenység, valamint a tevékenységek között.

Részletes adatfolyam-leképezési folyamat paraméterekkel

Kövesse az adatfolyam leképezését paraméterekkel , hogy átfogó példát találjon a paraméterek adatfolyamban való használatára.

Részletes metaadat-alapú folyamat paraméterekkel

A metaadat-alapú folyamatok tervezéséhez kövesse a metaadat-alapú folyamat paramétereit . Ez a paraméterek népszerű használati esete.

A kifejezésekben használható rendszerváltozók listáját a Rendszerváltozók című témakörben találja.