Tutoriel : Découvrir les opérateurs courants
S’applique à : ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
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 présente les opérateurs KQL essentiels utilisés pour accéder à vos données et les analyser.
Pour obtenir des conseils plus spécifiques sur la façon d’interroger les journaux d’activité dans Azure Monitor, consultez Prise en main des requêtes de journal.
Remarque
Vous ne trouvez pas ce que vous recherchez ? Cet article a été récemment divisé, 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 publiquement disponible dans le cluster d’aide. Pour explorer vos propres données, créez votre propre cluster gratuit.
Les exemples de ce didacticiel utilisent la StormEvents
table, qui est publiquement disponible dans les exemples de données d’analyse météorologique.
Prérequis
Pour exécuter les requêtes suivantes, vous avez besoin d’un environnement de requête avec accès aux exemples de données. Vous pouvez utiliser l'un des éléments suivants :
- Un compte Microsoft ou une identité d’utilisateur Microsoft Entra
- Un espace de travail Fabric avec une capacité avec Microsoft Fabric
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 obtenir 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 généraux des données.
StormEvents
| take 5
Le tableau suivant affiche uniquement 5 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 | 12,554 | 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 la vue et sélectionner un sous-ensemble spécifique de colonnes. L’utilisation project
est souvent plus efficace et plus facile à lire que d’afficher toutes les colonnes.
StormEvents
| take 5
| project State, EventType, DamageProperty
Sortie
État | 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 storm uniques.
StormEvents
| distinct EventType
Il existe 46 types de tempêtes dans le tableau. Voici un échantillon 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 |
Lourdes chutes de neige |
Vent fort |
Gel |
Crue |
... |
Filtrer par condition
L’opérateur où filtre les lignes de données en fonction de certains critères.
La requête suivante recherche les événements storm dans un élément spécifique State
d’un objet spécifique EventType
.
StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| project StartTime, EndTime, State, EventType, DamageProperty
Il existe 146 événements qui 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 supérieures au Texas qui ont causé le plus de dommages, 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 par 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 premières lignes
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 du Texas qui ont causé la propriété la plus endommagée.
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 |
Remarque
L’ordre des opérateurs est important. Si vous les placez top
ici where
, 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 en savoir plus, consultez les 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.
Permet project
de spécifier uniquement les colonnes que vous souhaitez afficher et d’ajouter extend
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 le et EndTime
.StartTime
Étant donné que nous voulons uniquement afficher 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 | Durée | 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 dommages était également la plus longue inondation.
Permet extend
d’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 | ... | Durée |
---|---|---|---|
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
EventId | Source | FriendlyName |
---|---|---|
68796 | Gestionnaire des urgences | Publique |
... | ... | ... |
72609 | Société de l’utilitaire | Privée |
... | ... | ... |
Étape suivante
Maintenant que vous êtes familiarisé avec les bases de l’écriture de requêtes Kusto, passez au tutoriel suivant et découvrez comment utiliser des fonctions d’agrégation pour obtenir plus d’informations sur vos données.