Visão geral dos comandos de gerenciamento

Este artigo descreve os comandos de gerenciamento, também conhecidos como comandos de controle, usados para gerenciar o Kusto. Os comandos de gerenciamento são solicitações ao serviço para recuperar informações que não são necessariamente dados nas tabelas de banco de dados ou modificar o estado do serviço etc.

Diferenciando comandos de gerenciamento de consultas

O Kusto usa três mecanismos para diferenciar consultas e comandos de gerenciamento: no nível da linguagem, no nível do protocolo e no nível da API. Isso é feito para fins de segurança.

No nível do idioma, o primeiro caractere do texto de uma solicitação determina se a solicitação é um comando de gerenciamento ou uma consulta. Os comandos de gerenciamento devem começar com o caractere ponto (.) e nenhuma consulta pode começar por esse caractere.

No nível do protocolo, diferentes pontos de extremidade HTTP/HTTPS são usados para comandos de controle em oposição a consultas.

No nível da API, diferentes funções são usadas para enviar comandos de gerenciamento em vez de consultas.

Combinando consultas e comandos de gerenciamento

Os comandos de gerenciamento podem referenciar consultas (mas não vice-versa) ou outros comandos de gerenciamento. Há vários cenários compatíveis:

  • AdminThenQuery: um comando de gerenciamento é executado e seu resultado (representado como uma tabela de dados temporária) serve como a entrada para uma consulta.
  • AdminFromQuery: uma consulta ou um .show comando de administrador é executado e seu resultado (representado como uma tabela de dados temporária) serve como a entrada para um comando de gerenciamento.

Observe que, em todos os casos, a combinação inteira é tecnicamente um comando de gerenciamento, não uma consulta, portanto, o texto da solicitação deve começar com um caractere de ponto (.) e a solicitação deve ser enviada para o ponto de extremidade de gerenciamento do serviço.

Observe também que as instruções de consulta aparecem dentro da parte de consulta do texto (elas não podem preceder o próprio comando).

Observação

Recomendamos limitar o uso de operações AdminThenQuery .

AdminThenQuery é indicado de uma das duas maneiras:

  • Usando um caractere de pipe (|), a consulta trata, portanto, os resultados do comando de gerenciamento como se fosse qualquer outro operador de consulta de produção de dados.
  • Usando um caractere ponto e vírgula (;), que introduz os resultados do comando de gerenciamento em um símbolo especial chamado $command_results, que pode ser usado na consulta várias vezes.

Por exemplo:

// 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 é indicado pela combinação do caractere <|. Por exemplo, no exemplo a seguir, executamos primeiro uma consulta que produz uma tabela com uma única coluna (chamada str do tipo string) e uma única linha e a grava como o nome da tabela MyTable no banco de dados no contexto:

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