Panoramica dei comandi di gestione

Questo articolo descrive i comandi di gestione, noti anche come comandi di controllo, usati per gestire Kusto. I comandi di gestione sono richieste al servizio per recuperare informazioni che non sono necessariamente dati nelle tabelle di database o per modificare lo stato del servizio e così via.

Differenziare i comandi di gestione dalle query

Kusto usa tre meccanismi per distinguere le query e i comandi di gestione: a livello di lingua, a livello di protocollo e a livello di API. Questa distinzione viene fatta per motivi di sicurezza.

A livello di lingua, il primo carattere del testo di una richiesta determina se la richiesta è un comando di gestione o una query. I comandi di gestione devono iniziare con il carattere punto (.) e nessuna query può iniziare da tale carattere.

A livello di protocollo, per i comandi di controllo vengono usati diversi endpoint HTTP/HTTPS, a differenza delle query.

A livello di API, le diverse funzioni vengono usate per inviare comandi di gestione anziché query.

Combinazione di query e comandi di gestione

I comandi di gestione possono fare riferimento a query (ma non viceversa) o ad altri comandi di gestione. Sono supportati diversi scenari:

  • AdminThenQuery: viene eseguito un comando di gestione e il relativo risultato (rappresentato come tabella dati temporanea) funge da input per una query.
  • AdminFromQuery: viene eseguita una query o un .show comando amministratore e il relativo risultato (rappresentato come tabella dati temporanea) funge da input a un comando di gestione.

Si noti che in tutti i casi, l'intera combinazione è tecnicamente un comando di gestione, non una query, quindi il testo della richiesta deve iniziare con un carattere punto (.) e la richiesta deve essere inviata all'endpoint di gestione del servizio.

Si noti inoltre che le istruzioni di query vengono visualizzate all'interno della parte del testo che costituisce la query (non possono precedere il comando stesso).

Nota

È consigliabile limitare l'utilizzo delle operazioni AdminThenQuery .

AdminThenQuery è indicato in uno dei due modi seguenti:

  • Usando un carattere pipe (|) la query considera quindi i risultati del comando di gestione come se fosse un altro operatore di query che produce dati.
  • Usando un carattere di punto e virgola (;) che introduce quindi i risultati del comando di gestione in un simbolo speciale denominato $command_results, che può quindi essere usato nella query in qualsiasi numero di volte.

Ad esempio:

// 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 è indicato dalla combinazione dei caratteri <|. Nell'esempio seguente viene prima di tutto eseguita una query che produce una tabella con una singola colonna (denominata str di tipo string) e una singola riga e la scrive come nome di tabella MyTable nel database nel contesto:

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