Vue d’ensemble du langage de requête Kusto (KQL)

Le langage de requête Kusto est un outil puissant pour explorer vos données et découvrir des modèles, identifier les anomalies et les valeurs hors norme, créer une modélisation statistique, et bien plus encore. La requête utilise des entités de schéma organisées dans une hiérarchie similaire à celle de SQL : bases de données, tables et colonnes.

Qu’est-ce qu’une requête Kusto ?

Une requête Kusto est une requête en lecture seule de traitement de données et de retour de résultats. La demande est indiquée en texte brut, à l’aide d’un modèle de données qui est facile à lire, à créer et à automatiser. Les requêtes Kusto sont constituées d’une ou de plusieurs instructions de requête.

Qu’est-ce qu’une instruction de requête ?

Il existe trois types d' instructions de requêteutilisateur :

Toutes les instructions de requête sont séparées par un ; point-virgule (point-virgule) et n’affectent que la requête à la main.

Notes

Pour plus d’informations sur les instructions de requête d’application, consultez instructions de requête d’application.

Le type le plus courant d’instruction de requête est une instruction d’expression tabulaire, ce qui signifie que son entrée et sa sortie sont des tables ou des jeux de données tabulaires. Les instructions tabulaires peuvent contenir des opérateurs, chacun d’entre eux commençant par une entrée tabulaire et retournant une sortie tabulaire. Les opérateurs sont séquencés par une barre verticale (|). Les données circulent, ou sont canalisées, d’un opérateur au suivant. Les données sont filtrées ou manipulées à chaque étape, puis elles alimentent l’étape suivante.

C’est comme un entonnoir, qui commence avec une table de données entière. Chaque fois que les données passent par un autre opérateur, elles sont filtrées, réorganisées ou synthétisées. Étant donné que la tuyauterie des informations d’un opérateur vers un autre est séquentielle, l’ordre de l’opérateur de requête est important et peut affecter les résultats et les performances. À la fin de l’entonnoir, il vous reste une sortie affinée.

Prenons un exemple de requête.

StormEvents 
| where StartTime between (datetime(2007-11-01) .. datetime(2007-12-01))
| where State == "FLORIDA"  
| count 

Notes

KQL respecte la casse pour tout : les noms de tables, les noms de colonnes de table, les opérateurs, les fonctions, etc.

Cette requête comporte une seule instruction d’expression tabulaire. L’instruction commence par une référence à une table appelée StormEvents et contient plusieurs opérateurs, et count , chacun étant séparé par un canal. Les lignes de données de la table source sont filtrées par la valeur de la colonne StartTime, puis filtrées par la valeur de la colonne State. Sur la dernière ligne, la requête retourne une table avec une seule colonne et une seule ligne contenant le nombre de lignes restantes.

Exécutez cette requête pour voir le résultat :

Count
28

Pour essayer d’autres requêtes Kusto, consultez Didacticiel : utiliser des requêtes Kusto.

Commandes de contrôle

Contrairement aux requêtes Kusto, les commandes de contrôle sont des demandes adressées à Kusto pour traiter ou modifier des données ou des métadonnées. Par exemple, la commande de contrôle suivante crée une table Kusto avec deux colonnes, Level et Text :

.create table Logs (Level:string, Text:string)

Les commandes de contrôle ont leur propre syntaxe (qui ne fait pas partie de la syntaxe du langage de requête Kusto, même si tous deux partagent un grand nombre de concepts). Les commandes de contrôle se distinguent des requêtes par le fait que le premier caractère du texte d’une commande est un point (.) (ce qui n’est pas possible pour une requête). Cette différence permet d’éviter de nombreux types d’attaques de sécurité, car elle empêche l’incorporation de commandes de contrôle à l’intérieur des requêtes.

Toutes les commandes de contrôle ne modifient pas les données ou les métadonnées. Les nombreuses commandes commençant par .show sont utilisées pour afficher des métadonnées ou des données. Par exemple, la commande .show tables retourne la liste de toutes les tables de la base de données active.

Pour plus d’informations sur les commandes de contrôle, consultez vue d’ensemble de la gestion (commandes de contrôle).

Étapes suivantes