Overzicht van Kusto Query Language (KQL)
Kusto-querytaal (KQL) is een krachtig hulpprogramma om uw gegevens te verkennen en patronen te ontdekken, afwijkingen en uitbijters te identificeren, statistische modellen te maken en meer. De query maakt gebruik van schema-entiteiten die zijn georganiseerd in een hiërarchie die vergelijkbaar is met SQLs: databases, tabellen en kolommen.
Wat is een Kusto-query?
Een Kusto-query is een alleen-lezenaanvraag voor het verwerken van gegevens en het retourneren van resultaten. De aanvraag wordt weergegeven in tekst zonder opmaak, met behulp van een gegevensstroommodel dat gemakkelijk te lezen, te ontwerpen en te automatiseren is. Kusto-query's bestaan uit een of meer queryinstructies.
Wat is een query-instructie?
Er zijn drie soorten query-instructies voor gebruikers:
Alle queryinstructies worden gescheiden door een ;
(puntkomma) en zijn alleen van invloed op de query die wordt uitgevoerd.
Het meest voorkomende type query-instructie is een tabellaire expressie-instructie, wat betekent dat zowel de invoer als de uitvoer bestaan uit tabellen of gegevenssets in tabelvorm. Tabelinstructies bevatten nul of meer operatoren, die elk beginnen met een tabellaire invoer en een uitvoer in tabelvorm retourneren. Operators worden gesequentieerd door een |
(pipe). Gegevens stromen, of worden doorgesluisd, van de ene operator naar de volgende. De gegevens worden bij elke stap gefilterd of gemanipuleerd en vervolgens in de volgende stap ingevoerd.
Het is een soort trechter, waarbij u begint met een hele gegevenstabel. Telkens wanneer de gegevens via een andere operator worden doorgegeven, worden deze gefilterd, opnieuw gerangschikt of samengevat. Omdat het doorsniëren 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 de resultaten als de prestaties. Aan het einde van de trechter houdt u een verfijnde uitvoer over.
Laten we eens kijken naar een voorbeeldquery.
StormEvents
| where StartTime between (datetime(2007-11-01) .. datetime(2007-12-01))
| where State == "FLORIDA"
| count
Count |
---|
28 |
Notitie
KQL is hoofdlettergevoelig voor alles: tabelnamen, tabelkolomnamen, operators, functies, enzovoort.
Deze query heeft één tabellaire expressie-instructie. De instructie begint met een verwijzing naar een tabel met de naam StormEvents en bevat verschillende operatoren, where
en count
, elk gescheiden door een pipe. 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 schrijven voor meer Kusto-query's.
Besturingsopdrachten
In tegenstelling tot Kusto-query's zijn besturingsopdrachten aanvragen aan Kusto om gegevens of metagegevens te verwerken of te wijzigen. Zo wordt met de volgende besturingsopdracht een nieuwe Kusto-tabel gemaakt met twee kolommen, Level
en Text
:
.create table Logs (Level:string, Text:string)
Besturingsopdrachten hebben hun eigen syntaxis, die geen deel uitmaakt van de syntaxis van de Kusto-querytaal, hoewel de twee talloze concepten delen. Besturingsopdrachten worden met name onderscheiden van query's omdat het eerste teken in de tekst van de opdracht een punt (.
) moet zijn (waarmee een query niet kan worden gestart).
Dit onderscheid voorkomt veel beveiligingsaanvallen, omdat hierdoor het insluiten van besturingsopdrachten binnen query's wordt voorkomen.
Gegevens of metagegevens worden niet door alle besturingsopdrachten gewijzigd. De grote klasse opdrachten die beginnen met .show
, worden gebruikt voor het weergeven van metagegevens of gegevens. De opdracht .show tables
retourneert bijvoorbeeld een lijst met alle tabellen in de huidige database.
Zie Overzicht van beheer (besturingsopdrachten) voor meer informatie over besturingsopdrachten.