Descrição geral dos comandos de gestão

Este artigo descreve os comandos de gestão, também conhecidos como comandos de controlo, utilizados para gerir o Kusto. Os comandos de gestão são pedidos ao serviço para obter informações que não são necessariamente dados nas tabelas de bases de dados ou para modificar o estado do serviço, etc.

Diferenciar comandos de gestão de consultas

O Kusto utiliza três mecanismos para diferenciar consultas e comandos de gestão: ao nível da linguagem, ao nível do protocolo e ao nível da API. Isto é feito por razões de segurança.

Ao nível do idioma, o primeiro caráter do texto de um pedido determina se o pedido é um comando de gestão ou uma consulta. Os comandos de gestão têm de começar com o caráter de ponto (.) e nenhuma consulta pode começar por esse caráter.

Ao nível do protocolo, diferentes pontos finais HTTP/HTTPS são utilizados para os comandos de controlo em oposição às consultas.

Ao nível da API, são utilizadas diferentes funções para enviar comandos de gestão em vez de consultas.

Combinar consultas e comandos de gestão

Os comandos de gestão podem referenciar consultas (mas não vice-versa) ou outros comandos de gestão. Existem vários cenários suportados:

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

Tenha em atenção que, em todos os casos, toda a combinação é tecnicamente um comando de gestão, não uma consulta, pelo que o texto do pedido tem de começar com um caráter de ponto (.) e o pedido tem de ser enviado para o ponto final de gestão do serviço.

Note também que na parte de consulta do texto aparecem instruções de consulta (não podem preceder o próprio comando).

Nota

Recomendamos que limite a utilização das operações AdminThenQuery .

AdminThenQuery é indicado de uma de duas formas:

  • Ao utilizar um caráter pipe (|), a consulta trata os resultados do comando de gestão como se fosse qualquer outro operador de consulta de produção de dados.
  • Ao utilizar um caráter ponto e vírgula (;), que, em seguida, introduz os resultados do comando de gestão num símbolo especial chamado $command_results, que poderá ser utilizado 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 de carateres <|. Por 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 escrevemo-la como o nome da tabela MyTable na base de dados no contexto:

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