Översikt över Kusto Query Language (KQL)

Kusto Query Language är ett kraftfullt verktyg för att utforska dina data och identifiera mönster, identifiera avvikelser och avvikande värden, skapa statistisk modellering med mera. Frågan använder schemaentiteter som ordnas i en hierarki som liknar databaser, tabeller och kolumner i SQL.

Vad är en Kusto-fråga?

En Kusto-fråga är en skrivskyddad förfrågan om att bearbeta data och returnera resultat. Begäran anges i klartext med hjälp av en dataflödesmodell som är lätt att läsa, redigera och automatisera. Kusto-frågor består av ett eller flera frågeutdrag.

Vad är en frågesats?

Det finns tre typer av användarfrågeutdrag:

Alla frågeutdrag avgränsas med ; ett (semikolon) och påverkar endast den fråga som finns till hands.

Anteckning

Information om programfrågeutdrag finns i Programfrågeutdrag.

Den vanligaste typen av frågeuttryck är en tabelluttryckssats , vilket innebär att både dess indata och utdata består av tabeller eller tabelldatauppsättningar. Tabellutdrag innehåller noll eller flera operatorer, där var och en börjar med tabellindata och returnerar tabellutdata. Operatorer sekvenseras av en | (pipe). Dataflöden, eller piped, från en operator till nästa. Data filtreras eller ändras i varje steg och matas sedan in i följande steg.

Det är som en tratt, där du börjar med en hel datatabell. Varje gång data passerar genom en annan operator filtreras de, ordnas om eller sammanfattas. Eftersom piping av information från en operator till en annan är sekventiell är frågeoperatorns ordning viktig och kan påverka både resultat och prestanda. I slutet av tratten har du kvar en förfinad utdata.

Nu ska vi titta på en exempelfråga.

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

Anteckning

KQL är fallkänsligt för allt – tabellnamn, tabellkolumnnamn, operatorer, funktioner och så vidare.

Den här frågan har en enda tabelluttryckssats. Instruktionen börjar med en referens till en tabell med namnet StormEvents och innehåller flera operatorer, countoch , var och en avgränsad med en pipe. Dataraderna för källtabellen filtreras efter värdet för kolumnen StartTime och filtreras sedan efter värdet för kolumnen State. På den sista raden returnerar frågan en tabell med en enda kolumn och en enda rad som innehåller antalet återstående rader.

Kör den här frågan för att se resultatet:

Antal
28

Om du vill prova några fler Kusto-frågor kan du läsa Självstudie: Använda Kusto-frågor.

Kontrollkommandon

Till skillnad från Kusto-frågor är kontrollkommandon begäranden till Kusto för att bearbeta eller ändra data eller metadata. Till exempel skapar följande kontrollkommando en ny Kusto-tabell med två kolumner, Level och Text:

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

Kontrollkommandon har sin egen syntax, som inte ingår i syntaxen för Kusto-frågespråket, även om de två har många begrepp gemensamt. I synnerhet skiljer sig kontrollkommandon från frågor genom att det första tecknet i kommandotexten är punkttecknet (.) (som inte kan inleda en fråga). Den här skillnaden förhindrar många typer av säkerhetsangrepp eftersom inbäddning av kontrollkommandon förhindras inuti frågor.

Inte alla kontrollkommandon ändrar data eller metadata. Den stora kommandoklassen som börjar med .show används för att visa metadata eller data. Till exempel returnerar kommandot .show tables en lista över alla tabeller i den aktuella databasen.

Mer information om kontrollkommandon finns i Översikt över hantering (kontrollkommandon).

Nästa steg