Déboguer Langage de requête Kusto python inline à l’aide de Visual Studio Code
S’applique à : ✅Microsoft Fabric✅Azure Data Explorer
Vous pouvez incorporer du code Python dans Langage de requête Kusto requêtes à l’aide du plug-in Python(). Le runtime du plug-in est hébergé dans un bac à sable, un environnement Python isolé et sécurisé. La fonctionnalité de plug-in Python() étend Langage de requête Kusto fonctionnalités natives avec l’énorme archive des packages Python OSS. Cette extension vous permet d’exécuter des algorithmes avancés (machine learning, intelligence artificielle, statistiques et série chronologique) dans le cadre de la requête.
Langage de requête Kusto outils ne sont pas pratiques pour le développement et le débogage d’algorithmes Python. Par conséquent, développez l’algorithme sur votre environnement de développement intégré à Python favori, tel que Jupyter, PyCharm, Visual Studio ou Visual Studio Code. Une fois l’algorithme terminé, copiez et collez dans KQL. Pour améliorer et simplifier ce flux de travail, kusto Explorer ou les clients d’interface utilisateur web peuvent s’intégrer à Visual Studio Code pour la création et le débogage du code Python inline KQL.
Remarque
Ce workflow peut uniquement être utilisé pour déboguer des tables d’entrée relativement petites (jusqu’à quelques Mo). C’est pourquoi vous devrez peut-être limiter l’entrée pour le débogage. Si vous avez besoin de traiter une table volumineuse, limitez-la au débogage à l’aide de | take
, | sample
ou where rand() < 0.x
.
Prérequis
- Un abonnement Azure. Créez un compte Azure gratuit.
- Un cluster et une base de données Azure Data Explorer. Créez un cluster et une base de données.
- Installez la distribution Anaconda Python. Dans Options avancées, sélectionnez Ajouter Anaconda à ma variable d’environnement PATH.
- Installez Visual Studio Code.
- Installez l’extension Python pour Visual Studio Code.
- Activez le plug-in Python. Pour plus d’informations, consultez Gérer les extensions de langage dans votre cluster Azure Data Explorer.
- Un espace de travail avec une capacité compatible Microsoft Fabric.
- Une base de données. Créez une base de données KQL.
- Installez la distribution Anaconda Python. Dans Options avancées, sélectionnez Ajouter Anaconda à ma variable d’environnement PATH.
- Installez Visual Studio Code.
- Installez l’extension Python pour Visual Studio Code.
- Activez le plug-in Python.
Activer le débogage Python dans Visual Studio Code
Dans votre application cliente, préfixez une requête contenant du code Python inline avec
set query_python_debug;
Exécutez la requête.
- Kusto Explorer : Visual Studio Code est lancé automatiquement avec le script debug_python.py .
- Interface utilisateur web Kusto :
- Téléchargez et enregistrez debug_python.py, df.txt et kargs.txt. Dans la fenêtre, sélectionnez Autoriser. Enregistrez les fichiers dans le répertoire sélectionné.
- Cliquez avec le bouton droit sur debug_python.py et ouvrez avec Visual Studio Code. Le script debug_python.py contient le code Python inline, issu de la requête KQL, préfixé par le code de modèle pour initialiser le dataframe d’entrée à partir de df.txt et le dictionnaire de paramètres à partir de kargs.txt.
Dans Visual Studio Code, lancez le débogueur Visual Studio Code : Exécuter>démarrer le débogage (F5), sélectionnez Configuration python. Le débogueur lance et définit automatiquement un point d’arrêt pour déboguer le code inline.
Dans votre application cliente, préfixez une requête contenant du code Python inline avec
set query_python_debug;
Exécutez la requête.
- Kusto Explorer : Visual Studio Code est lancé automatiquement avec le script debug_python.py .
- Ensemble de requêtes KQL :
- Téléchargez et enregistrez debug_python.py, df.txt et kargs.txt. Dans la fenêtre, sélectionnez Autoriser. Enregistrez les fichiers dans le répertoire sélectionné.
- Cliquez avec le bouton droit sur debug_python.py et ouvrez avec Visual Studio Code. Le script debug_python.py contient le code Python inline, issu de la requête KQL, préfixé par le code de modèle pour initialiser le dataframe d’entrée à partir de df.txt et le dictionnaire de paramètres à partir de kargs.txt.
Dans Visual Studio Code, lancez le débogueur Visual Studio Code : Exécuter>démarrer le débogage (F5), sélectionnez Configuration python. Le débogueur lance et définit automatiquement un point d’arrêt pour déboguer le code inline.
Comment fonctionne le débogage Python inline dans Visual Studio Code ?
- La requête est analysée et exécutée sur le serveur jusqu’à ce que la clause
| evaluate python()
nécessaire soit atteinte. - Le bac à sable Python est appelé, mais au lieu d’exécuter le code, il sérialise la table d’entrée, le dictionnaire de paramètres et le code, puis les renvoie au client.
- Ces trois objets sont enregistrés dans trois fichiers : df.txt, kargs.txt et debug_python.py dans le répertoire sélectionné (interface utilisateur web) ou dans le répertoire %TEMP% du client (Kusto Explorer).
- Visual Studio Code est lancé, préchargé avec le fichier debug_python.py qui contient un code de préfixe pour initialiser df et kargs à partir de leurs fichiers respectifs, suivi du script Python incorporé dans la requête KQL.
Exemple de requête
Exécutez la requête KQL suivante dans votre application cliente :
range x from 1 to 4 step 1 | evaluate python(typeof(*, x4:int), 'exp = kargs["exp"]\n' 'result = df\n' 'result["x4"] = df["x"].pow(exp)\n' , bag_pack('exp', 4))
Consultez le tableau de résultats :
x x4 1 1 2 16 3 81 4 256 Exécutez la même requête KQL dans votre application cliente en utilisant
set query_python_debug;
:set query_python_debug; range x from 1 to 4 step 1 | evaluate python(typeof(*, x4:int), 'exp = kargs["exp"]\n' 'result = df\n' 'result["x4"] = df["x"].pow(exp)\n' , bag_pack('exp', 4))
Visual Studio Code est lancé :
Visual Studio Code débogue et imprime le dataframe « result » dans la console de débogage :
Remarque
Il peut y avoir des différences entre l’image du bac à sable Python et votre installation locale. Vérifiez l’image du bac à sable pour obtenir des packages spécifiques en interrogeant le plug-in.
Remarque
En cas d’erreurs lors du lancement de la session de débogage Visual Studio Code, essayez de définir le profil de terminal par défaut à l’invite de commandes :
- Appuyez sur Ctrl + Maj + P pour ouvrir la palette de commandes.
- Recherchez « Terminal : Sélectionner un profil par défaut » et sélectionnez « Invite de commandes »