Partager via


Tutoriel : Découvrir les opérateurs courants

S’applique à : ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft 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 :

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 pour vous 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 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 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.