Vue d’ensemble du langage de requête Kusto (KQL)
S’applique à : ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Kusto Query Language (KQL) 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, etc. KQL est un langage simple et puissant pour interroger des données structurées, semi-structurées et non structurées. Le langage est expressif, facile à lire et à comprendre l’intention de requête et optimisé pour les expériences de création. Le langage de requête Kusto est optimal pour interroger les données de télémétrie, les métriques et les journaux avec prise en charge approfondie de la recherche et de l’analyse de texte, des opérateurs et fonctions de série chronologique, d’analyse et d’agrégation, géospatiales, recherches de similarité vectorielle et de nombreuses autres constructions de langage qui fournissent le langage le plus optimal pour l’analyse des données. La requête utilise des entités de schéma organisées dans une hiérarchie similaire à SQLs : bases de données, tables et colonnes.
Cet article fournit une explication du langage de requête et propose des exercices pratiques pour vous aider à écrire des requêtes. Pour accéder à l’environnement de requête, utilisez l’interface utilisateur web Azure Data Explorer. Pour savoir comment utiliser KQL, consultez Tutoriel : Découvrir les opérateurs courants.
Cet article fournit une explication du langage de requête et propose des exercices pratiques pour vous aider à écrire des requêtes. Pour accéder à l’environnement de requête, utilisez l’ensemble de requêtes KQL . Pour savoir comment utiliser KQL, consultez Tutoriel : Découvrir les opérateurs courants.
Une requête Kusto est une requête en lecture seule pour traiter les données et retourner des résultats. La demande est indiquée en texte brut, à l’aide d’un modèle de flux de données facile à lire, créer et automatiser. Les requêtes Kusto sont effectuées sur une ou plusieurs instructions de requête.
Il existe trois types d’instructions de requête utilisateur:
Toutes les instructions de requête sont séparées par un ;
(point-virgule) et affectent uniquement 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 d’instruction de requête le plus courant est une expression tabulaire instruction, ce qui signifie que son entrée et sa sortie se composent de tables ou de jeux de données tabulaires. Les instructions tabulaires contiennent zéro ou plusieurs opérateurs , chacun commençant par une entrée tabulaire et retourne une sortie tabulaire. Les opérateurs sont séquencés par un |
(canal). Les flux de données, ou sont redirigés, d’un opérateur à l’autre. Les données sont filtrées ou manipulées à chaque étape, puis transmises à l’étape suivante.
C’est comme un entonnoir, où vous commencez 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 résumées. Étant donné que le piping des informations d’un opérateur à un autre est séquentiel, l’ordre de l’opérateur de requête est important et peut affecter à la fois les résultats et les performances. À la fin de l’entonnoir, vous êtes laissé avec une sortie affinée.
Examinons un exemple de requête.
Exécuter le de requête
StormEvents
| where StartTime between (datetime(2007-11-01) .. datetime(2007-12-01))
| where State == "FLORIDA"
| count
Compter |
---|
28 |
Notes
KQL respecte la casse pour tout : noms de tables, noms de colonnes de table, opérateurs, fonctions, et ainsi de suite.
Les mots clés peuvent être utilisés comme identificateurs en les plaçant entre crochets et guillemets (['
et ']
ou ["
et "]
). Par exemple, ['where']
. Pour plus d’informations, consultez règles de nommage d’identificateur
Cette requête a une instruction d’expression tabulaire unique. L’instruction commence par une référence à une table appelée StormEvents et contient plusieurs opérateurs, where
et count
, chacun séparé par un canal. Les lignes de données de la table source sont filtrées par la valeur de la colonne StartTime
Pour essayer d’autres requêtes Kusto, consultez Tutoriel : Écrire des requêtes Kusto.
Contrairement aux requêtes Kusto, les commandes de gestion sont des demandes adressées à Kusto pour traiter ou modifier des données ou des métadonnées. Par exemple, la commande de gestion suivante crée une table Kusto avec deux colonnes, Level
et Text
:
.create table Logs (Level:string, Text:string)
Les commandes de gestion ont leur propre syntaxe, qui ne fait pas partie de la syntaxe du langage de requête Kusto, bien que les deux partagent de nombreux concepts. En particulier, les commandes de gestion se distinguent des requêtes en ayant le premier caractère dans le texte de la commande comme point (.
) caractère (qui ne peut pas démarrer une requête).
Cette distinction empêche de nombreux types d’attaques de sécurité, tout simplement parce qu’elle empêche l’incorporation de commandes de gestion dans des requêtes.
Toutes les commandes de gestion ne modifient pas les données ou les métadonnées. La grande classe de commandes commençant par .show
, est utilisée pour afficher des métadonnées ou des données. Par exemple, la commande .show tables
retourne une liste de toutes les tables de la base de données active.
Pour plus d’informations sur les commandes de gestion, consultez Vue d’ensemble des commandes de gestion.
KQL est utilisé par de nombreux autres services Microsoft. Pour plus d’informations sur l’utilisation de KQL dans ces environnements, reportez-vous aux liens suivants :
- requêtes de journal dans Azure Monitor
- langage de requête Kusto dans Microsoft Sentinel
- Comprendre le langage de requête Azure Resource Graph
- chasser de manière proactive les menaces avec la chasse avancée dans Microsoft 365 Defender
- requêtes CMPivot
- Didacticiel : Découvrir les opérateurs courants
- didacticiel : Utiliser des fonctions d’agrégation
- de référence rapide KQL
- SQL au langage de requête Kusto
- meilleures pratiques de requête