Adatok átalakítása szkripttevékenység használatával az Azure Data Factoryben vagy a Synapse Analyticsben

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!

A Data Factoryben vagy a Synapse-folyamatban adatátalakítási tevékenységeket használva alakíthatja át és dolgozhatja fel a nyers adatokat előrejelzésekké és elemzésekké. A szkripttevékenység az egyik olyan átalakítási tevékenység, amelyet a folyamatok támogatnak. Ez a cikk az adatátalakításról szóló cikkre épül, amely általános áttekintést nyújt az adatátalakításról és a támogatott átalakítási tevékenységekről.

A szkripttevékenység használatával általános műveleteket hajthat végre az adatkezelési nyelvvel (DML) és az adatdefiníciós nyelvvel (DDL). Az olyan DML-utasítások, mint az IN Standard kiadás RT, UPDATE, DELETE és Standard kiadás LECT lehetővé teszik a felhasználók számára az adatok beszúrását, módosítását, törlését és lekérését az adatbázisban. Az olyan DDL-utasítások, mint a CREATE, az ALTER és a DROP, lehetővé teszik az adatbázis-kezelő számára adatbázis-objektumok, például táblák, indexek és felhasználók létrehozását, módosítását és eltávolítását.

A Szkript tevékenység használatával meghívhat egy SQL-szkriptet a vállalata vagy egy Azure-beli virtuális gép (VM) alábbi adattáraiban:

  • Azure SQL Database
  • Azure Synapse Analytics
  • SQL Server Database. Ha SQL Servert használ, telepítse a saját üzemeltetésű integrációs modult ugyanazon a gépen, amely az adatbázist üzemelteti, vagy egy külön, az adatbázishoz hozzáféréssel rendelkező gépre. A saját üzemeltetésű integrációs modul olyan összetevő, amely biztonságos és felügyelt módon csatlakoztatja a helyszíni/Azure-beli virtuális gépek adatforrásait a felhőszolgáltatásokhoz. További részletekért tekintse meg a saját üzemeltetésű integrációs modulról szóló cikket.
  • Oracle
  • Snowflake

A szkript tartalmazhat egyetlen SQL-utasítást vagy több egymás után futó SQL-utasítást. A szkriptfeladatot a következő célokra használhatja:

  • Táblázat csonkolása az adatok beszúrásának előkészítése során.
  • Adatbázis-objektumok, például táblák és nézetek létrehozása, módosítása és elvetése.
  • Hozzon létre újra tény- és dimenziótáblákat, mielőtt adatokat tölt be azokba.
  • Tárolt eljárások futtatása. Ha az SQL-utasítás olyan tárolt eljárást hív meg, amely egy ideiglenes táblából származó eredményeket ad vissza, a WITH RESULT Standard kiadás TS beállítással definiálhatja az eredményhalmaz metaadatait.
  • Mentse a lekérdezésből visszaadott sorhalmazt tevékenységkimenetként az alsóbb rétegbeli felhasználáshoz.

Szintaxis részletei

A szkripttevékenységek definiálása jSON-formátuma a következő:

{ 
   "name": "<activity name>", 
   "type": "Script", 
   "linkedServiceName": { 
      "referenceName": "<name>", 
      "type": "LinkedServiceReference" 
    }, 
   "typeProperties": { 
      "scripts" : [ 
         { 
            "text": "<Script Block>", 
            "type": "<Query> or <NonQuery>", 
            "parameters":[ 
               { 
                  "name": "<name>", 
                  "value": "<value>", 
                  "type": "<type>", 
                  "direction": "<Input> or <Output> or <InputOutput>", 
                  "size": 256 
               }, 
               ... 
            ] 
         }, 
         ... 
      ],     
         ... 
         ] 
      }, 
      "scriptBlockExecutionTimeout": "<time>",  
      "logSettings": { 
         "logDestination": "<ActivityOutput> or <ExternalStore>", 
         "logLocationSettings":{ 
            "linkedServiceName":{ 
               "referenceName": "<name>", 
               "type": "<LinkedServiceReference>" 
            }, 
            "path": "<folder path>" 
         } 
      } 
    } 
} 

Az alábbi táblázat az alábbi JSON-tulajdonságokat ismerteti:

Tulajdonság neve Leírás Szükséges
név A tevékenység neve. Igen
típus A tevékenység típusa , "Script" (Szkript) értékre állítva. Igen
typeProperties Adja meg a szkripttevékenység konfigurálásához használt tulajdonságokat. Igen
linkedServiceName A céladatbázis, amelyen a szkript fut. Hivatkozásnak kell lennie egy társított szolgáltatásra. Igen
szkriptek A szkriptet jelképezendő objektumok tömbje. Nem
scripts.text Egy lekérdezésblokk egyszerű szövege. Nem
scripts.type A lekérdezésblokk típusa. Lehet lekérdezés vagy nem lekérdezés. Alapértelmezett: Lekérdezés. Nem
scripts.parameter A szkript paramétereinek tömbje. Nem
scripts.parameter.name A paraméter neve. Nem
scripts.parameter.value A paraméter értéke. Nem
scripts.parameter.type A paraméter adattípusa. A típus logikai típus, és az egyes összekötők típusleképezését követi. Nem
scripts.parameter.direction A paraméter iránya. Ez lehet bemenet, kimenet, InputOutput. Az érték figyelmen kívül lesz hagyva, ha az irány kimenet. A ReturnValue típus nem támogatott. Állítsa be az SP visszatérési értékét egy kimeneti paraméterre a lekéréshez. Nem
scripts.parameter.size A paraméter maximális mérete. Csak a karakterlánc/bájt[] típusú Output/InputOutput irányparaméterre vonatkozik. Nem
scriptBlockExecutionTimeout A szkriptblokk végrehajtási műveletének várakozási ideje, mielőtt túllépi az időkorlátot. Nem
napló Gépház A kimeneti naplók tárolásának beállításai. Ha nincs megadva, a szkriptnapló le van tiltva. Nem
log Gépház.logDestination A naplókimenet célja. Lehet ActivityOutput vagy ExternalStore. Alapértelmezett: ActivityOutput. Nem
log Gépház.logLocation Gépház A célhely beállításai, ha a logDestination az ExternalStore. Nem
logSettiongs.logLocation Gépház.linkedServiceName A célhely társított szolgáltatása. Csak a blobtároló támogatott. Nem
log Gépház.logLocation Gépház.path A mappa elérési útja, amely alatt a naplók tárolódnak. Nem

Tevékenység kimenete

Példa a kimenetre:

{ 
    "resultSetCount": 2, 
    "resultSets": [ 
        { 
            "rowCount": 10, 
            "rows":[ 
                { 
                    "<columnName1>": "<value1>", 
                    "<columnName2>": "<value2>", 
                    ... 
                } 
            ] 
        }, 
        ... 
    ], 
    "recordsAffected": 123, 
    "outputParameters":{ 
        "<parameterName1>": "<value1>", 
        "<parameterName2>": "<value2>" 
    }, 
    "outputLogs": "<logs>", 
    "outputLogsLocation": "<folder path>", 
    "outputTruncated": true, 
    ... 
} 
Tulajdonság neve Leírás Feltétel
resultSetCount A szkript által visszaadott eredményhalmazok száma. Mindig
resultSets Az összes eredményhalmazt tartalmazó tömb. Mindig
resultSets.rowCount Az eredményhalmaz összes sora. Mindig
resultSets.rows Az eredményhalmaz sorainak tömbje. Mindig
recordsAffected A szkript által érintett sorok száma. Ha a scriptType nemquery.
outputParameters A szkript kimeneti paraméterei. Ha a paraméter típusa Kimenet vagy InputOutput.
outputLogs A szkript által írt naplók, például a nyomtatási utasítás. Ha az összekötő támogatja a naplóutasítást, és aScriptLogs engedélyezése igaz, és a logLocation Gépház nincs megadva.
outputLogsPath A naplófájl teljes elérési útja. Ha az enableScriptLogs értéke igaz, és a logLocation Gépház meg van adva.
outputTruncated Annak jelzése, hogy a kimenet túllépi-e a korlátokat, és csonkolja-e. Ha a kimenet meghaladja a korlátokat.

Feljegyzés

  • A rendszer minden alkalommal összegyűjti a kimenetet, amikor egy szkriptblokkot végrehajt. A végső kimenet az összes szkriptblokk kimenetének egyesített eredménye. A különböző szkriptblokkokban azonos nevű kimeneti paraméter felülíródik.
  • Mivel a kimenet méret- és sorkorlátozásokkal rendelkezik, a kimenet csonkolt lesz a következő sorrendben: naplók -> paraméterek -> sorok. Vegye figyelembe, hogy ez egyetlen szkriptblokkra vonatkozik, ami azt jelenti, hogy a következő szkriptblokk kimeneti sorai nem zárják ki a korábbi naplókat.
  • A napló által okozott hibák nem fogják meghiúsulni a tevékenységet.
  • A tevékenység kimeneti eredményhalmazainak lestreamelési tevékenységben való felhasználásához tekintse meg a keresési tevékenység eredményének dokumentációját.
  • Kimeneti naplókat akkor használjon, ha "PRINT" utasításokat használ naplózási célra. Ha a lekérdezés eredményhalmazokat ad vissza, az elérhető lesz a tevékenység kimenetében, és legfeljebb 5000 sor/ 4 MB méretkorlát lesz elérhető.

A szkripttevékenység konfigurálása felhasználói felületen

Beágyazott szkript

Screenshot showing the UI to configure an inline script.

A beágyazott szkriptek jól integrálhatók a pipeline CI/CD-vel, mivel a szkript a folyamat metaadatainak részeként van tárolva.

Naplózás

Screenshot showing the UI for the logging settings for a script.

Naplózási lehetőségek:

  • Letiltás – Nincs végrehajtási kimenet naplózva.
  • Tevékenység kimenete – A szkript végrehajtási kimenete hozzá van fűzve a tevékenység kimenetéhez. Az alsóbb rétegbeli tevékenységek felhasználhatják. A kimeneti méret legfeljebb 4 MB lehet.
  • Külső tároló – Megőrzi a kimenetet a tárolóban. Ezt a beállítást akkor használja, ha a kimeneti méret nagyobb, mint 2 MB, vagy explicit módon szeretné tárolni a kimenetet a tárfiókban.

Feljegyzés

Számlázás – A szkripttevékenység számlázása folyamattevékenységként lesz kiszámlázva.

Tekintse meg az alábbi cikkeket, amelyekből megtudhatja, hogyan alakíthat át adatokat más módokon: