Översikt över Kusto Query Language (KQL)
Kusto-frågespråk (KQL) är ett kraftfullt verktyg för att utforska data och identifiera mönster, identifiera avvikelser och extremvärden, skapa statistisk modellering med mera. KQL är ett enkelt men kraftfullt språk för att fråga strukturerade, halvstrukturerade och ostrukturerade data. Språket är uttrycksfullt, lättläst och förstår frågesyftet och optimerat för redigering. Kusto-frågespråk är optimalt för att fråga telemetri, mått och loggar med djupt stöd för textsökning och parsning, tidsserieoperatorer och funktioner, analys och aggregering, geospatiala sökningar, vektorlikhetssökningar och många andra språkkonstruktioner som ger det mest optimala språket för dataanalys. Frågan använder schemaentiteter som är ordnade i en hierarki som liknar SQL:er: databaser, tabeller och kolumner.
Den här artikeln innehåller en förklaring av frågespråket och innehåller praktiska övningar för att komma igång med att skriva frågor. Om du vill komma åt frågemiljön använder du webbgränssnittet för Azure Data Explorer. Information om hur du använder KQL finns i Självstudie: Lär dig vanliga operatorer.
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 oformaterad text med hjälp av en dataflödesmodell som är lätt att läsa, redigera och automatisera. Kusto-frågor består av en eller flera frågeinstruktioner.
Vad är en frågeuttryck?
Det finns tre typer av användarfrågeuttryck:
Alla frågeinstruktioner avgränsas med ett ;
(semikolon) och påverkar bara den aktuella frågan.
Anteckning
Information om programfrågeuttryck finns i Programfrågeuttryck.
Den vanligaste typen av frågeuttryck är ett tabelluttryck, vilket innebär att både indata och utdata består av tabeller eller tabelldatauppsättningar. Tabellinstruktioner innehåller noll eller flera operatorer, som vart och ett börjar med tabellindata och returnerar tabellutdata. Operatorer sekvenseras med ett |
(rör). Data flödar eller skickas i en pipe från en operator till nästa. Data filtreras eller manipuleras i varje steg och matas sedan vidare till 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 det är sekventiellt att skicka information från en operator till en annan är frågeoperatorordningen viktig och kan påverka både resultat och prestanda. I slutet av tratten har du förfinade 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
Antal |
---|
28 |
Anteckning
KQL är skiftlägeskänsligt för allt – tabellnamn, tabellkolumnnamn, operatorer, funktioner och så vidare.
Den här frågan har en enda tabelluttrycksinstrukator. -instruktionen börjar med en referens till en tabell med namnet StormEvents och innehåller flera operatorer, where
och , som var och count
en avgränsas med ett rör. 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 enskild rad som innehåller antalet återstående rader.
Om du vill prova några fler Kusto-frågor kan du läsa Självstudie: Skriva Kusto-frågor.
Kommandon för hantering
Till skillnad från Kusto-frågor är hanteringskommandon begäranden till Kusto om att bearbeta eller ändra data eller metadata. Följande hanteringskommando skapar till exempel en ny Kusto-tabell med två kolumner och Level
Text
:
.create table Logs (Level:string, Text:string)
Hanteringskommandon har sin egen syntax, som inte ingår i Kusto-frågespråk syntax, även om de två har många begrepp. I synnerhet skiljer sig hanteringskommandon från frågor genom att det första tecknet i kommandots text är punkttecknet () (.
som inte kan starta en fråga).
Den här skillnaden förhindrar många typer av säkerhetsattacker, bara för att den förhindrar inbäddning av hanteringskommandon i frågor.
Alla hanteringskommandon ändrar inte 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 hanteringskommandon finns i Översikt över hanteringskommandon.
KQL i andra tjänster
KQL används av många andra Microsoft-tjänster. Specifik information om användningen av KQL i dessa miljöer finns på följande länkar:
- Loggfrågor i Azure Monitor
- Kusto-frågespråk i Microsoft Sentinel
- Förstå frågespråket för Azure Resource Graph
- Proaktiv jakt efter hot med avancerad jakt i Microsoft 365 Defender
- CMPivot-frågor
Relaterat innehåll
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för