Delen via


Overzicht van Kusto Query Language (KQL)

Van toepassing op: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel-

Kusto Query Language (KQL) is een krachtig hulpmiddel om uw gegevens te verkennen en patronen te ontdekken, afwijkingen en uitbijters te identificeren, statistische modellering te maken en meer. KQL is een eenvoudige maar krachtige taal voor het opvragen van gestructureerde, semi-gestructureerde en ongestructureerde gegevens. De taal is expressief, gemakkelijk te lezen en te begrijpen van de queryintentie en geoptimaliseerd voor ontwerpervaringen. Kusto Query Language is optimaal voor het uitvoeren van query's op telemetrie, metrische gegevens en logboeken met uitgebreide ondersteuning voor tekstzoekopdrachten en parseren, operatoren van tijdreeksen en functies, analyse en aggregatie, georuimtelijke zoekopdrachten, vector-overeenkomsten en vele andere taalconstructies die de meest optimale taal bieden voor gegevensanalyse. De query maakt gebruik van schema-entiteiten die zijn ingedeeld in een hiërarchie die vergelijkbaar is met SQLs: databases, tabellen en kolommen.

Dit artikel bevat een uitleg van de querytaal en biedt praktische oefeningen om u op weg te helpen met het schrijven van query's. Als u toegang wilt krijgen tot de queryomgeving, gebruikt u de webgebruikersinterface van Azure Data Explorer. Zie Zelfstudie: Algemene operatorsvoor meer informatie over het gebruik van KQL.

Dit artikel bevat een uitleg van de querytaal en biedt praktische oefeningen om u op weg te helpen met het schrijven van query's. Gebruik de KQL-querysetom toegang te krijgen tot de queryomgeving. Zie Zelfstudie: Algemene operatorsvoor meer informatie over het gebruik van KQL.

Wat is een Kusto-query?

Een Kusto-query is een alleen-lezen aanvraag voor het verwerken van gegevens en het retourneren van resultaten. De aanvraag wordt vermeld in tekst zonder opmaak, met behulp van een gegevensstroommodel dat gemakkelijk te lezen, te ontwerpen en te automatiseren is. Kusto-query's worden gemaakt van een of meer query-instructies.

Wat is een query-instructie?

Er zijn drie soorten query-instructies:

Alle query-instructies worden gescheiden door een ; (puntkomma) en zijn alleen van invloed op de query die u bij de hand hebt.

Notitie

Zie Application Query-instructiesvoor meer informatie over toepassingsquery-instructies.

Het meest voorkomende type query-instructie is een tabellaire expressie instructie, wat betekent dat zowel de invoer als uitvoer bestaan uit tabellen of gegevenssets in tabelvorm. Tabellaire instructies bevatten nul of meer operators, die elk beginnen met een tabellaire invoer en een tabellaire uitvoer retourneren. Operators worden gesequentieerd door een | (pipe). Gegevensstromen, of worden doorgesluisd, van de ene operator naar de volgende. De gegevens worden bij elke stap gefilterd of gemanipuleerd en vervolgens ingevoerd in de volgende stap.

Het is net een trechter, waar u begint met een hele gegevenstabel. Telkens wanneer de gegevens door een andere operator worden doorgegeven, worden deze gefilterd, opnieuw gerangschikt of samengevat. Omdat de pijping van gegevens van de ene operator naar de andere opeenvolgend is, is de volgorde van de queryoperator belangrijk en kan dit van invloed zijn op zowel resultaten als prestaties. Aan het einde van de trechter blijft u over met een verfijnde uitvoer.

Laten we eens kijken naar een voorbeeldquery.

StormEvents 
| where StartTime between (datetime(2007-11-01) .. datetime(2007-12-01))
| where State == "FLORIDA"  
| count 
Tellen
28

Notitie

KQL is hoofdlettergevoelig voor alles: tabelnamen, tabelkolomnamen, operators, functies enzovoort.
Trefwoorden kunnen worden gebruikt als id's door ze tussen haakjes en aanhalingstekens te plaatsen ([' en '] of [" en "]). Bijvoorbeeld ['where']. Zie naamgevingsregels voor id's voor meer informatie

Deze query heeft één expressie-instructie in tabelvorm. De instructie begint met een verwijzing naar een tabel met de naam StormEvents en bevat verschillende operatoren, where en count, die elk worden gescheiden door een pijp. De gegevensrijen voor de brontabel worden gefilterd op de waarde van de kolom StartTime en vervolgens gefilterd op de waarde van de kolom State. Op de laatste regel retourneert de query een tabel met één kolom en één rij met het aantal resterende rijen.

Zie zelfstudie: Kusto-query's schrijvenvoor meer Kusto-query's.

Beheeropdrachten

In tegenstelling tot Kusto-query's zijn Management-opdrachten aanvragen voor Kusto om gegevens of metagegevens te verwerken of te wijzigen. Met de volgende beheeropdracht maakt u bijvoorbeeld een nieuwe Kusto-tabel met twee kolommen, Level en Text:

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

Beheeropdrachten hebben hun eigen syntaxis, die geen deel uitmaakt van de syntaxis van de Kusto-querytaal, hoewel de twee veel concepten delen. Met name beheeropdrachten onderscheiden zich van query's door het eerste teken in de tekst van de opdracht te hebben als het puntteken (.) (dat geen query kan starten). Dit onderscheid voorkomt allerlei soorten beveiligingsaanvallen, omdat het insluiten van beheeropdrachten in query's voorkomt.

Niet alle beheeropdrachten wijzigen gegevens of metagegevens. De grote klasse opdrachten die beginnen met .show, worden gebruikt om metagegevens of gegevens weer te geven. De opdracht .show tables retourneert bijvoorbeeld een lijst met alle tabellen in de huidige database.

Zie Overzicht van beheeropdrachtenvoor meer informatie over beheeropdrachten.

KQL in andere services

KQL wordt gebruikt door veel andere Microsoft-services. Raadpleeg de volgende koppelingen voor specifieke informatie over het gebruik van KQL in deze omgevingen: