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:
Wyszukaj usługę Data Lake w okienku Działania potoku i przeciągnij działanie U-SQL na kanwę potoku.
Wybierz nowe działanie U-SQL na kanwie, jeśli nie zostało jeszcze wybrane.
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.
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.
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 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 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.
Powiązana zawartość
Zapoznaj się z następującymi artykułami, które wyjaśniają sposób przekształcania danych na inne sposoby: