Bearbeta data genom att köra U-SQL-skript i Azure Data Lake Analytics med Azure Data Factory och Synapse Analytics

GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics

Dricks

Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!

En pipeline i en Azure Data Factory- eller Synapse Analytics-arbetsyta bearbetar data i länkade lagringstjänster med hjälp av länkade beräkningstjänster. Den innehåller en sekvens med aktiviteter där varje aktivitet utför en specifik bearbetningsåtgärd. I den här artikeln beskrivs den U-SQL-aktivitet för Data Lake Analytics som kör ett U-SQL-skript på en länkad Azure Data Lake Analytics-beräkningstjänst .

Skapa ett Azure Data Lake Analytics-konto innan du skapar en pipeline med en U-SQL-aktivitet för Data Lake Analytics. Mer information om Azure Data Lake Analytics finns i Komma igång med Azure Data Lake Analytics.

Lägga till en U-SQL-aktivitet för Azure Data Lake Analytics i en pipeline med användargränssnitt

Utför följande steg för att använda en U-SQL-aktivitet för Azure Data Lake Analytics i en pipeline:

  1. Sök efter Data Lake i fönstret Pipelineaktiviteter och dra en U-SQL-aktivitet till pipelinearbetsytan.

  2. Välj den nya U-SQL-aktiviteten på arbetsytan om den inte redan är markerad.

  3. Välj fliken ADLA-konto för att välja eller skapa en ny länkad Azure Data Lake Analytics-tjänst som ska användas för att köra U-SQL-aktiviteten.

    Shows the UI for a U-SQL activity.

  4. Välj fliken Skript för att välja eller skapa en ny länkad lagringstjänst och en sökväg på lagringsplatsen som ska vara värd för skriptet.

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

Länkad Azure Data Lake Analytics-tjänst

Du skapar en länkad Azure Data Lake Analytics-tjänst för att länka en Azure Data Lake Analytics-beräkningstjänst till en Azure Data Factory- eller Synapse Analytics-arbetsyta. Data Lake Analytics U-SQL-aktiviteten i pipelinen refererar till den här länkade tjänsten.

Följande tabell innehåller beskrivningar för de allmänna egenskaper som används i JSON-definitionen.

Property Beskrivning Obligatoriskt
typ Typegenskapen ska anges till: AzureDataLakeAnalytics. Ja
accountName Azure Data Lake Analytics-kontonamn. Ja
dataLakeAnalyticsUri Azure Data Lake Analytics-URI. Nej
subscriptionId Azure-prenumerations-ID Nej
resourceGroupName Azure-resursgruppsnamn Nej

Tjänstens huvudautentisering

Den länkade Azure Data Lake Analytics-tjänsten kräver en autentisering med tjänstens huvudnamn för att ansluta till Azure Data Lake Analytics-tjänsten. Om du vill använda autentisering med tjänstens huvudnamn registrerar du en programentitet i Microsoft Entra-ID och ger den åtkomst till både Data Lake Analytics och Data Lake Store som används. Detaljerade steg finns i Tjänst-till-tjänst-autentisering. Anteckna följande värden som du använder för att definiera den länkade tjänsten:

  • Program-ID:t
  • Programnyckel
  • Klientorganisations-ID

Ge tjänstens huvudnamn behörighet till Azure Data Lake Analytics med hjälp av guiden Lägg till användare.

Använd autentisering med tjänstens huvudnamn genom att ange följande egenskaper:

Property Beskrivning Obligatoriskt
servicePrincipalId Ange programmets klient-ID. Ja
servicePrincipalKey Ange programmets nyckel. Ja
Hyresgästen Ange klientinformationen (domännamn eller klient-ID) som programmet finns under. Du kan hämta den genom att hovra musen i det övre högra hörnet i Azure-portalen. Ja

Exempel: Autentisering med tjänstens huvudnamn

{
    "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"
        }       
    }
}

Mer information om den länkade tjänsten finns i Beräkna länkade tjänster.

Data Lake Analytics U-SQL-aktivitet

Följande JSON-kodfragment definierar en pipeline med en U-SQL-aktivitet för Data Lake Analytics. Aktivitetsdefinitionen har en referens till den länkade Azure Data Lake Analytics-tjänsten som du skapade tidigare. För att köra ett U-SQL-skript för Data Lake Analytics skickar tjänsten det skript som du angav till Data Lake Analytics, och de indata och utdata som krävs definieras i skriptet för Data Lake Analytics för att hämta och mata ut.

{
    "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"
        }
    }   
}

I följande tabell beskrivs namn och beskrivningar av egenskaper som är specifika för den här aktiviteten.

Property Beskrivning Obligatoriskt
name Namnet på aktiviteten i pipelinen Ja
description Text som beskriver vad aktiviteten gör. Nej
type För Data Lake Analytics U-SQL-aktivitet är aktivitetstypen DataLakeAnalyticsU-SQL. Ja
linkedServiceName Länkad tjänst till Azure Data Lake Analytics. Mer information om den här länkade tjänsten finns i artikeln Compute linked services (Beräkningslänkade tjänster ). Ja
scriptPath Sökväg till mappen som innehåller U-SQL-skriptet. Namnet på filen är skiftlägeskänsligt. Ja
scriptLinkedService Länkad tjänst som länkar Azure Data Lake Store eller Azure Storage som innehåller skriptet Ja
degreeOfParallelism Det maximala antalet noder som används samtidigt för att köra jobbet. Nej
prioritet Avgör vilka jobb av alla som är i kö ska väljas för att köras först. Desto lägre tal, desto högre prioritet. Nej
parametrar Parametrar som ska skickas till U-SQL-skriptet. Nej
runtimeVersion Körningsversion av U-SQL-motorn som ska användas. Nej
compilationMode

Kompileringsläge för U-SQL. Måste vara ett av följande värden: Semantisk: Utför endast semantiska kontroller och nödvändiga sanitetskontroller, Fullständig: Utför den fullständiga kompilering, inklusive syntaxkontroll, optimering, kodgenerering osv., SingleBox: Utför den fullständiga kompilering, med TargetType-inställningen till SingleBox. Om du inte anger något värde för den här egenskapen avgör servern det optimala kompileringsläget.

Nej

Se SearchLogProcessing.txt för skriptdefinitionen.

Exempel på U-SQL-skript

@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);

I skriptexemplet ovan definieras indata och utdata till skriptet i parametrarna @in och @out . Värdena för parametrarna @in och @out i U-SQL-skriptet skickas dynamiskt av tjänsten med hjälp av avsnittet parametrar.

Du kan ange andra egenskaper som degreeOfParallelism och prioritet samt i pipelinedefinitionen för jobben som körs på Azure Data Lake Analytics-tjänsten.

Dynamiska parametrar

I exempelpipelinedefinitionen tilldelas in- och utparametrar med hårdkodade värden.

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

Det går att använda dynamiska parametrar i stället. Till exempel:

"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"
}

I det här fallet hämtas fortfarande indatafiler från mappen /datalake/input och utdatafiler genereras i mappen /datalake/output. Filnamnen är dynamiska baserat på starttiden för fönstret som skickas när pipelinen utlöses.

Se följande artiklar som förklarar hur du transformerar data på andra sätt: