Udostępnij za pośrednictwem


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

Wskazówka

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 przetwarzania w obszarze roboczym usługi Azure Data Factory lub Synapse Analytics przetwarza dane w połączonych usługach magazynowania za pomocą 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 Aktywność U-SQL w ramach usługi Data Lake Analytics, która uruchamia skrypt U-SQL na połączonej usłudze obliczeniowej 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.

    Pokazuje interfejs użytkownika dla działania U-SQL.

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

    Pokazuje interfejs użytkownika dla karty Skrypt dla działania U-SQL.

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 w ramach Data Lake Analytics w potoku odnosi 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 Wymagane
typ Właściwość typu powinna być ustawiona na: AzureDataLakeAnalytics. Tak
accountName Nazwa konta usługi Azure Data Lake Analytics. Tak
dataLakeAnalyticsUri Azure Data Lake Analytics URI. Nie.
subscriptionId Identyfikator subskrypcji Azure Nie.
resourceGroupName Nazwa grupy zasobów platformy Azure Nie.

Uwierzytelnianie głównego elementu 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:

  • Identyfikator aplikacji
  • Klucz aplikacji
  • Identyfikator dzierżawy

Nadaj podmiotowi zabezpieczeń uprawnienia do usługi Azure Data Lake Analytics korzystając z Kreatora Dodaj Użytkownika.

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

Właściwości Opis Wymagane
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 głównego podmiotu 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 Powiązane 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 w usłudze Data Lake Analytics, usługa przesyła skrypt określony przez ciebie do Data Lake Analytics, a wymagane dane wejściowe i wyniki są zdefiniowane w skrypcie, aby Data Lake Analytics mogło je pobrać i przetworzyć.

{
    "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 Wymagane
nazwa Nazwa aktywności w pipeline Tak
opis Tekst opisujący działanie. Nie.
typ 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
stopień równoległości Maksymalna liczba węzłów jednocześnie używanych do uruchamiania zadania. Nie.
priorytet Określa, które zadania z wszystkich znajdujących się w kolejce powinny zostać wybrane do uruchomienia jako pierwsze. Im niższa liczba, tym wyższy priorytet. Nie.
parametry Parametry do przekazania do skryptu U-SQL. Nie.
wersjaWykonawcza Wersja środowiska uruchomieniowego silnika U-SQL, której chcesz użyć. Nie.
trybKompilacji

Tryb kompilacji języka U-SQL. Musi być jedną z tych wartości: Semantyka: przeprowadzaj tylko kontrole semantyczne i niezbędne kontrole poprawności, Pełne: 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 dla definicji 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 również określić inne właściwości, takie jak stopień równoległości i priorytet, w definicji potoku dla zadań uruchamianych w usłudze Azure Data Lake Analytics.

Parametry dynamiczne

W przykładowej definicji potoku, parametry wejścia i wyjścia mają przypisane stałe wartości.

"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 w oparciu o czas rozpoczęcia okna, który jest przekazywany w momencie wyzwalania potoku.

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