Sdílet prostřednictvím


Konvence syntaxe pro referenční dokumentaci

Přepněte služby pomocí rozevíracího seznamu Verze . Přečtěte si další informace o navigaci.
Platí pro: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel

Tento článek popisuje konvence syntaxe sledované v referenční dokumentaci k dotazovacímu jazyku Kusto (KQL) a příkazů pro správu .

Dobrým místem, kde začít se učit dotazovací jazyk Kusto, je porozumět celkové struktuře dotazů. První věc, kterou si všimnete při pohledu na dotaz Kusto, je použití symbolu svislé roury (|). Struktura dotazu Kusto začíná získáváním dat ze zdroje dat a následným předáváním dat v kanálu a každý krok poskytuje určitou úroveň zpracování a pak předává data dalšímu kroku. Na konci kanálu získáte konečný výsledek. To je v podstatě náš kanál:

Get Data | Filter | Summarize | Sort | Select

Díky tomuto konceptu předávání dat kanálem je intuitivní struktura, protože v každém kroku můžete snadno vytvořit duševní obraz dat.

Abychom to mohli ilustrovat, podívejme se na následující dotaz, který se podívá na protokoly přihlášení Microsoft Entra. Při čtení jednotlivých řádků uvidíte klíčová slova, která označují, co se děje s daty. Do kanálu jsme zahrnuli příslušnou fázi jako komentář na každém řádku.

Poznámka:

Komentáře můžete do libovolného řádku dotazu přidat tak, že před ně přidáte dvojité lomítko (//).

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

Vzhledem k tomu, že výstup každého kroku slouží jako vstup pro následující krok, pořadí kroků může určit výsledky dotazu a ovlivnit jeho výkon. Je důležité, abyste postup naspořádal podle toho, co chcete z dotazu dostat.

Návod

  • Dobrým pravidlem je filtrování dat v rané fázi, takže předáváte jenom relevantní data do kanálu. Tím se výrazně zvýší výkon a zajistíte, že do kroků souhrnu omylem nezahrnete irelevantní data.
  • Tento článek popisuje některé další osvědčené postupy, které je potřeba mít na paměti. Podrobnější seznam najdete v osvědčených postupech pro dotazy.

Konvence syntaxe

Convention Description
Block Řetězcové literály, které se mají zadat přesně tak, jak je znázorněno.
Kurzíva Parametry, které mají být poskytnuty hodnotu při použití funkce nebo příkazu.
[ ] Označuje, že uzavřená položka je volitelná.
( ) Označuje, že se vyžaduje alespoň jedna z uzavřených položek.
| (potrubí) Používá se v hranatých nebo kulatých závorkách k označení, že můžete zadat jednu z položek oddělených znakem svislé roury. V této podobě je kanál ekvivalentní logickému operátoru OR. V bloku (|) je kanál součástí syntaxe dotazu KQL.
[, ...] Označuje, že předchozí parametr lze opakovat vícekrát oddělené čárkami.
; Ukončete příkaz dotazu.

Examples

Skalární funkce

Tento příklad ukazuje syntaxi a ukázkové použití funkce hash následované vysvětlením toho, jak jednotlivé komponenty syntaxe překládají do ukázkového použití.

Syntaxe

hash( source [,mod])

Příklad využití

hash("World")
  • Název funkce hasha levá závorka jsou zadány přesně tak, jak je znázorněno.
  • "World" se předává jako argument požadovaného zdrojového parametru.
  • Pro mod parametr není předán žádný argument, který je volitelný, jak je uvedeno hranatými závorkami.
  • Pravá závorka je zadána přesně tak, jak je znázorněno.

Tabulkový operátor

Tento příklad ukazuje syntaxi a ukázkové použití operátoru řazení, následované vysvětlením toho, jak se jednotlivé komponenty syntaxe překládají do ukázkového použití.

Syntaxe

T| sort bycolumn [] [asc | descnulls first | nulls last] [, ...]

Příklad využití

StormEvents
| sort by State asc, StartTime desc
  • Tabulka StormEvents se předává jako argument požadovaného parametru T .
  • | sort by je zadán přesně tak, jak je znázorněno. V tomto případě je znak svislé roury součástí syntaxe příkazu tabulkového výrazu , jak znázorňuje blokový text. Další informace najdete v tématu Co je příkaz dotazu.
  • Sloupec State se předává jako argument pro povinný parametr sloupce s volitelným asc příznakem.
  • Za čárkou se předá další sada argumentů: sloupec StartTime s volitelným desc příznakem. Syntaxe [, ...] označuje, že může být předáno více sad argumentů, ale není vyžadováno.

Práce s volitelnými parametry

Pokud chcete zadat argument pro volitelný parametr, který přichází za jiným volitelným parametrem, musíte zadat argument pro předchozí parametr. Tento požadavek je ten, že argumenty musí odpovídat pořadí zadanému v syntaxi. Pokud pro parametr nemáte konkrétní hodnotu, použijte prázdnou hodnotu stejného typu.

Příklad sekvenčních volitelných parametrů

Zvažte syntaxi modulu plug-in http_request:

evaluate http_request ( Identifikátor URI [,RequestHeaders [,Options]] )

Parametry RequestHeaders a Options jsou volitelné parametry typu dynamické. Chcete-li zadat argument parametru Options , musíte také zadat argument parametru RequestHeaders . Následující příklad ukazuje, jak poskytnout prázdnou hodnotu pro první volitelný parametr RequestHeaders, aby bylo možné zadat hodnotu pro druhý volitelný parametr Options.

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