Přehled příkazů pro správu

Tento článek popisuje příkazy pro správu, označované také jako řídicí příkazy, které se používají ke správě Kusto. Příkazy pro správu jsou požadavky na službu na načtení informací, které nemusí být nutně daty v databázových tabulkách, nebo o změnu stavu služby atd.

Rozdílování příkazů pro správu od dotazů

Kusto používá tři mechanismy k odlišení dotazů a příkazů pro správu: na úrovni jazyka, na úrovni protokolu a na úrovni rozhraní API. To se provádí z bezpečnostních důvodů.

Na úrovni jazyka první znak textu požadavku určuje, jestli je žádost příkazem pro správu nebo dotazem. Příkazy pro správu musí začínat tečkou (.) a tímto znakem nesmí začínat žádný dotaz.

Na úrovni protokolu se pro řídicí příkazy používají jiné koncové body HTTP/HTTPS než pro dotazy.

Na úrovni rozhraní API se k odesílání příkazů pro správu namísto dotazů používají různé funkce.

Kombinování dotazů a příkazů pro správu

Příkazy pro správu můžou odkazovat na dotazy (ale ne naopak) nebo jiné příkazy pro správu. Podporuje se několik scénářů:

  • AdminThenQuery: Spustí se příkaz pro správu a jeho výsledek (reprezentovaný jako dočasná tabulka dat) slouží jako vstup do dotazu.
  • AdminFromQuery: Provede se dotaz nebo .show příkaz správce a jeho výsledek (reprezentovaný jako dočasná tabulka dat) slouží jako vstup do příkazu pro správu.

Všimněte si, že ve všech případech je celá kombinace technicky vzato příkazem pro správu, nikoli dotazem, takže text požadavku musí začínat znakem tečky (.) a požadavek se musí odeslat do koncového bodu správy služby.

Všimněte si také, že příkazy dotazů se nacházejí v části textu s dotazem (nemůžou být před samotným příkazem).

Poznámka

Doporučujeme omezit využití operací AdminThenQuery .

AdminThenQuery se označuje jedním ze dvou způsobů:

  • Pomocí znaku kanálu (|) proto dotaz zachází s výsledky příkazu pro správu, jako by to byl jakýkoli jiný operátor dotazu vytvářející data.
  • Pomocí znaku středníku (;), který pak vloží výsledky příkazu pro správu do speciálního symbolu s názvem $command_results, který pak může v dotazu použít libovolný početkrát.

Příklad:

// 1. Using pipe: Count how many tables are in the database-in-scope:
.show tables
| count

// 2. Using semicolon: Count how many tables are in the database-in-scope:
.show tables;
$command_results
| count

// 3. Using semicolon, and including a let statement:
.show tables;
let useless=(n:string){strcat(n,'-','useless')};
$command_results | extend LastColumn=useless(TableName)

AdminFromQuery se označuje kombinací znaků <|. Například v následujícím příkladu nejprve spustíme dotaz, který vytvoří tabulku s jedním sloupcem (sloupec str typu string) a jedním řádkem, a zapíšeme tabulku do databáze v kontextu jako tabulku s názvem MyTable:

.set MyTable <|
let text="Hello, World!";
print str=text