Dela via


Syntaxkonventioner för referensdokumentation

Växla tjänster genom att använda listrutan Version. Läs mer om navigering.
Gäller för: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel

Den här artikeln beskriver de syntaxkonventioner som följs i referensdokumentationen kusto query language (KQL) och hanteringskommandon .

Ett bra ställe att börja lära sig Kusto Query Language är att förstå den övergripande frågestrukturen. Det första du märker när du tittar på en Kusto-fråga är användningen av pipe-symbolen (|). Strukturen för en Kusto-fråga börjar med att hämta dina data från en datakälla och sedan skicka data över en pipeline, och varje steg ger viss bearbetningsnivå och skickar sedan data till nästa steg. I slutet av pipelinen får du ditt slutliga resultat. I själva verket är det här vår pipeline:

Get Data | Filter | Summarize | Sort | Select

Det här konceptet med att skicka data ned i pipelinen ger en intuitiv struktur, eftersom det är enkelt att skapa en mental bild av dina data i varje steg.

För att illustrera detta ska vi ta en titt på följande fråga, som tittar på Inloggningsloggar för Microsoft Entra. När du läser igenom varje rad kan du se nyckelorden som anger vad som händer med data. Vi har inkluderat relevant steg i pipelinen som en kommentar på varje rad.

Anmärkning

Du kan lägga till kommentarer till valfri rad i en fråga genom att föregå dem med ett dubbelt snedstreck (//).

SigninLogs                              // Get data
| evaluate bag_unpack(LocationDetails)  // Ignore this line for now; we'll come back to it at the end.
| where RiskLevelDuringSignIn == 'none' // Filter
   and TimeGenerated >= ago(7d)         // Filter
| summarize Count = count() by city     // Summarize
| sort by Count desc                    // Sort
| take 5                                // Select

Eftersom utdata från varje steg fungerar som indata för följande steg kan stegens ordning fastställa frågans resultat och påverka dess prestanda. Det är viktigt att du beställer stegen efter vad du vill få ut av frågan.

Tips/Råd

  • En bra tumregel är att filtrera dina data tidigt, så att du bara skickar relevanta data i pipelinen. Detta ökar prestandan avsevärt och säkerställer att du inte oavsiktligt inkluderar irrelevanta data i sammanfattningsstegen.
  • Den här artikeln pekar på några andra metodtips att tänka på. En mer fullständig lista finns i avsnittet om metodtips för frågor.

Syntaxkonventioner

Convention Description
Block Strängliteraler som ska anges exakt som visas.
Kursiv Parametrar som ska anges ett värde vid användning av funktionen eller kommandot.
[ ] Anger att det omslutna objektet är valfritt.
( ) Anger att minst ett av de omslutna objekten krävs.
| (rör) Används inom hakparenteser eller runda hakparenteser för att ange att du kan ange ett av objekten som avgränsas med pipe-tecknet. I det här formuläret motsvarar röret den logiska OR-operatorn. När du är i ett block (|) är röret en del av KQL-frågesyntaxen.
[, ...] Anger att föregående parameter kan upprepas flera gånger, avgränsat med kommatecken.
; Frågeuttrycksavgränsare.

Examples

Skalär funktion

Det här exemplet visar syntaxen och ett exempel på användning av hashfunktionen, följt av en förklaring av hur varje syntaxkomponent översätts till exempelanvändningen.

Syntax

hash( källa [,mod])

Exempel på användning

hash("World")
  • Namnet på funktionen , hashoch den inledande parentesen anges exakt som det visas.
  • "World" skickas som ett argument för den obligatoriska källparametern.
  • Inget argument skickas för mod-parametern , vilket är valfritt enligt hakparenteserna.
  • Den avslutande parentesen anges exakt som det visas.

Tabelloperator

Det här exemplet visar syntaxen och ett exempel på användning av sorteringsoperatorn, följt av en förklaring av hur varje syntaxkomponent översätts till exempelanvändningen.

Syntax

T| sort bykolumn [asc | desc] [nulls first | nulls last] [, ...]

Exempel på användning

StormEvents
| sort by State asc, StartTime desc
  • Tabellen StormEvents skickas som ett argument för den obligatoriska T-parametern .
  • | sort by anges exakt som det visas. I det här fallet är pipe-tecknet en del av syntaxen för tabelluttrycksuttryck , vilket representeras av blocktexten. Mer information finns i Vad är en frågesats.
  • Kolumnen State skickas som ett argument för den obligatoriska kolumnparametern med den valfria asc flaggan.
  • Efter ett kommatecken skickas en annan uppsättning argument: kolumnen StartTime med den valfria desc flaggan. Syntaxen [, ...] anger att fler argumentuppsättningar kan skickas men inte krävs.

Arbeta med valfria parametrar

Om du vill ange ett argument för en valfri parameter som kommer efter en annan valfri parameter måste du ange ett argument för föregående parameter. Det här kravet beror på att argument måste följa den ordning som anges i syntaxen. Om du inte har ett specifikt värde att skicka för parametern använder du ett tomt värde av samma typ.

Exempel på sekventiella valfria parametrar

Överväg syntaxen för plugin-programmet http_request:

evaluate http_request ( Uri [,RequestHeaders [,alternativ]] )

RequestHeaders och Alternativ är valfria parametrar av typen dynamisk. Om du vill ange ett argument för parametern Alternativ måste du också ange ett argument för parametern RequestHeaders . I följande exempel visas hur du anger ett tomt värde för den första valfria parametern , RequestHeaders, för att kunna ange ett värde för den andra valfria parametern , Alternativ.

evaluate http_request ( "https://contoso.com/", dynamic({}), dynamic({ EmployeeName: Nicole }) )