Przetwarzanie danych przez uruchamianie skryptów U-SQL w usłudze Azure Data Lake Analytics przy użyciu usług Azure Data Factory i Synapse Analytics

DOTYCZY: Azure Data Factory Azure Synapse Analytics

Napiwek

Wypróbuj usługę Data Factory w usłudze Microsoft Fabric — rozwiązanie analityczne typu all-in-one dla przedsiębiorstw. Usługa Microsoft Fabric obejmuje wszystko, od przenoszenia danych do nauki o danych, analizy w czasie rzeczywistym, analizy biznesowej i raportowania. Dowiedz się, jak bezpłatnie rozpocząć nową wersję próbną !

Potok w obszarze roboczym usługi Azure Data Factory lub Synapse Analytics przetwarza dane w połączonych usługach magazynu przy użyciu połączonych usług obliczeniowych. Zawiera sekwencję działań, w których każde działanie wykonuje określoną operację przetwarzania. W tym artykule opisano działanie U-SQL usługi Data Lake Analytics, które uruchamia skrypt U-SQL w połączonej usłudze obliczeniowej usługi Azure Data Lake Analytics .

Utwórz konto usługi Azure Data Lake Analytics przed utworzeniem potoku za pomocą działania U-SQL usługi Data Lake Analytics. Aby dowiedzieć się więcej o usłudze Azure Data Lake Analytics, zobacz Rozpoczynanie pracy z usługą Azure Data Lake Analytics.

Dodawanie działania U-SQL dla usługi Azure Data Lake Analytics do potoku za pomocą interfejsu użytkownika

Aby użyć działania U-SQL dla usługi Azure Data Lake Analytics w potoku, wykonaj następujące kroki:

  1. Wyszukaj usługę Data Lake w okienku Działania potoku i przeciągnij działanie U-SQL na kanwę potoku.

  2. Wybierz nowe działanie U-SQL na kanwie, jeśli nie zostało jeszcze wybrane.

  3. Wybierz kartę Konto usługi ADLA, aby wybrać lub utworzyć nową połączoną usługę Azure Data Lake Analytics, która będzie używana do wykonywania działania U-SQL.

    Shows the UI for a U-SQL activity.

  4. Wybierz kartę Skrypt , aby wybrać lub utworzyć nową połączoną usługę magazynu oraz ścieżkę w lokalizacji magazynu, która będzie hostować skrypt.

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

Połączona usługa Azure Data Lake Analytics

Utworzysz połączoną usługę Azure Data Lake Analytics, aby połączyć usługę obliczeniową Azure Data Lake Analytics z obszarem roboczym usługi Azure Data Factory lub Synapse Analytics. Działanie U-SQL usługi Data Lake Analytics w potoku odwołuje się do tej połączonej usługi.

Poniższa tabela zawiera opisy właściwości ogólnych używanych w definicji JSON.

Właściwości Opis Wymagania
type Właściwość typu powinna być ustawiona na: AzureDataLakeAnalytics. Tak
Accountname Nazwa konta usługi Azure Data Lake Analytics. Tak
dataLakeAnalyticsUri Identyfikator URI usługi Azure Data Lake Analytics. Nie.
Subscriptionid Identyfikator subskrypcji Azure Nie.
resourceGroupName Nazwa grupy zasobów platformy Azure Nie.

Uwierzytelnianie nazwy głównej usługi

Połączona usługa Azure Data Lake Analytics wymaga uwierzytelniania jednostki usługi w celu nawiązania połączenia z usługą Azure Data Lake Analytics. Aby użyć uwierzytelniania jednostki usługi, zarejestruj jednostkę aplikacji w usłudze Microsoft Entra ID i przyznaj jej dostęp zarówno do usługi Data Lake Analytics, jak i usługi Data Lake Store, której używa. Aby uzyskać szczegółowe instrukcje, zobacz Uwierzytelnianie typu service-to-service. Zanotuj następujące wartości, których użyjesz do zdefiniowania połączonej usługi:

  • Application ID
  • Klucz aplikacji
  • Identyfikator dzierżawy

Udzielanie jednostce usługi uprawnień do usługi Azure Data Lake Analytics przy użyciu Kreatora dodawania użytkownika.

Użyj uwierzytelniania jednostki usługi, określając następujące właściwości:

Właściwości Opis Wymagania
servicePrincipalId Określ identyfikator klienta aplikacji. Tak
servicePrincipalKey Określ klucz aplikacji. Tak
tenant Określ informacje o dzierżawie (nazwę domeny lub identyfikator dzierżawy), w ramach których znajduje się aplikacja. Możesz go pobrać, umieszczając wskaźnik myszy w prawym górnym rogu witryny Azure Portal. Tak

Przykład: uwierzytelnianie jednostki usługi

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

Aby dowiedzieć się więcej o połączonej usłudze, zobacz Compute linked services (Połączone usługi obliczeniowe).

Działania języka U-SQL usługi Data Lake Analytics

Poniższy fragment kodu JSON definiuje potok z działaniem U-SQL usługi Data Lake Analytics. Definicja działania zawiera odwołanie do utworzonej wcześniej połączonej usługi Azure Data Lake Analytics. Aby wykonać skrypt U-SQL usługi Data Lake Analytics, usługa przesyła skrypt określony do usługi Data Lake Analytics, a wymagane dane wejściowe i wyjściowe są zdefiniowane w skrypcie dla usługi Data Lake Analytics w celu pobrania i danych wyjściowych.

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

W poniższej tabeli opisano nazwy i opisy właściwości specyficznych dla tego działania.

Właściwości Opis Wymagania
name Nazwa działania w potoku Tak
opis Tekst opisujący działanie. Nie.
type W przypadku działania U-SQL usługi Data Lake Analytics typ działania to DataLakeAnalyticsU-SQL. Tak
linkedServiceName Połączona usługa z usługą Azure Data Lake Analytics. Aby dowiedzieć się więcej o tej połączonej usłudze, zobacz artykuł Dotyczący połączonych usług obliczeniowych. Tak
scriptPath Ścieżka do folderu zawierającego skrypt U-SQL. W nazwie pliku jest uwzględniana wielkość liter. Tak
scriptLinkedService Połączona usługa, która łączy usługę Azure Data Lake Store lub Azure Storage zawierającą skrypt Tak
degreeOfParallelism Maksymalna liczba węzłów jednocześnie używanych do uruchamiania zadania. Nie.
priority Określa, które zadania poza wszystkimi kolejkami powinny zostać wybrane do pierwszego uruchomienia. Im niższa liczba, tym wyższy priorytet. Nie.
parameters Parametry do przekazania do skryptu U-SQL. Nie.
runtimeVersion Wersja środowiska uruchomieniowego aparatu U-SQL do użycia. Nie.
compilationMode

Tryb kompilacji języka U-SQL. Musi być jedną z następujących wartości: Semantyka: przeprowadzaj tylko testy semantyczne i niezbędne testy sanity, Full: Wykonaj pełną kompilację, w tym sprawdzanie składni, optymalizację, generowanie kodu itp., SingleBox: wykonaj pełną kompilację z ustawieniem TargetType na SingleBox. Jeśli nie określisz wartości dla tej właściwości, serwer określi optymalny tryb kompilacji.

Nie.

Zobacz SearchLogProcessing.txt , aby zapoznać się z definicją skryptu.

Przykładowy skrypt 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);

W powyższym przykładzie skryptu dane wejściowe i wyjściowe skryptu są definiowane w parametrach @in i @out . Wartości parametrów @in i @out skryptu U-SQL są przekazywane dynamicznie przez usługę przy użyciu sekcji "parameters".

Możesz określić inne właściwości, takie jak degreeOfParallelism i priorytet, a także w definicji potoku dla zadań uruchamianych w usłudze Azure Data Lake Analytics.

Parametry dynamiczne

W przykładowej definicji potoku parametry w i na wyjęcie są przypisywane z zakodowanymi wartościami.

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

Zamiast tego można użyć parametrów dynamicznych. Na przykład:

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

W takim przypadku pliki wejściowe są nadal pobierane z folderu /datalake/input, a pliki wyjściowe są generowane w folderze /datalake/output. Nazwy plików są dynamiczne na podstawie czasu rozpoczęcia okna przekazywanego po wyzwoleniu potoku.

Zapoznaj się z następującymi artykułami, które wyjaśniają sposób przekształcania danych na inne sposoby: