Tutoriel : Apprendre les opérateurs courants
Langage de requête Kusto (KQL) est utilisé pour écrire des requêtes dans Azure Data Explorer, Azure Monitor Log Analytics, Azure Sentinel, etc. Ce tutoriel est une introduction aux opérateurs KQL essentiels utilisés pour accéder à vos données et les analyser.
Notes
Vous ne trouvez pas ce que vous recherchez ? Cet article a récemment été fractionné, comme suit :
- Découvrir les opérateurs courants (cet article)
- Utiliser des fonctions d’agrégation
- Joindre des données à partir de plusieurs tables
- Créer des visualisations géospatiales
Ce didacticiel vous montre comment effectuer les opérations suivantes :
Les exemples de ce didacticiel utilisent la StormEvents
table, qui est disponible publiquement dans le cluster d’aide. Pour explorer avec vos propres données, créez votre propre cluster gratuit.
Prérequis
- Un compte Microsoft ou une identité d’utilisateur Azure Active Directory pour se connecter au cluster d’aide
Compter les lignes
Commencez par utiliser l’opérateur count pour rechercher le nombre d’enregistrements storm dans la StormEvents
table.
StormEvents
| count
Sortie
Count |
---|
59066 |
Voir un exemple de données
Pour avoir une idée des données, utilisez l’opérateur take pour afficher un exemple d’enregistrements. Cet opérateur retourne un nombre spécifié de lignes arbitraires de la table, ce qui peut être utile pour afficher un aperçu de la structure et du contenu des données généraux.
StormEvents
| take 5
Le tableau suivant n’affiche que 6 des 22 colonnes retournées. Pour voir la sortie complète, exécutez la requête.
StartTime | EndTime | EpisodeId | EventId | État | Type d’événement | ... |
---|---|---|---|---|---|---|
2007-09-20T21:57:00Z | 2007-09-20T22:05:00Z | 11078 | 60913 | FLORIDE | Tornade | ... |
2007-12-20T07:50:00Z | 2007-12-20T07:53:00Z | 12554 | 68796 | MISSISSIPPI | Vent d’orage | ... |
2007-12-30T16:00:00Z | 2007-12-30T16:05:00Z | 11749 | 64588 | GEORGIE | Vent d’orage | ... |
2007-09-29T08:11:00Z | 2007-09-29T08:11:00Z | 11091 | 61032 | ATLANTIQUE SUD | Trombe marine | ... |
2007-09-18T20:00:00Z | 2007-09-19T18:00:00Z | 11074 | 60904 | FLORIDE | Fortes précipitations | ... |
Sélectionner un sous-ensemble de colonnes
Utilisez l’opérateur de projet pour simplifier l’affichage et sélectionner un sous-ensemble spécifique de colonnes. L’utilisation project
est souvent plus efficace et plus facile à lire que l’affichage de toutes les colonnes.
StormEvents
| take 5
| project State, EventType, DamageProperty
Sortie
State | Type d’événement | DamageProperty |
---|---|---|
ATLANTIQUE SUD | Trombe marine | 0 |
FLORIDE | Fortes précipitations | 0 |
FLORIDE | Tornade | 6200000 |
GEORGIE | Vent d’orage | 2000 |
MISSISSIPPI | Vent d’orage | 20000 |
Répertorier les valeurs uniques
Il semble qu’il existe plusieurs types de tempêtes en fonction des résultats de la requête précédente. Utilisez l’opérateur distinct pour répertorier tous les types de tempête uniques.
StormEvents
| distinct EventType
Il existe 46 types de tempêtes dans le tableau. Voici un exemple de 10 d’entre eux.
Type d’événement |
---|
Vent d’orage |
Grêle |
Crue soudaine |
Sécheresse |
Météo hivernale |
Tempête hivernale |
Neige lourde |
Vent fort |
Gel/gel |
Crue |
... |
Filtrer par condition
L’opérateur where filtre les lignes de données en fonction de certains critères.
La requête suivante recherche les événements storm dans un spécifique State
d’un spécifique EventType
.
StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| project StartTime, EndTime, State, EventType, DamageProperty
146 événements correspondent à ces conditions. Voici un échantillon de 5 d’entre eux.
StartTime | EndTime | État | Type d’événement | DamageProperty |
---|---|---|---|---|
2007-01-13T08:45:00Z | 2007-01-13T10:30:00Z | TEXAS | Crue | 0 |
2007-01-13T09:30:00Z | 2007-01-13T21:00:00Z | TEXAS | Crue | 0 |
2007-01-13T09:30:00Z | 2007-01-13T21:00:00Z | TEXAS | Crue | 0 |
2007-01-15T22:00:00Z | 2007-01-16T22:00:00Z | TEXAS | Crue | 20000 |
2007-03-12T02:30:00Z | 2007-03-12T06:45:00Z | TEXAS | Crue | 0 |
... | ... | ... | ... | ... |
Trier les résultats
Pour afficher les inondations les plus graves au Texas qui ont causé le plus de dégâts, utilisez l’opérateur de tri pour organiser les lignes dans l’ordre décroissant en fonction de la DamageProperty
colonne. L’ordre de tri par défaut est décroissant. Pour trier dans l’ordre croissant, spécifiez asc
.
StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| sort by DamageProperty
| project StartTime, EndTime, State, EventType, DamageProperty
Sortie
StartTime | EndTime | État | Type d’événement | DamageProperty |
---|---|---|---|---|
2007-08-18T21:30:00Z | 2007-08-19T23:00:00Z | TEXAS | Crue | 5000000 |
2007-06-27T00:00:00Z | 2007-06-27T12:00:00Z | TEXAS | Crue | 1200000 |
2007-06-28T18:00:00Z | 2007-06-28T23:00:00Z | TEXAS | Crue | 1000000 |
2007-06-27T00:00:00Z | 2007-06-27T08:00:00Z | TEXAS | Crue | 750000 |
2007-06-26T20:00:00Z | 2007-06-26T23:00:00Z | TEXAS | Crue | 750000 |
... | ... | ... | ... | ... |
Obtenir les n lignes du haut
L’opérateur supérieur retourne les n premières lignes triées par la colonne spécifiée.
La requête suivante retourne les cinq inondations au Texas qui ont causé le plus de dommages à la propriété.
StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| top 5 by DamageProperty
| project StartTime, EndTime, State, EventType, DamageProperty
Sortie
StartTime | EndTime | État | Type d’événement | DamageProperty |
---|---|---|---|---|
2007-08-18T21:30:00Z | 2007-08-19T23:00:00Z | TEXAS | Crue | 5000000 |
2007-06-27T00:00:00Z | 2007-06-27T12:00:00Z | TEXAS | Crue | 1200000 |
2007-06-28T18:00:00Z | 2007-06-28T23:00:00Z | TEXAS | Crue | 1000000 |
2007-06-27T00:00:00Z | 2007-06-27T08:00:00Z | TEXAS | Crue | 750000 |
2007-06-26T20:00:00Z | 2007-06-26T23:00:00Z | TEXAS | Crue | 750000 |
Notes
L’ordre des opérateurs est important. Si vous mettez top
avant where
ici, vous obtiendrez des résultats différents. Cela est dû au fait que les données sont transformées par chaque opérateur dans l’ordre. Pour plus d’informations, consultez instructions d’expression tabulaire.
Créer des colonnes calculées
Les opérateurs de projet et d’extension peuvent créer des colonnes calculées.
Utilisez project
pour spécifier uniquement les colonnes que vous souhaitez afficher et pour extend
ajouter la colonne calculée à la fin de la table.
La requête suivante crée une colonne calculée Duration
avec la différence entre et StartTime
EndTime
. Étant donné que nous ne voulons afficher que quelques colonnes sélectionnées, l’utilisation project
est le meilleur choix dans ce cas.
StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| top 5 by DamageProperty desc
| project StartTime, EndTime, Duration = EndTime - StartTime, DamageProperty
Sortie
StartTime | EndTime | Duration | DamageProperty |
---|---|---|---|
2007-08-18T21:30:00Z | 2007-08-19T23:00:00Z | 1.01:30:00 | 5000000 |
2007-06-27T00:00:00Z | 2007-06-27T12:00:00Z | 12:00:00 | 1200000 |
2007-06-28T18:00:00Z | 2007-06-28T23:00:00Z | 05:00:00 | 1000000 |
2007-06-27T00:00:00Z | 2007-06-27T08:00:00Z | 08:00:00 | 750000 |
2007-06-26T20:00:00Z | 2007-06-26T23:00:00Z | 03:00:00 | 750000 |
Si vous examinez la colonne calculée Duration
, vous remarquerez peut-être que l’inondation qui a causé le plus de dégâts a également été la plus longue inondation.
Utilisez extend
pour afficher la colonne calculée Duration
avec toutes les autres colonnes. La Duration
colonne est ajoutée en tant que dernière colonne.
StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| top 5 by DamageProperty desc
| extend Duration = EndTime - StartTime
Sortie
StartTime | EndTime | ... | Duration |
---|---|---|---|
2007-08-18T21:30:00Z | 2007-08-19T23:00:00Z | ... | 1.01:30:00 |
2007-06-27T00:00:00Z | 2007-06-27T12:00:00Z | ... | 12:00:00 |
2007-06-28T18:00:00Z | 2007-06-28T23:00:00Z | ... | 05:00:00 |
2007-06-27T00:00:00Z | 2007-06-27T08:00:00Z | ... | 08:00:00 |
2007-06-26T20:00:00Z | 2007-06-26T23:00:00Z | ... | 03:00:00 |
Mapper des valeurs d’un jeu à un autre
Le mappage statique est une technique utile pour modifier la présentation de vos résultats. Dans KQL, une façon d’effectuer un mappage statique consiste à utiliser un dictionnaire dynamique et des accesseurs pour mapper des valeurs d’un ensemble à un autre.
let sourceMapping = dynamic(
{
"Emergency Manager" : "Public",
"Utility Company" : "Private"
});
StormEvents
| where Source == "Emergency Manager" or Source == "Utility Company"
| project EventId, Source, FriendlyName = sourceMapping[Source]
Sortie
EpisodeId | Source | FriendlyName |
---|---|---|
68796 | Gestionnaire des urgences | Public |
... | ... | ... |
72609 | Société de services publics | Privées |
... | ... | ... |
Étapes suivantes
Maintenant que vous êtes familiarisé avec les éléments essentiels de l’écriture de requêtes Kusto, passez au tutoriel suivant et découvrez comment utiliser les fonctions d’agrégation pour obtenir des informations plus approfondies sur vos données.
Commentaires
Envoyer et afficher des commentaires pour