Esercitazione: Informazioni sugli operatori comuni
Si applica a: ✅Microsoft Fabric✅
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:
- Informazioni sugli operatori comuni (questo articolo)
- Usare le funzioni di aggregazione
- Unire dati da più tabelle
- Creare visualizzazioni geospaziali
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 Analisimeteo.
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 cinque 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 |
... |
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 |
... | ... | ... | ... | ... |
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 |
... | ... | ... | ... | ... |
Filtrare in base a data e intervallo di tempo
Usa l'operatore tra
La query seguente trova tutti gli eventi di tempesta tra il 1° agosto 2007 e il 30 agosto 2007, insieme ai relativi stati, tipi di evento, orari di inizio e fine. I risultati vengono quindi ordinati in ordine crescente in base all'ora di inizio.
StormEvents
| where StartTime between (datetime(2007-08-01 00:00:00) .. datetime(2007-08-30 23:59:59))
| project State, EventType, StartTime, EndTime
| sort by StartTime asc
Output
Provincia | Eventype | StartTime | EndTime |
---|---|---|---|
GEORGIA | Calore eccessivo | 2007-08-01 00:00:00 | 2007-08-27 23:59:00 |
TENNESSEE | Siccità | 2007-08-01 00:00:00 | 2007-08-31 23:59:00 |
TENNESSEE | Siccità | 2007-08-01 00:00:00 | 31-08-2007 23:59:00 |
CAROLINA DEL SUD | Siccità | 2007-08-01 00:00:00 | 2007-08-31 23:59:00 |
TENNESSEE | Siccità | 2007-08-01 00:00:00 | 2007-08-31 23:59:00 |
GEORGIA | Calore eccessivo | 2007-08-01 00:00:00 | 2007-08-27 23:59:00 |
TENNESSEE | Siccità | 2007-08-01 00:00:00 | 2007-08-31 23:59:00 |
MINNESOTA | Siccità | 2007-08-01 00:00:00 | 2007-08-31 23:59:00 |
WISCONSIN | Siccità | 2007-08-01 00:00:00 | 2007-08-31 23:59:00 |
GEORGIA | Calore eccessivo | 2007-08-01 00:00:00 | 2007-08-27 23:59:00 |
... | ... | ... | ... |
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 StartTime
EndTime
. 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.