Partager via


Kusto CLI

Kusto.Cli est un utilitaire de ligne de commande permettant d’envoyer des requêtes et des commandes de contrôle sur un cluster Kusto. Il peut s’exécuter dans l’un des différents modes :

  • Mode REPL : l’utilisateur entre des requêtes et des commandes, et l’outil affiche les résultats, puis attend la requête/commande utilisateur suivante. (« REPL » signifie « read/eval/print/loop ».)

  • Mode d’exécution : l’utilisateur entre une ou plusieurs requêtes et commandes pour s’exécuter en tant qu’arguments de ligne de commande. Les arguments sont exécutés automatiquement dans la séquence et leurs résultats sont générés dans la console. Si vous le souhaitez, une fois que toutes les requêtes et commandes d’entrée ont été exécutées, l’outil passe en mode REPL.

  • Mode script : similaire au mode d’exécution, mais avec les requêtes et les commandes spécifiées dans un fichier (le « script ») au lieu d’arguments de ligne de commande.

Kusto.Cli est principalement fourni pour automatiser des tâches sur un service Kusto qui nécessite normalement l’écriture de code. Par exemple, un programme C# ou un script PowerShell.

Obtenir l’outil

Kusto.Cli fait partie du package Microsoft.Azure.Kusto.Tools NuGet que vous pouvez télécharger pour .NET. Après avoir téléchargé le package, extrayez le dossier du tools package dans le dossier cible. Aucune installation supplémentaire n’est requise, car elle est xcopy-installable.

Exécutez l’outil

Kusto.Cli nécessite au moins un argument de ligne de commande à exécuter. En règle générale, cet argument est la chaîne de connexion au service Kusto auquel l’outil doit se connecter. Pour plus d’informations, consultez les chaîne de connexion Kusto. Si vous exécutez l’outil sans arguments de ligne de commande, avec un ensemble inconnu d’arguments ou avec le /help commutateur, un message d’aide s’affiche sur la console.

Par exemple, utilisez la commande suivante pour exécuter Kusto.Cli. La commande se connecte au help service Kusto et définit le contexte de la base de données sur la Samples base de données :

Kusto.Cli.exe "https://help.kusto.windows.net/Samples;Fed=true"

Remarque

Utilisez des guillemets doubles autour de la chaîne de connexion pour empêcher les applications shell telles que PowerShell de mal interpréter le point-virgule (;) et les caractères similaires.

Arguments de ligne de commande

(Pour obtenir une liste exhaustive d’arguments de ligne de commande, exécutez : Kusto.Cli.exe -help.)

Kusto.Cli.exeConnectionString [Commutateurs]

ConnectionString

  • Le chaîne de connexion Kusto qui contient toutes les informations de connexion Kusto. La valeur par défaut est net.tcp://localhost/NetDefaultDB.

-execute:QueryOrCommand

  • Si elle est spécifiée, exécute Kusto.Cli en mode d’exécution et la requête ou la commande spécifiée est exécutée. Ce commutateur peut se répéter et les requêtes/commandes sont exécutées séquentiellement dans l’ordre d’apparence. Ce commutateur ne peut pas être utilisé avec -script ou -scriptml.

-keepRunning:EnableKeepRunning

  • S’il est spécifié, comme l’un true ou l’autre, falseil active ou désactive le mode REPL une fois que toutes ou -execute valeurs -script ont été traitées.

-script:ScriptFile

  • Si elle est spécifiée, exécute Kusto.Cli en mode script. Le fichier de script spécifié est chargé et les requêtes ou commandes qu’il contient sont exécutées séquentiellement. Les nouvelles lignes sont utilisées pour délimiter les requêtes/commandes, sauf lorsque les lignes se terminent par une & ou && combinaison, comme expliqué ci-dessous. Ce commutateur ne peut pas être utilisé avec -execute.

-scriptml:ScriptFile

  • Si elle est spécifiée, exécute Kusto.Cli en mode script. Le fichier de script spécifié est chargé et les requêtes ou commandes qu’il contient sont exécutées séquentiellement. Le fichier de script entier est considéré comme une seule requête ou commande (en ignorant les considérations relatives au mode d’entrée de ligne ou au mode d’entrée de bloc).) Ce commutateur ne peut pas être utilisé avec -execute.

-scriptQuitOnError:QuitOnFirstScriptError

  • Si cette option est activée, Kusto.Cli quitte si une commande ou une requête dans un script génère une erreur. Si cette option est désactivée, l’exécution du script continue malgré les erreurs. Par défaut, ce commutateur est activé.

-echo:EnableEchoMode

  • S’il est spécifié, comme l’un ou l’autre true , falseil active ou désactive le mode écho. Lorsque le mode écho est activé, chaque requête ou commande est répétée dans la sortie.

-transcript:TranscriptFile

  • Si elle est spécifiée, écrit la sortie du programme dans TranscriptFile.

-logToConsole:EnableLogToConsole

  • S’il est spécifié, comme true l’un ou falsel’autre, il active ou désactive l’affichage de la sortie du programme sur la console.

-lineMode:EnableLineMode

  • Détermine la façon dont les nouvelles lignes sont traitées lors de la saisie de requêtes ou de commandes à partir de la console ou à partir de scripts. Par défaut (ou si défini explicitement sur true), l’outil utilise le « mode d’entrée de ligne ». Si la valeur est définie false, les scripts sont lus en « mode d’entrée de bloc ». Consultez ci-dessous pour obtenir une explication de ces deux modes.

Exemple

Kusto.Cli.exe "https://help.kusto.windows.net/Samples;Fed=true" -script:"c:\mycommands.txt"

Remarque

Il ne doit pas y avoir d’espace entre le signe deux-points et la valeur de l’argument

Directives

Kusto.Cli exécute plusieurs directives dans l’outil au lieu de les envoyer au service pour traitement.

Directive Description
?
#h
#help
Obtenir un message d’aide court
q
#quit
#exit
Quitter l’outil
#a
#abort
Quitter l’outil abortivement
#clip Les résultats de la requête ou de la commande suivante seront copiés dans le Presse-papiers
#cls Effacer l’écran de la console
#connect[ConnectionString] Se connecte à un autre service Kusto (si ConnectionString est omis, celui en cours s’affiche)
#crp [Name [= Value]] Définit la valeur d’une propriété de requête cliente, ou l’affiche simplement, ou affiche toutes les valeurs
#crp (-list | -doc) [Préfixe] Répertorie les propriétés de demande du client, par préfixe ou tout
#dbcontext [DatabaseName] Remplace la base de données « context » utilisée par les requêtes et les commandes par DatabaseName. S’il est omis, le contexte actuel s’affiche
keSMS Envoie le texte spécifié à un processus Kusto.Explorer en cours d’exécution
#loopCompter SMS Exécute le texte plusieurs fois
#qp [Name [= Value]] Définit la valeur d’un paramètre de requête, ou l’affiche simplement, ou affiche toutes les valeurs. Les guillemets simples/doubles au début/fin seront rognés
#saveFichier Les résultats de la requête ou de la commande suivante sont enregistrés dans le fichier CSV indiqué
#scriptFichier Exécute le script indiqué
#scriptmlFichier Exécute le script multiligne indiqué

Mode d’entrée de ligne et mode d’entrée de bloc

Par défaut, Kusto.Cli s’exécute en mode d’entrée de ligne. Chaque caractère de ligne est interprété comme un délimiteur entre les requêtes/commandes, et la ligne est immédiatement envoyée pour l’exécution.

Dans ce mode, vous pouvez interrompre une longue requête ou une commande en plusieurs lignes. Le & caractère en tant que dernier caractère d’une ligne, avant la nouvelle ligne, entraîne la lecture de la ligne suivante par Kusto.Cli. Le && caractère en tant que dernier caractère d’une ligne, avant la nouvelle ligne, entraîne l’ignorer kusto.Cli et continuer à lire la ligne suivante.

Kusto.Cli prend également en charge l’exécution en mode d’entrée de bloc en spécifiant -lineMode:false dans la ligne de commande ou en exécutant la directive #blockmode. Dans ce mode, Kusto.Cli se comporte de la même façon que Kusto.Explorer et Kusto.WebExplorer, dans ces lignes sont lues en tant que « blocs », avec chaque bloc constitué d’une requête ou d’une seule commande, et les blocs sont délimités par une ou plusieurs lignes vides entre elles.

Remarque

L’utilisation du mode d’entrée de bloc est vivement recommandée lorsque les requêtes/commandes sont lues à partir d’un fichier de script (-script).

Commentaires

Kusto.Cli interprète une // chaîne qui commence une nouvelle ligne en tant que ligne de commentaire. Elle ignore le reste de la ligne et continue de lire la ligne suivante.

Options d’outil uniquement

Commandes Effet Actuellement
#timeon|#timeoff option timingenable/disable : afficher les demandes de temps nécessaire VRAI
#tableon|#tableoff option enable/disable tableView: Mettre en forme les jeux de résultats sous forme de tables VRAI
#marson|#marsoff option marsViewenable/disable : afficher les jeux de résultats second à dernier FAUX
#resultson|#resultsoff option outputResultsSetenable/disable : afficher les jeux de résultats VRAI
#prettyon|#prettyoff option enable/disable prettyErrors: Nettoyer les erreurs VRAI
#markdownon|#markdownoff option enable/disable markdownView: Mettre en forme les tables en tant que MarkDown FAUX
#progressiveon|#progressiveoff option enable/disable progressiveView: Demander et afficher des résultats progressifs FAUX
#linemode|#blockmode option enable/disable lineMode: mode d’entrée à ligne unique VRAI
Commandes Résultat Par défaut
#cridon|#cridoff (enable|disable option crid: afficher le ClientRequestId avant d’envoyer la requête) FAUX
#csvheaderson|#csvheadersoff (enable|disable option csvHeaders: Inclure des en-têtes dans la sortie CSV) VRAI
#focuson|#focusoff (activer|désactiver l’option focus: Supprimer tout le peluche supplémentaire et se concentrer sur les éléments appropriés) FAUX
#linemode|#blockmode (enable|disable option lineMode: mode d’entrée à ligne unique) VRAI
#markdownon|#markdownoff (enable|disable option markdownView: Mettre en forme les tables en tant que MarkDown) FAUX
#marson|#marsoff (enable|disable option marsView: Afficher les jeux de résultats second à dernier) FAUX
#prettyon|#prettyoff (enable|disable option prettyErrors: Nettoyer les erreurs) VRAI
#querystreamingon|#querystreamingoff (enable|disable option queryStreaming: Utiliser le point de terminaison queryStreaming (équipe Kusto uniquement)) FAUX
#resultson|#resultsoff (enable|disable option outputResultsSet: Afficher les jeux de résultats) VRAI
#tableon|#tableoff (enable|disable option tableView: Mettre en forme les jeux de résultats sous forme de tables) VRAI
#timeon|#timeoff (activer|désactiver l’option timing: afficher le temps nécessaire aux demandes) VRAI
#typeon|#typeoff (enable|disable option typeView: afficher le type de chaque colonne en mode tableau. Force Streaming=true) VRAI
#v2protocolon|#v2protocoloff (enable|disable option v2protocol: Utiliser le protocole de requête v2, et non v1) VRAI

Utiliser Kusto.Cli pour exporter les résultats au format CSV

Kusto.Cli a une commande spéciale côté client, #save qui exporte les résultats de la requête suivante vers un fichier local au format CSV. Par exemple, la ligne suivante exporte 10 enregistrements hors de la StormEvents table dans le help.kusto.windows.net cluster, Samples base de données :

Kusto.Cli.exe @help/Samples -execute:"#save c:\temp\test.log" -execute:"StormEvents | take 10"

Utiliser Kusto.Cli pour contrôler une instance en cours d’exécution de Kusto.Explorer

Vous pouvez demander à Kusto.Cli de communiquer avec l’instance « primaire » de Kusto.Explorer s’exécutant sur l’ordinateur et d’envoyer des requêtes. Ce mécanisme peut être utile pour les programmes qui souhaitent exécuter un certain nombre de requêtes, mais ne souhaitent pas démarrer le processus Kusto.Explorer à plusieurs reprises. Dans l’exemple suivant, Kusto.Cli est utilisé pour exécuter une requête sur le cluster d’aide :

#connect cluster('help').database('Samples')

#ke StormEvents | count

La syntaxe est simple : #ke, suivie de l’espace blanc et de la requête à exécuter. La requête est ensuite envoyée à l’instance principale de Kusto.Explorer, le cas échéant, avec le cluster/la base de données actuel défini dans Kusto.Cli.