Megosztás a következőn keresztül:


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 új az Azure Data Factory paraméterhasználatában az ADF felhasználói felületén, tekintse meg a Data Factory felhasználói felületének vizuális magyarázatát a paraméterekkel rendelkező társított szolgáltatások esetén, valamint a metaadatalapú folyamatokhoz készült pipeline paraméterezett verziójának vizuális magyarázatát.

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 literálok vagy futásidőben kiértékelt kifejezések.

Példa:

"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 egy literális karakterláncra van szükség, amely @-val kezdődik, akkor a @@ használatával kell leírni. 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 szövegen belül is megjelenhetnek a sztring interpoláció nevű funkcióval, amelyben a kifejezések be vannak csomagolva @{ ... }. Például: "name" : "First Name: @{pipeline().parameters.firstName} Last Name: @{pipeline().parameters.lastName}"

Karakterlánc-interpolációval az eredmény mindig karakterlánc. Tegyük fel, hogy myNumber-t definiáltam mint 42, és myString-t mint foo.

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 visszaadja számként.
"@{pipeline().parameters.myNumber}" 42 visszaadja, mint sztring.
"Válasz: @{pipeline().parameters.myNumber}" A karakterláncot Answer is: 42 adja vissza.
@concat('Válasz: ', string(pipeline().parameters.myNumber)) Visszaadja a sztringet 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 karakterlánc interpoláció két kifejezési függvénnyel.

{ 
  "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 látható 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 karakterláncfüggvények csak karakterláncokon használhatók.

Sztringfüggvény Feladat
összefűzés Két vagy több karakterlánc összefűzése, és a kombinált karakterlánc visszaadása.
végződik Ellenőrizze, hogy egy sztring a megadott részsztringgel végződik-e.
Guid Globálisan egyedi azonosító (GUID) létrehozása karakterláncként.
indexOf Egy részszöveg kezdőpozíciójának visszaadása.
lastIndexOf Adja meg 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.
részszöveg Karaktereket ad vissza egy sztringből, a megadott pozíciótól kezdve.
toLower Kisbetűs formátumban adja vissza a karakterláncot.
toUpper Karakterláncot ad vissza nagybetűs formátumban.
igazít 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

Ahhoz, hogy gyűjteményekkel dolgozzon, mint például tömbök, sztringek és néha szótárak, használhatja ezeket a gyűjteményfüggvényeket.

Adatgyűjtési függvény Feladat
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.
útkeresztező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.
átugrik Távolítsa el az elemeket a gyűjtemény elejéről, és adja vissza az összes többi elemet.
vesz A gyűjtemény elejéről visszaküld elemeket.
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 Feladat
é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.
nagyobbVagyEgyenlő 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.
kisebb vagy egyenlő 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:

  • húr
  • egész szám
  • lebegni
  • Booleán
  • Tömbök
  • Szótárak
Konvertálási függvény Feladat
tömb Tömb visszaadása egyetlen megadott bemenetből. Több bemenet esetén lásd: createArray.
base64 Visszaadja egy karakterlánc base64 kódolású verzióját.
base64ToBinary Egy base64 kódolású sztring bináris verzióját adja vissza.
base64ToString Adja vissza a base64 kódolású karakterlánc karakterlánc változatát.
bináris Adja vissza egy bemeneti érték bináris verzióját.
Bool Adja vissza egy bemeneti érték logikai verzióját.
összenő 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át.
dataUriToBinary Adja vissza egy adat URI bináris verzióját.
dataUriToString Az adat URI sztringverziójának visszaadása.
decodeBase64 Adja vissza a base64 kódolású karakterlánc karakterlánc változatát.
decodeDataUri Adja vissza egy adat URI bináris verzióját.
dekódolja az URI-komponenst Visszaad egy sztringet, amely az escape 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.
lebeg Egy bemeneti érték lebegőpontos számát adja vissza.
Int Adja vissza egy sztring egész számként való ábrázolását.
json Adja vissza egy sztring vagy XML JavaScript Object Notation (JSON) típusértékét vagy objektumát.
zsinór 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 a URI-kódolt karakterlánc sztringverzióját.
xml Adja vissza a szöveg XML-verzióját.
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 Feladat
hozzáad 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.
maximális 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 Adja vissza a maradékot két szám osztásábó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.
szub 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 Feladat
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 Az időbélyeget az univerzális idő szerint koordinált (UTC) időzónából konvertáljuk 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 az időbélyeg hónap-nap komponensét.
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 Adja vissza az időbélyeghez tartozó óra elejét.
startOfMonth Adja meg a hónap kezdetét egy időbélyeg alapján.
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élyeget sztringként adja vissza.

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

Kövesse a metaadat-alapú folyamathoz kapcsolódó paraméterek használata című útmutatót, hogy többet tudjon meg arról, hogyan tervezhetünk paraméterek alkalmazásával metaadat-alapú folyamatokat. 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.