Übersicht über Verwaltungsbefehle

In diesem Artikel werden die Verwaltungsbefehle beschrieben, die auch als Steuerungsbefehle bezeichnet werden, die zum Verwalten von Kusto verwendet werden. Verwaltungsbefehle sind Anforderungen an den Dienst zum Abrufen von Informationen, die nicht unbedingt Daten in den Datenbanktabellen sind, oder zum Ändern des Dienststatus usw.

Unterscheidung von Verwaltungsbefehlen von Abfragen

Kusto verwendet drei Mechanismen, um Abfragen und Verwaltungsbefehle zu unterscheiden: auf Sprachebene, auf Protokollebene und auf API-Ebene. Diese Unterscheidung erfolgt aus Sicherheitsgründen.

Auf Sprachebene bestimmt das erste Zeichen des Texts einer Anforderung, ob es sich bei der Anforderung um einen Verwaltungsbefehl oder eine Abfrage handelt. Verwaltungsbefehle müssen mit dem Punkt (.) beginnen, und keine Abfrage darf mit diesem Zeichen beginnen.

Auf der Protokollebene werden für Steuerungsbefehle und Abfragen jeweils unterschiedliche HTTP/HTTPS-Endpunkte verwendet.

Auf API-Ebene werden verschiedene Funktionen verwendet, um Verwaltungsbefehle im Gegensatz zu Abfragen zu senden.

Kombinieren von Abfragen und Verwaltungsbefehlen

Verwaltungsbefehle können auf Abfragen (aber nicht umgekehrt) oder andere Verwaltungsbefehle verweisen. Dabei werden verschiedene Szenarien unterstützt:

  • AdminThenQuery: Ein Verwaltungsbefehl wird ausgeführt, und sein Ergebnis (dargestellt als temporäre Datentabelle) dient als Eingabe für eine Abfrage.
  • AdminFromQuery: Entweder eine Abfrage oder ein .show Administratorbefehl wird ausgeführt, und das Ergebnis (dargestellt als temporäre Datentabelle) dient als Eingabe für einen Verwaltungsbefehl.

Beachten Sie, dass die gesamte Kombination technisch gesehen ein Verwaltungsbefehl und keine Abfrage ist, sodass der Text der Anforderung mit einem Punkt (.) beginnen muss und die Anforderung an den Verwaltungsendpunkt des Diensts gesendet werden muss.

Beachten Sie auch, dass Abfrageanweisungen innerhalb des Abfrageteils des Texts angegeben werden. (Sie können nicht vor dem eigentlichen Befehl platziert werden.)

Hinweis

Es wird empfohlen, die Verwendung von AdminThenQuery-Vorgängen einzuschränken.

AdminThenQuery kann auf zwei Arten angegeben werden:

  • Durch Verwendung eines Pipezeichens (|) behandelt die Abfrage die Ergebnisse des Verwaltungsbefehls daher so, als ob es sich um einen anderen datenproduzierenden Abfrageoperator handeln würde.
  • Mithilfe eines Semikolons (;), das dann die Ergebnisse des Verwaltungsbefehls in ein spezielles Symbol namens $command_resultseinführt, das dann beliebig oft in der Abfrage verwendet werden kann.

Beispiel:

// 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 wird durch die Zeichenkombination <| angegeben. Im folgenden Beispiel wird zuerst eine Abfrage ausgeführt, die eine Tabelle mit einer einzelnen Spalte (namens str vom Typ string) und einer einzelnen Zeile generiert. Diese wird dann als Tabellenname MyTable in die Datenbank im Kontext geschrieben:

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