Panoramica del Linguaggio di query Kusto (KQL)

Il linguaggio di query Kusto (KQL) è uno strumento potente per esplorare i dati e individuare i modelli, identificare anomalie e outlier, creare modellazione statistica 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. Linguaggio di query Kusto è ottimale per eseguire query su dati di telemetria, metriche e log con supporto approfondito per la ricerca e l'analisi del testo, gli operatori e le funzioni di serie temporali, l'analisi e l'aggregazione, le ricerche geospaziali, la somiglianza vettoriale 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 Azure Esplora dati. 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 l'elaborazione di dati e la restituzione dei risultati. La richiesta viene formulata in testo semplice, usando un modello di flusso di dati facile da leggere, scrivere e automatizzare. Le query Kusto vengono eseguite da una o più istruzioni di query.

Che cos'è un'istruzione di query?

Esistono tre tipi di istruzioni di query utente:

Tutte le istruzioni di query sono separate da un ; punto e virgola e influiscono solo sulla query a portata di mano.

Nota

Per informazioni sulle istruzioni di query dell'applicazione, vedere Istruzioni di query dell'applicazione.

Il tipo più comune di istruzione di query è un'istruzione di espressione tabulare, il che significa che l'input e 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 una | (pipe). Flussi di dati o pipe, da un operatore all'altro. I dati vengono filtrati o modificati a ogni passaggio e quindi inseriti nel passaggio seguente.

È come un grafico a imbuto, dove si inizia con un'intera tabella dati. Ogni volta che i dati passano attraverso un altro operatore, vengono filtrati, riorganizzati o riepilogati. 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 del grafico a imbuto, rimane un output affinato.

Verrà ora esaminata una query di esempio.

StormEvents 
| where StartTime between (datetime(2007-11-01) .. datetime(2007-12-01))
| where State == "FLORIDA"  
| count 
Conteggio
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.

Questa query include un'unica 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 quindi filtrate in base al valore della colonna StartTime e quindi in base al valore della colonna State. Nell'ultima riga, la query restituisce una tabella con una singola colonna e una singola riga contenente il conteggio delle righe rimanenti.

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 e LevelText:

.create table Logs (Level:string, Text:string)

I comandi di gestione hanno la propria sintassi, che non fa parte della sintassi 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 di 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. Un'ampia classe di comandi che iniziano con .show viene usata per visualizzare i metadati o i 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: