Panoramica di Kusto Query Language (KQL)
Si applica a: ✅Microsoft Fabric✅Esplora dati di Azure✅Monitoraggio di Azure✅Microsoft Sentinel
Kusto Query Language (KQL) è uno strumento potente per esplorare i dati e individuare i modelli, identificare anomalie ed outlier, creare modelli statistici e altro ancora. KQL è un linguaggio semplice ma potente per eseguire query su dati strutturati, semistrutturati e non strutturati. Il linguaggio è espressivo, facile da leggere e comprendere la finalità della query e ottimizzato per le esperienze di creazione. Il linguaggio di query Kusto è ottimale per l'esecuzione di query su dati di telemetria, metriche e log con supporto avanzato per la ricerca e l'analisi del testo, gli operatori e le funzioni delle serie temporali, l'analisi e l'aggregazione, la geospaziale, le ricerche di somiglianza dei vettori e molti altri costrutti di linguaggio che forniscono il linguaggio più ottimale per l'analisi dei dati. La query usa entità dello schema organizzate in una gerarchia simile a SQLs: database, tabelle e colonne.
Questo articolo fornisce una spiegazione del linguaggio di query e offre esercizi pratici per iniziare a scrivere query. Per accedere all'ambiente di query, usare l'interfaccia utente Web di Esplora dati di Azure . Per informazioni su come usare KQL, vedere Esercitazione: Informazioni sugli operatori comuni.
Questo articolo fornisce una spiegazione del linguaggio di query e offre esercizi pratici per iniziare a scrivere query. Per accedere all'ambiente di query, usare il set di query KQL . Per informazioni su come usare KQL, vedere Esercitazione: Informazioni sugli operatori comuni.
Che cos'è una query Kusto?
Una query Kusto è una richiesta di sola lettura per elaborare i dati e restituire i risultati. La richiesta viene dichiarata in testo normale, usando un modello di flusso di dati facile da leggere, creare e automatizzare. Le query Kusto vengono eseguite con una o più istruzioni di query.
Che cos'è un'istruzione di query?
Esistono tre tipi di istruzioni di query utente:
- 'istruzione dell'espressione tabulare
- Istruzione let
- Un'istruzione set
Tutte le istruzioni di query sono separate da un ;
(punto e virgola) e influiscono solo sulla query.
Nota
Per informazioni sulle istruzioni di query dell'applicazione, vedere istruzioni di query dell'applicazione.
Il tipo più comune di istruzione query è un'espressione tabulare 'istruzione, il che significa che sia l'input che l'output sono costituiti da tabelle o set di dati tabulari. Le istruzioni tabulari contengono zero o più operatori , ognuno dei quali inizia con un input tabulare e restituisce un output tabulare. Gli operatori vengono sequenziati da un |
(pipe). I flussi di dati, o vengono inviati tramite pipe, da un operatore all'altro. I dati vengono filtrati o modificati in ogni passaggio e quindi inseriti nel passaggio seguente.
È come un imbuto, in cui si inizia con un'intera tabella di dati. Ogni volta che i dati passano attraverso un altro operatore, vengono filtrati, riorganizzato o riepilogato. Poiché il piping delle informazioni da un operatore a un altro è sequenziale, l'ordine dell'operatore di query è importante e può influire sui risultati e sulle prestazioni. Alla fine dell'imbuto, si rimane con un output raffinato.
Verrà ora esaminata una query di esempio.
StormEvents
| where StartTime between (datetime(2007-11-01) .. datetime(2007-12-01))
| where State == "FLORIDA"
| count
Contare |
---|
28 |
Nota
KQL fa distinzione tra maiuscole e minuscole per tutti gli elementi, ad esempio nomi di tabella, nomi di colonne di tabella, operatori, funzioni e così via.
Le parole chiave possono essere usate come identificatori racchiudendoli tra parentesi quadre e virgolette (['
e ']
o ["
e "]
). Ad esempio, ['where']
. Per altre informazioni, vedere regole di denominazione degli identificatori
Questa query include una singola istruzione di espressione tabulare. L'istruzione inizia con un riferimento a una tabella denominata StormEvents e contiene diversi operatori, where
e count
, ognuno separato da una pipe. Le righe di dati per la tabella di origine vengono filtrate in base al valore della colonna StartTime
Per provare altre query Kusto, vedere Esercitazione: Scrivere query Kusto.
Comandi di gestione
A differenza delle query Kusto, i comandi di gestione sono richieste a Kusto per elaborare o modificare dati o metadati. Ad esempio, il comando di gestione seguente crea una nuova tabella Kusto con due colonne, Level
e Text
:
.create table Logs (Level:string, Text:string)
I comandi di gestione hanno una sintassi specifica, che non fa parte della sintassi del linguaggio di query Kusto, anche se i due condividono molti concetti. In particolare, i comandi di gestione sono distinti dalle query con il primo carattere nel testo del comando come carattere punto (.
) (che non può avviare una query).
Questa distinzione impedisce molti tipi di attacchi alla sicurezza, semplicemente perché impedisce l'incorporamento dei comandi di gestione all'interno delle query.
Non tutti i comandi di gestione modificano i dati o i metadati. La classe di comandi di grandi dimensioni che inizia con .show
, viene usata per visualizzare metadati o dati. Ad esempio, il comando .show tables
restituisce un elenco di tutte le tabelle nel database corrente.
Per altre informazioni sui comandi di gestione, vedere panoramica dei comandi di gestione .
KQL in altri servizi
KQL viene usato da molti altri servizi Microsoft. Per informazioni specifiche sull'uso di KQL in questi ambienti, vedere i collegamenti seguenti:
- query di log in Monitoraggio di Azure
- linguaggio di query Kusto in Microsoft Sentinel
- Informazioni sul linguaggio di query di Azure Resource Graph
- ricerca proattiva di minacce con ricerca avanzata in Microsoft 365 Defender
- query CMPivot
Contenuto correlato
- Esercitazione su : Informazioni sugli operatori comuni
- Esercitazione: Usare le funzioni di aggregazione
- riferimento rapido KQL
- foglio informativo del linguaggio di query da SQL a Kusto
- procedure consigliate per query