Zpracování dat spuštěním skriptů U-SQL ve službě Azure Data Lake Analytics pomocí služby Azure Data Factory a Synapse Analytics

PLATÍ PRO: Azure Data Factory Azure Synapse Analytics

Tip

Vyzkoušejte si službu Data Factory v Microsoft Fabric, řešení pro analýzy typu all-in-one pro podniky. Microsoft Fabric zahrnuje všechno od přesunu dat až po datové vědy, analýzy v reálném čase, business intelligence a vytváření sestav. Přečtěte si, jak začít používat novou zkušební verzi zdarma.

Kanál v pracovním prostoru Azure Data Factory nebo Synapse Analytics zpracovává data v propojených službách úložiště pomocí propojených výpočetních služeb. Obsahuje posloupnost aktivit, ve kterých každá aktivita provádí konkrétní operaci zpracování. Tento článek popisuje aktivitu U-SQL služby Data Lake Analytics, která spouští skript U-SQL ve výpočetní propojené službě Azure Data Lake Analytics.

Před vytvořením kanálu s aktivitou U-SQL pro Data Lake Analytics vytvořte účet Azure Data Lake Analytics Analytics. Další informace o Azure Data Lake Analytics najdete v tématu Začínáme s Azure Data Lake Analytics.

Přidání aktivity U-SQL pro Azure Data Lake Analytics do kanálu pomocí uživatelského rozhraní

Pokud chcete v kanálu použít aktivitu U-SQL pro Azure Data Lake Analytics, proveďte následující kroky:

  1. Vyhledejte Data Lake v podokně Aktivity kanálu a přetáhněte aktivitu U-SQL na plátno kanálu.

  2. Pokud ještě není vybraná, vyberte na plátně novou aktivitu U-SQL.

  3. Výběrem karty Účet ADLA vyberte nebo vytvořte novou propojenou službu Azure Data Lake Analytics, která se použije ke spuštění aktivity U-SQL.

    Shows the UI for a U-SQL activity.

  4. Výběrem karty Skript vyberte nebo vytvořte novou propojenou službu úložiště a cestu v umístění úložiště, která bude hostovat skript.

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

Propojená služba Azure Data Lake Analytics

Vytvoříte propojenou službu Azure Data Lake Analytics , která propojí výpočetní službu Azure Data Lake Analytics s pracovním prostorem Azure Data Factory nebo Synapse Analytics. Aktivita U-SQL služby Data Lake Analytics v kanálu odkazuje na tuto propojenou službu.

Následující tabulka obsahuje popis obecných vlastností použitých v definici JSON.

Vlastnost Popis Povinní účastníci
type Vlastnost typu by měla být nastavena na: AzureDataLakeAnalytics. Ano
accountName Název účtu Azure Data Lake Analytics Ano
dataLakeAnalyticsUri Identifikátor URI služby Azure Data Lake Analytics No
subscriptionId ID předplatného Azure No
resourceGroupName Název skupiny prostředků Azure No

Ověřování instančního objektu

Propojená služba Azure Data Lake Analytics vyžaduje ověření instančního objektu pro připojení ke službě Azure Data Lake Analytics. Pokud chcete použít ověřování instančního objektu, zaregistrujte entitu aplikace v Microsoft Entra ID a udělte jí přístup k Data Lake Analytics i Data Lake Store, které používá. Podrobný postup najdete v tématu Ověřování mezi službami. Poznamenejte si následující hodnoty, které slouží k definování propojené služby:

  • ID aplikace
  • Klíč aplikace
  • ID tenanta

Pomocí Průvodce přidáním uživatele udělte instančnímu objektu oprávnění ke službě Azure Data Lake Analytics.

Ověřování instančního objektu použijte zadáním následujících vlastností:

Vlastnost Popis Povinní účastníci
servicePrincipalId Zadejte ID klienta aplikace. Ano
servicePrincipalKey Zadejte klíč aplikace. Ano
Nájemce Zadejte informace o tenantovi (název domény nebo ID tenanta), pod kterým se vaše aplikace nachází. Můžete ho načíst tak, že narazíte myší v pravém horním rohu webu Azure Portal. Ano

Příklad: Ověřování instančního objektu

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

Další informace o propojené službě najdete v tématu Propojené služby Compute.

Aktivita U-SQL služby Data Lake Analytics

Následující fragment kódu JSON definuje kanál s aktivitou U-SQL Data Lake Analytics. Definice aktivity obsahuje odkaz na propojenou službu Azure Data Lake Analytics, kterou jste vytvořili dříve. Pokud chcete spustit skript U-SQL Data Lake Analytics, služba odešle skript, který jste zadali do Data Lake Analytics, a požadované vstupy a výstupy jsou definovány ve skriptu pro Data Lake Analytics k načtení a výstupu.

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

Následující tabulka popisuje názvy a popisy vlastností, které jsou specifické pro tuto aktivitu.

Vlastnost Popis Povinní účastníci
name Název aktivity v kanálu Ano
description Text popisující, co aktivita dělá. No
type U aktivity U-SQL služby Data Lake Analytics je typ aktivity DataLakeAnalyticsU-SQL. Ano
linkedServiceName Propojená služba s Azure Data Lake Analytics Další informace o této propojené službě najdete v článku o propojených službách Compute. Ano
scriptPath Cesta ke složce, která obsahuje skript U-SQL V názvu souboru se rozlišují malá a velká písmena. Ano
scriptLinkedService Propojená služba, která propojila Službu Azure Data Lake Store nebo Azure Storage , která obsahuje skript Ano
degreeOfParallelism Maximální počet uzlů, které se současně používají ke spuštění úlohy. No
Prioritou Určuje, které úlohy ze všech zařazených do fronty mají být vybrány, aby se spustily jako první. Čím nižší je číslo, tím vyšší je priorita. No
parameters Parametry, které se mají předat do skriptu U-SQL No
runtimeVersion Verze modulu runtime modulu U-SQL, který se má použít. No
Compilationmode

Režim kompilace U-SQL Musí to být jedna z těchto hodnot: Sémantika: Proveďte pouze sémantické kontroly a nezbytné kontroly sanity, Úplné: Proveďte úplnou kompilaci, včetně kontroly syntaxe, optimalizace, generování kódu atd., SingleBox: Proveďte úplnou kompilaci s nastavením TargetType na SingleBox. Pokud pro tuto vlastnost nezadáte hodnotu, server určí optimální režim kompilace.

No

Definice skriptu najdete v souboru SearchLogProcessing.txt .

Ukázkový skript U-SQL

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

Ve výše uvedeném příkladu skriptu je vstup a výstup skriptu definován v @in a @out parametry. Hodnoty parametrů @in a @out ve skriptu U-SQL se službou předávají dynamicky pomocí oddílu "parameters".

V definici kanálu můžete zadat další vlastnosti, například degreeOfParallelism a prioritu, pro úlohy, které běží ve službě Azure Data Lake Analytics.

Dynamické parametry

V definici ukázkového kanálu jsou parametry in a out přiřazeny pevně zakódovanými hodnotami.

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

Místo toho je možné použít dynamické parametry. Příklad:

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

V tomto případě se vstupní soubory stále vybírají ze složky /datalake/input a výstupní soubory se generují ve složce /datalake/output. Názvy souborů jsou dynamické na základě času spuštění okna předávaného při aktivaci kanálu.

Podívejte se na následující články, které vysvětlují, jak transformovat data jinými způsoby: