Adatok feldolgozása U-SQL-szkriptek futtatásával az Azure Data Lake Analyticsben az Azure Data Factory és a Synapse Analytics használatával

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!

Az Azure Data Factoryben vagy a Synapse Analytics-munkaterületen lévő folyamatok csatolt számítási szolgáltatások használatával dolgoznak fel adatokat a társított tárolási szolgáltatásokban. Olyan tevékenységek sorozatát tartalmazza, amelyekben minden tevékenység egy adott feldolgozási műveletet hajt végre. Ez a cikk azt a Data Lake Analytics U-SQL-tevékenységet ismerteti, amely U-SQL-szkriptet futtat egy Azure Data Lake Analytics számítási társított szolgáltatáson.

Hozzon létre egy Azure Data Lake Analytics-fiókot, mielőtt egy Data Lake Analytics U-SQL-tevékenységgel rendelkező folyamatot hoz létre. Az Azure Data Lake Analytics megismeréséhez tekintse meg az Azure Data Lake Analytics használatának első lépéseit.

U-SQL-tevékenység hozzáadása az Azure Data Lake Analyticshez felhasználói felülettel rendelkező folyamathoz

Ha U-SQL-tevékenységet szeretne használni az Azure Data Lake Analyticshez egy folyamatban, hajtsa végre a következő lépéseket:

  1. Keresse meg a Data Lake-t a folyamattevékenységek panelen, és húzzon egy U-SQL-tevékenységet a folyamatvászonra.

  2. Jelölje ki az új U-SQL-tevékenységet a vásznon, ha még nincs kijelölve.

  3. Az ADLA-fiók lapon válasszon ki vagy hozzon létre egy új Azure Data Lake Analytics-társított szolgáltatást, amely a U-SQL-tevékenység végrehajtásához lesz használva.

    Shows the UI for a U-SQL activity.

  4. A Szkript fülre kattintva válasszon ki vagy hozzon létre egy új társított társzolgáltatást, valamint egy elérési utat a tárolóhelyen belül, amely a szkriptet fogja üzemeltetni.

    Shows the UI for the Script tab for a U-SQL activity.

Azure Data Lake Analytics társított szolgáltatás

Azure Data Lake Analytics-társított szolgáltatást hoz létre, amely összekapcsol egy Azure Data Lake Analytics számítási szolgáltatást egy Azure Data Factory vagy Synapse Analytics-munkaterülethez. A folyamat Data Lake Analytics U-SQL-tevékenysége erre a társított szolgáltatásra hivatkozik.

Az alábbi táblázat a JSON-definícióban használt általános tulajdonságok leírását tartalmazza.

Property Leírás Required
type A típustulajdonságnak a következőnek kell lennie: AzureDataLakeAnalytics. Igen
Accountname Azure Data Lake Analytics-fiók neve. Igen
dataLakeAnalyticsUri Azure Data Lake Analytics URI. Nem
subscriptionId Azure-előfizetés azonosítója Nem
resourceGroupName Azure-erőforráscsoport neve Nem

Egyszerű szolgáltatás hitelesítése

Az Azure Data Lake Analytics társított szolgáltatáshoz szolgáltatásnév-hitelesítés szükséges az Azure Data Lake Analytics szolgáltatáshoz való csatlakozáshoz. A szolgáltatásnév-hitelesítés használatához regisztráljon egy alkalmazásentitást a Microsoft Entra-azonosítóban, és adjon hozzáférést mind a Data Lake Analyticshez, mind az általa használt Data Lake Store-hoz. A részletes lépésekért tekintse meg a szolgáltatásközi hitelesítést. Jegyezze fel az alábbi értékeket, amelyeket a társított szolgáltatás definiálásához használ:

  • Pályázat azonosítója
  • Alkalmazáskulcs
  • Tenant ID

Adjon egyszerű szolgáltatásengedélyt az Azure Data Lake Analyticsnek a Felhasználó hozzáadása varázslóval.

Szolgáltatásnév-hitelesítés használata a következő tulajdonságok megadásával:

Property Leírás Required
servicePrincipalId Adja meg az alkalmazás ügyfél-azonosítóját. Igen
servicePrincipalKey Adja meg az alkalmazás kulcsát. Igen
Bérlő Adja meg azt a bérlői információt (tartománynevet vagy bérlőazonosítót), amely alatt az alkalmazás található. A lekéréshez vigye az egérmutatót az Azure Portal jobb felső sarkában. Igen

Példa: Egyszerű szolgáltatáshitelesítés

{
    "name": "AzureDataLakeAnalyticsLinkedService",
    "properties": {
        "type": "AzureDataLakeAnalytics",
        "typeProperties": {
            "accountName": "<account name>",
            "dataLakeAnalyticsUri": "<azure data lake analytics URI>",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalKey": {
                "value": "<service principal key>",
                "type": "SecureString"
            },
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>",
            "subscriptionId": "<optional, subscription id of ADLA>",
            "resourceGroupName": "<optional, resource group name of ADLA>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }       
    }
}

A társított szolgáltatással kapcsolatos további információkért lásd a társított számítási szolgáltatásokat.

Data Lake Analytics U-SQL-tevékenység

Az alábbi JSON-kódrészlet egy Data Lake Analytics U-SQL-tevékenységgel rendelkező folyamatot határoz meg. A tevékenységdefiníció hivatkozik a korábban létrehozott Azure Data Lake Analytics társított szolgáltatásra. Egy Data Lake Analytics U-SQL-szkript végrehajtásához a szolgáltatás elküldi a megadott szkriptet a Data Lake Analyticsnek, és a szükséges bemenetek és kimenetek a Data Lake Analytics beolvasásához és kimenetéhez használt szkriptben vannak meghatározva.

{
    "name": "ADLA U-SQL Activity",
    "description": "description",
    "type": "DataLakeAnalyticsU-SQL",
    "linkedServiceName": {
        "referenceName": "<linked service name of Azure Data Lake Analytics>",
        "type": "LinkedServiceReference"
    },
    "typeProperties": {
        "scriptLinkedService": {
            "referenceName": "<linked service name of Azure Data Lake Store or Azure Storage which contains the U-SQL script>",
            "type": "LinkedServiceReference"
        },
        "scriptPath": "scripts\\kona\\SearchLogProcessing.txt",
        "degreeOfParallelism": 3,
        "priority": 100,
        "parameters": {
            "in": "/datalake/input/SearchLog.tsv",
            "out": "/datalake/output/Result.tsv"
        }
    }   
}

Az alábbi táblázat a tevékenységre jellemző tulajdonságok nevét és leírását ismerteti.

Property Leírás Required
név A folyamat tevékenységének neve Igen
leírás A tevékenység tevékenységeit leíró szöveg. Nem
típus A Data Lake Analytics U-SQL-tevékenység esetében a tevékenység típusa DataLakeAnalyticsU-SQL. Igen
linkedServiceName Társított szolgáltatás az Azure Data Lake Analyticshez. A társított szolgáltatással kapcsolatos további információkért tekintse meg a társított számítási szolgáltatásokról szóló cikket. Igen
scriptPath Az U-SQL-szkriptet tartalmazó mappa elérési útja. A fájl neve megkülönbözteti a kis- és nagybetűk nevét. Igen
scriptLinkedService Társított szolgáltatás, amely összekapcsolja a szkriptet tartalmazó Azure Data Lake Store-t vagy Azure Storage-t Igen
degreeOfParallelism A feladat futtatásához egyidejűleg használt csomópontok maximális száma. Nem
Prioritás Meghatározza, hogy az összes várólistán lévő feladat közül melyik legyen kiválasztva az első futtatáshoz. Minél alacsonyabb a szám, annál magasabb a prioritás. Nem
parameters Az U-SQL-szkriptbe továbbítandó paraméterek. Nem
runtimeVersion A használni kívánt U-SQL-motor futtatókörnyezeti verziója. Nem
compilationMode

Az U-SQL fordítási módja. A következő értékek egyikének kell lennie: Szemantikai: Csak szemantikai ellenőrzéseket és szükséges józansági ellenőrzéseket hajthat végre, Teljes: A teljes fordítás végrehajtása, beleértve a szintaxisellenőrzést, az optimalizálást, a kódgenerálást stb., a SingleBoxot: A teljes fordítás végrehajtása a TargetType beállítással a SingleBox értékre. Ha nem ad meg értéket ehhez a tulajdonsághoz, a kiszolgáló határozza meg az optimális fordítási módot.

Nem

A szkriptdefiníciót lásd a SearchLogProcessing.txt fájlban.

U-SQL-példaszkript

@searchlog =
    EXTRACT UserId          int,
            Start           DateTime,
            Region          string,
            Query           string,
            Duration        int,
            Urls            string,
            ClickedUrls     string
    FROM @in
    USING Extractors.Tsv(nullEscape:"#NULL#");

@rs1 =
    SELECT Start, Region, Duration
    FROM @searchlog
WHERE Region == "en-gb";

@rs1 =
    SELECT Start, Region, Duration
    FROM @rs1
    WHERE Start <= DateTime.Parse("2012/02/19");

OUTPUT @rs1   
    TO @out
      USING Outputters.Tsv(quoting:false, dateTimeFormat:null);

A fenti példaszkriptben a szkript bemenete és kimenete @in és @out paraméterekben van definiálva. Az U-SQL-szkriptben található @in és @out paraméterek értékeit a szolgáltatás dinamikusan adja át a "paraméterek" szakasz használatával.

Az Azure Data Lake Analytics szolgáltatásban futtatott feladatokhoz megadhat más tulajdonságokat, például a degreeOfParallelism és a prioritást, valamint a folyamatdefinícióban is.

Dinamikus paraméterek

A mintafolyamat-definícióban a be- és kimenő paramétereket a rendszer kemény kóddal ellátott értékekkel rendeli hozzá.

"parameters": {
    "in": "/datalake/input/SearchLog.tsv",
    "out": "/datalake/output/Result.tsv"
}

Ehelyett dinamikus paramétereket is használhat. Például:

"parameters": {
    "in": "/datalake/input/@{formatDateTime(pipeline().parameters.WindowStart,'yyyy/MM/dd')}/data.tsv",
    "out": "/datalake/output/@{formatDateTime(pipeline().parameters.WindowStart,'yyyy/MM/dd')}/result.tsv"
}

Ebben az esetben a bemeneti fájlok továbbra is a /datalake/input mappából lesznek felvéve, a kimeneti fájlok pedig a /datalake/output mappában jönnek létre. A fájlnevek dinamikusak attól függően, hogy a folyamat aktiválásakor milyen időtartományban van átadva az ablak kezdőideje.

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