Traiter des données en exécutant des scripts U-SQL sur Azure Data Lake Analytics avec Azure Data Factory et Synapse Analytics
S’APPLIQUE À : Azure Data Factory Azure Synapse Analytics
Conseil
Essayez Data Factory dans Microsoft Fabric, une solution d’analyse tout-en-un pour les entreprises. Microsoft Fabric couvre tous les aspects, du déplacement des données à la science des données, en passant par l’analyse en temps réel, l’aide à la décision et la création de rapports. Découvrez comment démarrer un nouvel essai gratuitement !
Un pipeline dans un espace de travail Azure Data Factory ou Synapse Analytics traite les données dans les services de stockage liés à l'aide des services de calcul liés. Il contient une séquence d'activités dans laquelle chaque activité effectue une opération de traitement spécifique. Cet article décrit l’activité U-SQL de Data Lake Analytics qui exécute un script U-SQL sur un service lié de calcul Azure Data Lake Analytics.
Créez un compte Azure Data Lake Analytics avant de créer un pipeline avec une activité U-SQL Data Lake Analytics. Pour plus d’informations sur Azure Data Lake Analytics, consultez Prise en main d’Azure Data Lake Analytics.
Ajouter une activité U-SQL pour Azure Data Lake Analytics à un pipeline avec l’interface utilisateur
Pour utiliser une activité U-SQL pour Azure Data Lake Analytics dans un pipeline, procédez comme suit :
Recherchez Lac de données dans le volet Activités du pipeline, puis faites glisser une activité U-SQL vers le canevas du pipeline.
Sélectionnez la nouvelle activité U-SQL sur le canevas si elle n’est pas déjà sélectionnée.
Sélectionnez l’onglet Compte ADLA pour sélectionner ou créer un nouveau service lié Azure Data Lake Analytics qui sera utilisé pour exécuter l’activité U-SQL.
Sélectionnez l’onglet Script pour sélectionner ou créer un service lié de stockage, ainsi qu’un chemin d’accès dans l’emplacement de stockage, qui hébergera le script.
Service lié Azure Data Lake Analytics
Vous créez un service lié Azure Data Lake Analytics pour lier un service de calcul Azure Data Lake Analytics à un espace de travail Azure Data Factory ou Synapse Analytics. L’activité U-SQL Analytique Data Lake dans le pipeline fait référence à ce service lié.
Le tableau suivant décrit les propriétés génériques utilisées dans la définition JSON.
Propriété | Description | Obligatoire |
---|---|---|
type | La propriété de type doit être définie sur : AzureDataLakeAnalytics. | Oui |
accountName | Nom du compte du service Analytique Azure Data Lake. | Oui |
dataLakeAnalyticsUri | URI du service Analytique Azure Data Lake. | Non |
subscriptionId | ID d’abonnement Azure | Non |
resourceGroupName | Nom du groupe de ressources Azure | Non |
Authentification d’un principal du service
Le service lié d’Azure Data Lake Analytics a besoin d’une authentification de principal de service pour se connecter au service Azure Data Lake Analytics. Pour utiliser l’authentification d’un principal de service, inscrivez une entité d’application auprès de Microsoft Entra ID et accordez-lui l’accès aux services Data Lake Analytics et Data Lake Store qu’elle utilise. Consultez la page Authentification de service à service pour des instructions détaillées. Prenez note des valeurs suivantes, qui vous permettent de définir le service lié :
- ID de l'application
- Clé de l'application
- ID client
Accordez l’autorisation de principal de service à Azure Data Lake Analytics à l’aide de l’Assistant Ajout d’un utilisateur.
Utilisez l’authentification par principal de service en spécifiant les propriétés suivantes :
Propriété | Description | Obligatoire |
---|---|---|
servicePrincipalId | Spécifiez l’ID client de l’application. | Oui |
servicePrincipalKey | Spécifiez la clé de l’application. | Oui |
client | Spécifiez les informations de locataire (nom de domaine ou ID de locataire) dans lesquels se trouve votre application. Vous pouvez le récupérer en pointant la souris dans le coin supérieur droit du portail Azure. | Oui |
Exemple : Authentification d’un principal de service
{
"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"
}
}
}
Pour en savoir plus sur le service lié, consultez Services liés de calcul.
Activité U-SQL Data Lake Analytics
L'extrait de code JSON suivant définit un pipeline avec une activité U-SQL Data Lake Analytics. La définition d'activité comporte une référence au service lié Azure Data Lake Analytics créé précédemment. Pour exécuter un script U-SQL Data Lake Analytics, le service soumet le script que vous avez spécifié au service Data Lake Analytics, tandis que les entrées et les sorties nécessaires sont définies dans le script afin que Data Lake Analytics procède à l'extraction et à la sortie.
{
"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"
}
}
}
Le tableau suivant indique les noms et les descriptions des propriétés qui sont spécifiques à cette activité.
Propriété | Description | Obligatoire |
---|---|---|
name | Nom de l’activité dans le pipeline | Oui |
description | Texte décrivant l’activité. | Non |
type | Pour l’activité U-SQL Data Lake Analytics, le type d’activité est DataLakeAnalyticsU-SQL. | Oui |
linkedServiceName | Service lié à Azure Data Lake Analytics. Pour en savoir plus sur ce service lié, consultez l’article Services liés de calcul. | Oui |
scriptPath | Chemin d'accès au dossier qui contient le script SQL-U. Le nom de fichier respecte la casse. | Oui |
scriptLinkedService | Service lié qui lie Azure Data Lake Store ou Stockage Azure qui contient le script données | Oui |
degreeOfParallelism | Le nombre maximal de nœuds utilisés simultanément pour exécuter le travail. | Non |
priority | Détermine les travaux parmi tous ceux qui sont en file d'attente qui doivent être sélectionnés pour s'exécuter en premier. Plus le numéro est faible, plus la priorité est élevée. | Non |
parameters | Paramètres à transmettre au script U-SQL. | Non |
runtimeVersion | Version du runtime du moteur U-SQL à utiliser. | Non |
compilationMode | Mode de compilation d’U-SQL. Doit avoir l’une des valeurs suivantes : Semantic : Exécuter uniquement les vérifications sémantiques et les contrôles d’intégrité nécessaires. Full : Effectuer la compilation complète, y compris la vérification de la syntaxe, l’optimisation, la génération de code, etc. SingleBox : effectuer la compilation complète, avec le paramètre TargetType défini sur SingleBox. Si vous ne spécifiez pas de valeur pour cette propriété, le serveur détermine le mode de compilation optimal. |
Non |
Vous trouverez la définition du script dans la section SearchLogProcessing.txt.
Exemple de script 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);
Dans l’exemple de script ci-dessus, l’entrée et la sortie du script sont définies dans les paramètres @in et @out. Les valeurs des paramètres @in et @out dans le script U-SQL sont transmises dynamiquement par le service en utilisant la section « parameters ».
Vous pouvez aussi spécifier d’autres propriétés comme degreeOfParallelism et priority dans votre définition de pipeline pour les travaux qui s’exécutent au niveau du service Azure Data Lake Analytics.
Paramètres dynamiques
Dans l’exemple de définition de pipeline, des valeurs codées en dur sont affectées aux paramètres de sortie.
"parameters": {
"in": "/datalake/input/SearchLog.tsv",
"out": "/datalake/output/Result.tsv"
}
Il est possible d’utiliser des paramètres dynamiques à la place. Par exemple :
"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"
}
Dans ce cas, les fichiers d’entrée sont toujours récupérés à partir du dossier /datalake/input et les fichiers de sortie sont générés dans le dossier /datalake/output. Les noms de fichiers sont dynamiques en fonction de l’heure de début de la fenêtre lorsque le pipeline est déclenché.
Contenu connexe
Consultez les articles suivants qui expliquent comment transformer des données par d’autres moyens :