Condividi tramite


Esercitazione: Informazioni sugli operatori comuni

Si applica a: ✅Microsoft Fabric✅Azure Esplora dati Azure MonitorMicrosoft Sentinel

Linguaggio di query Kusto (KQL) viene usato per scrivere query in Azure Esplora dati, Log Analytics di Monitoraggio di Azure, Azure Sentinel e altro ancora. Questa esercitazione è un'introduzione agli operatori KQL essenziali usati per accedere e analizzare i dati.

Per indicazioni più specifiche su come eseguire query sui log in Monitoraggio di Azure, vedere Introduzione alle query di log.

Nota

Le informazioni cercate non sono disponibili? Questo articolo è stato suddiviso di recente, come indicato di seguito:

Questa esercitazione illustra come:

Gli esempi in questa esercitazione usano la StormEvents tabella, disponibile pubblicamente nel cluster della Guida. Per esplorare con i propri dati, creare un cluster gratuito.

Gli esempi in questa esercitazione usano la StormEvents tabella, disponibile pubblicamente nei dati di esempio di Analisi meteo.

Prerequisiti

Per eseguire le query seguenti, è necessario un ambiente di query con accesso ai dati di esempio. È possibile usare uno dei seguenti elementi:

  • Un account Microsoft o un'identità utente di Microsoft Entra per accedere al cluster della Guida
  • Un account Microsoft o un'identità utente di Microsoft Entra
  • Un'area di lavoro infrastruttura con capacità abilitata per Microsoft Fabric

Conteggio righe

Iniziare usando l'operatore count per trovare il numero di record storm nella StormEvents tabella.

StormEvents 
| count

Output

Count
59066

Vedere un esempio di dati

Per ottenere un'idea dei dati, usare l'operatore take per visualizzare un campione di record. Questo operatore restituisce un numero specificato di righe arbitrarie dalla tabella, che può essere utile per visualizzare in anteprima la struttura e il contenuto dei dati generali.

StormEvents 
| take 5

La tabella seguente mostra solo 5 delle 22 colonne restituite. Per visualizzare l'output completo, eseguire la query.

StartTime EndTime EpisodeId EventId Provincia EventType ...
2007-09-20T21:57:00Z 2007-09-20T22:05:00Z 11078 60913 FLORIDA Tornado ...
2007-12-20T07:50:00Z 2007-12-20T07:53:00Z 12554 68796 MISSISSIPPI Vento di tempesta ...
2007-12-30T16:00:00Z 2007-12-30T16:05:00Z 11749 64588 GEORGIA Vento di tempesta ...
2007-09-29T08:11:00Z 2007-09-29T08:11:00Z 11091 61032 SUD ATLANTICO Tromba marina ...
2007-09-18T20:00:00Z 2007-09-19T18:00:00Z 11074 60904 FLORIDA Pioggia intensa ...

Selezionare un subset di colonne

Usare l'operatore di progetto per semplificare la visualizzazione e selezionare un subset specifico di colonne. L'uso project di è spesso più efficiente e più facile da leggere rispetto alla visualizzazione di tutte le colonne.

StormEvents
| take 5
| project State, EventType, DamageProperty

Output

Provincia EventType DamageProperty
SUD ATLANTICO Tromba marina 0
FLORIDA Pioggia intensa 0
FLORIDA Tornado 6200000
GEORGIA Vento di tempesta 2000
MISSISSIPPI Vento di tempesta 20000

Elencare valori univoci

Sembra che ci siano più tipi di tempeste in base ai risultati della query precedente. Usare l'operatore distinct per elencare tutti i tipi storm univoci.

StormEvents 
| distinct EventType

Nella tabella sono presenti 46 tipi di tempeste. Ecco un esempio di 10 di essi.

EventType
Vento di tempesta
Grandine
Piena improvvisa
Siccità
Clima invernale
Tempesta invernale
Raffiche di neve
Vento forte
Brina/Ghiaccio
Alluvione
...

Filtra per condizione

L'operatore where filtra le righe di dati in base a determinati criteri.

La query seguente cerca gli eventi storm in uno specifico State di un oggetto specifico EventType.

StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| project StartTime, EndTime, State, EventType, DamageProperty

Esistono 146 eventi che soddisfano queste condizioni. Ecco un campione di 5 di loro.

StartTime EndTime Provincia EventType DamageProperty
2007-01-13T08:45:00Z 2007-01-13T10:30:00Z TEXAS Alluvione 0
2007-01-13T09:30:00Z 2007-01-13T21:00:00Z TEXAS Alluvione 0
2007-01-13T09:30:00Z 2007-01-13T21:00:00Z TEXAS Alluvione 0
2007-01-15T22:00:00Z 2007-01-16T22:00:00Z TEXAS Alluvione 20000
2007-03-12T02:30:00Z 2007-03-12T06:45:00Z TEXAS Alluvione 0
... ... ... ... ...

Ordinare i risultati

Per visualizzare le inondazioni superiori in Texas che hanno causato il maggior danno, usare l'operatore di ordinamento per disporre le righe in ordine decrescente in base alla DamageProperty colonna. L'ordinamento predefinito è decrescente. Per ordinare in ordine crescente, specificare asc.

StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| sort by DamageProperty
| project StartTime, EndTime, State, EventType, DamageProperty

Output

StartTime EndTime Provincia EventType DamageProperty
2007-08-18T21:30:00Z 2007-08-19T23:00:00Z TEXAS Alluvione 5000000
2007-06-27T00:00:00Z 2007-06-27T12:00:00Z TEXAS Alluvione 1200000
2007-06-28T18:00:00Z 2007-06-28T23:00:00Z TEXAS Alluvione 1000000
2007-06-27T00:00:00Z 2007-06-27T08:00:00Z TEXAS Alluvione 750000
2007-06-26T20:00:00Z 2007-06-26T23:00:00Z TEXAS Alluvione 750000
... ... ... ... ...

Ottenere le prime n righe

L'operatore top restituisce le prime n righe ordinate in base alla colonna specificata.

La query seguente restituisce le cinque inondazioni in Texas che hanno causato la proprietà più danneggiata.

StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| top 5 by DamageProperty
| project StartTime, EndTime, State, EventType, DamageProperty

Output

StartTime EndTime Provincia EventType DamageProperty
2007-08-18T21:30:00Z 2007-08-19T23:00:00Z TEXAS Alluvione 5000000
2007-06-27T00:00:00Z 2007-06-27T12:00:00Z TEXAS Alluvione 1200000
2007-06-28T18:00:00Z 2007-06-28T23:00:00Z TEXAS Alluvione 1000000
2007-06-27T00:00:00Z 2007-06-27T08:00:00Z TEXAS Alluvione 750000
2007-06-26T20:00:00Z 2007-06-26T23:00:00Z TEXAS Alluvione 750000

Nota

L'ordine degli operatori è importante. Se si inserisce top prima where , si otterranno risultati diversi. Ciò è dovuto al fatto che i dati vengono trasformati da ogni operatore in ordine. Per altre informazioni, vedere istruzioni di espressioni tabulari.

Creare colonne calcolate

Gli operatori di progetto ed estensione possono creare colonne calcolate.

Utilizzare project per specificare solo le colonne da visualizzare e utilizzare extend per accodare la colonna calcolata alla fine della tabella.

La query seguente crea una colonna calcolata Duration con la differenza tra e EndTimeStartTime . Poiché si vogliono visualizzare solo alcune colonne selezionate, l'uso project è la scelta migliore in questo caso.

StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| top 5 by DamageProperty desc
| project StartTime, EndTime, Duration = EndTime - StartTime, DamageProperty

Output

StartTime EndTime Durata 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

Se si esamina la colonna calcolata Duration , si può notare che l'alluvione che ha causato il maggior danno è stata anche la più lunga alluvione.

Utilizzare extend per visualizzare la colonna calcolata Duration insieme a tutte le altre colonne. La Duration colonna viene aggiunta come ultima colonna.

StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| top 5 by DamageProperty desc
| extend Duration = EndTime - StartTime

Output

StartTime EndTime ... Durata
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

Eseguire il mapping dei valori da un set a un altro

Il mapping statico è una tecnica utile per modificare la presentazione dei risultati. In KQL, un modo per eseguire il mapping statico consiste nell'usare un dizionario dinamico e le funzioni di accesso per eseguire il mapping dei valori da un set a un altro.

let sourceMapping = dynamic(
  {
    "Emergency Manager" : "Public",
    "Utility Company" : "Private"
  });
StormEvents
| where Source == "Emergency Manager" or Source == "Utility Company"
| project EventId, Source, FriendlyName = sourceMapping[Source]

Output

EventId Origine FriendlyName
68796 Responsabile della gestione emergenze Pubblico
... ... ...
72609 Società di utilità Privata
... ... ...

Passaggio successivo

Ora che si ha familiarità con le nozioni di base per la scrittura di query Kusto, passare all'esercitazione successiva e imparare a usare le funzioni di aggregazione per ottenere informazioni più approfondite sui dati.