Overzicht van beheeropdrachten

In dit artikel worden de beheeropdrachten, ook wel besturingsopdrachten genoemd, beschreven die worden gebruikt voor het beheren van Kusto. Beheeropdrachten zijn aanvragen aan de service om informatie op te halen die niet noodzakelijkerwijs gegevens in de databasetabellen zijn, of om de servicestatus te wijzigen, enzovoort.

Beheeropdrachten onderscheiden van query's

Kusto maakt gebruik van drie mechanismen om query's en beheeropdrachten te onderscheiden: op taalniveau, op protocolniveau en op API-niveau. Dit wordt vanwege veiligheidsredenen gedaan.

Op taalniveau bepaalt het eerste teken van de tekst van een aanvraag of de aanvraag een beheeropdracht of een query is. Beheeropdrachten moeten beginnen met het puntteken (.) en er mag geen query met dat teken beginnen.

Op protocolniveau worden verschillende HTTP-/HTTPS-eindpunten voor besturingsopdrachten gebruikt, maar niet voor query's.

Op API-niveau worden verschillende functies gebruikt om beheeropdrachten te verzenden in tegenstelling tot query's.

Query's en beheeropdrachten combineren

Beheeropdrachten kunnen verwijzen naar query's (maar niet omgekeerd) of andere beheeropdrachten. Er zijn diverse ondersteunde scenario's:

  • AdminThenQuery: er wordt een beheeropdracht uitgevoerd en het resultaat (weergegeven als een tijdelijke gegevenstabel) fungeert als invoer voor een query.
  • AdminFromQuery: er wordt een query of een .show beheerdersopdracht uitgevoerd en het resultaat (weergegeven als een tijdelijke gegevenstabel) fungeert als invoer voor een beheeropdracht.

Houd er rekening mee dat in alle gevallen de volledige combinatie technisch gezien een beheeropdracht is, geen query, dus de tekst van de aanvraag moet beginnen met een punt (.) en de aanvraag moet worden verzonden naar het beheereindpunt van de service.

Ook query-instructies worden weergegeven in het querydeel van de tekst (deze kunnen niet aan de opdracht zelf voorafgaan).

Notitie

U wordt aangeraden het gebruik van AdminThenQuery-bewerkingen te beperken.

AdminThenQuery wordt op een van de volgende twee manieren aangegeven:

  • Door gebruik te maken van een sluisteken (|), behandelt de query de resultaten van de beheeropdracht alsof het een andere queryoperator is die gegevens produceert.
  • Door een puntkomma (;) te gebruiken, waarna de resultaten van de beheeropdracht worden geïntroduceerd in een speciaal symbool met de naam $command_results, dat vervolgens een aantal keren in de query kan worden gebruikt.

Bijvoorbeeld:

// 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 wordt aangegeven door de tekencombinatie <|. In het volgende voorbeeld wordt eerst een query uitgevoerd die een tabel produceert met één kolom (met de naam str, van het type string) en één rij, en als tabelnaam MyTable naar de database in context geschreven:

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