Débogage de code C# défini par l’utilisateur pour des travaux U-SQL ayant échoué
Important
Azure Data Lake Analytics mis hors service le 29 février 2024. Découvrez-en plus avec cette annonce.
Pour l’analytique des données, votre organization peut utiliser Azure Synapse Analytics ou Microsoft Fabric.
U-SQL fournit un modèle d’extensibilité à l’aide de C#. Dans les scripts U-SQL, il est facile d’appeler des fonctions C# et d’effectuer des fonctions analytiques que le langage déclaratif de type SQL ne prend pas en charge. Pour en savoir plus sur l’extensibilité U-SQL, consultez le Guide de programmabilité U-SQL.
Dans la pratique, n’importe quel code peut nécessiter un débogage, mais il est difficile de déboguer un travail distribué avec du code personnalisé sur le cloud avec des fichiers journaux limités. Azure Data Lake Tools pour Visual Studio fournit une fonctionnalité appelée Débogage d’échec du vertex qui facilite le débogage des défaillances se produisant dans votre code personnalisé. En cas d’échec d’une tâche U-SQL, le service conserve l’état d’échec, et l’outil permet de télécharger l’environnement de défaillance du cloud sur l’ordinateur local en vue de l’opération de débogage. Le téléchargement local capture l’environnement cloud en entier, y compris les données d’entrée et le code utilisateur.
La vidéo suivante montre la fonctionnalité Débogage d'échec du vertex dans Azure Data Lake Tools pour Visual Studio.
Important
Visual Studio a besoin des deux mises à jour suivantes pour utiliser cette fonctionnalité : Microsoft Visual C++ 2015 Redistributable Update 3 et Universal C Runtime pour Windows.
Télécharger le vertex ayant échoué sur l’ordinateur local
Lorsque vous ouvrez un travail ayant échoué dans Azure Data Lake Tools pour Visual Studio, vous voyez une barre d’alerte jaune avec des messages d’erreur détaillés sous l’onglet d’erreur.
Sélectionnez Télécharger pour télécharger toutes les ressources et flux d’entrée requis. Si le téléchargement ne se termine pas, sélectionnez Réessayer.
Sélectionnez Ouvrir une fois le téléchargement terminé pour générer un environnement de débogage local. Une nouvelle solution de débogage va s’ouvrir. Si vous avez une solution existante ouverte dans Visual Studio, veillez à l’enregistrer et à la fermer avant d’entamer le débogage.
Configurer l’environnement de débogage
Notes
Avant de déboguer, vérifiez que vous avez activé Exceptions Common Language Runtime dans la fenêtre Paramètres d'exception (Ctrl+Alt+E).
Dans le nouveau instance Visual Studio lancé, vous pouvez trouver ou non le code source C# défini par l’utilisateur :
Le code source est inclus dans la solution de débogage
Il existe deux cas pour lesquels le code source C# est capturé :
Le code utilisateur est défini dans le fichier code-behind (généralement nommé
Script.usql.cs
dans un projet U-SQL).Le code utilisateur est défini dans un projet de bibliothèque de classes C# pour l’application U-SQL, et inscrit en tant qu’assembly dans les informations de débogage.
Si le code source est importé dans la solution, vous pouvez vous servir des outils de débogage de Visual Studio (espion, variables, etc.) pour résoudre le problème :
Appuyez sur F5 pour démarrer le débogage. Le code s’exécute jusqu’à ce qu’il soit arrêté par une exception.
Ouvrez le fichier de code source et définissez des points d’arrêt, puis appuyez sur F5 pour déboguer le code pas à pas.
Le code source n’est pas inclus dans la solution de débogage
Si le code utilisateur n’est pas inclus dans le fichier code-behind ou si vous n’avez pas inscrit l’assembly avec les informations de débogage, le code source n’est pas inclus automatiquement dans la solution de débogage. Dans ce cas, vous avez besoin d’étapes supplémentaires pour ajouter votre code source :
Cliquez avec le bouton droit sur Solution « VertexDebug » > Ajouter > Projet existant... pour rechercher le code source de l’assembly et ajouter le projet à la solution de débogage.
Récupérez le chemin du dossier du projet pour le projet FailedVertexDebugHost.
Cliquez avec le bouton droit sur le projet du code source de l’assembly ajouté > Propriétés, sélectionnez l’onglet Générer à gauche, puis collez le chemin copié finissant par \bin\debug en tant que Sortie > Chemin de sortie. Le chemin de sortie final ressemble à
<DataLakeTemp path>\fd91dd21-776e-4729-a78b-81ad85a4fba6\loiu0t1y.mfo\FailedVertexDebug\FailedVertexDebugHost\bin\Debug\
.
Après la définition de ces paramètres, démarrez le débogage avec F5 et les points d’arrêt. Vous pouvez également vous servir des outils de débogage de Visual Studio (espion, variables, etc.) pour résoudre le problème.
Notes
Régénérez le projet de code source d’assembly chaque fois vous modifiez le code, afin de générer des fichiers .pdb à jour.
Renvoyer le travail
Après le débogage, si le projet se termine correctement, la fenêtre de sortie affiche le message suivant :
The Program 'LocalVertexHost.exe' has exited with code 0 (0x0).
Pour soumettre à nouveau la tâche ayant échoué :
Pour les tâches avec les solutions code-behind, copiez le code C# dans le fichier source code-behind (généralement
Script.usql.cs
).Pour les tâches avec les assemblys, cliquez avec le bouton droit sur le projet du code source assembly dans la solution de débogage et inscrivez les assemblys .dll mis à jour à votre catalogue Azure Data Lake.
Soumettez à nouveau la tâche U-SQL.
Étapes suivantes
- Guide de programmabilité U-SQL
- Développer des opérateurs U-SQL définis par l’utilisateur pour des travaux Azure Data Lake Analytics
- Tester et déboguer des travaux U-SQL à l’aide d’une exécution locale et du Kit de développement logiciel (SDK) Azure Data Lake U-SQL
- Guide pratique pour résoudre les problèmes liés à une tâche périodique inhabituelle