Översikt över hanteringskommandon

I den här artikeln beskrivs de hanteringskommandon, även kallade kontrollkommandon, som används för att hantera Kusto. Hanteringskommandon är begäranden till tjänsten om att hämta information som inte nödvändigtvis är data i databastabellerna eller ändra tjänsttillståndet osv.

Differentiering av hanteringskommandon från frågor

Kusto använder tre mekanismer för att särskilja frågor och hanteringskommandon: på språknivå, på protokollnivå och på API-nivå. Detta görs av säkerhetsskäl.

På språknivå avgör det första tecknet i texten i en begäran om begäran är ett hanteringskommando eller en fråga. Hanteringskommandon måste börja med punkttecknet (.) och ingen fråga kan börja med det tecknet.

På protokollnivå används olika HTTP/HTTPS-slutpunkter för kontrollkommandon i stället för frågor.

På API-nivå används olika funktioner för att skicka hanteringskommandon i stället för frågor.

Kombinera frågor och hanteringskommandon

Hanteringskommandon kan referera till frågor (men inte tvärtom) eller andra hanteringskommandon. Det finns flera scenarier som stöds:

  • AdminThenQuery: Ett hanteringskommando körs och resultatet (representeras som en tillfällig datatabell) fungerar som indata till en fråga.
  • AdminFromQuery: Antingen körs en fråga eller ett .show administratörskommando och resultatet (representeras som en tillfällig datatabell) fungerar som indata till ett hanteringskommando.

Observera att i samtliga fall är hela kombinationen tekniskt sett ett hanteringskommando, inte en fråga, så texten i begäran måste börja med ett punkttecken (.) och begäran måste skickas till tjänstens hanteringsslutpunkt.

Observera även att frågeuttryck visas i textens frågedel (de kan inte komma före själva kommandot).

Anteckning

Vi rekommenderar att du begränsar användningen av AdminThenQuery-åtgärder .

AdminThenQuery anges på ett av två sätt:

  • Genom att använda ett pipe-tecken (|) behandlar frågan därför resultatet av hanteringskommandot som om det vore någon annan dataproducerande frågeoperator.
  • Genom att använda ett semikolontecken (;) som sedan introducerar resultatet av hanteringskommandot till en särskild symbol med namnet $command_results, som man sedan kan använda i frågan valfritt antal gånger.

Ett exempel:

// 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 anges av kombinationen av <|-tecken. I följande exempel kör vi först en fråga som skapar en tabell med en enskild kolumn (med namnet str och typen string) samt en enskild rad och skriver den som tabellnamnet MyTable i databasen i kontext:

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