Introducción a los comandos de administración

En este artículo se describen los comandos de administración, también conocidos como comandos de control, que se usan para administrar Kusto. Los comandos de administración son solicitudes al servicio para recuperar información que no es necesariamente datos en las tablas de base de datos, o para modificar el estado del servicio, etc.

Diferenciación de los comandos de administración de las consultas

Kusto usa tres mecanismos para diferenciar las consultas y los comandos de administración: en el nivel de lenguaje, en el nivel de protocolo y en el nivel de API. Esto se hace por motivos de seguridad.

En el nivel de idioma, el primer carácter del texto de una solicitud determina si la solicitud es un comando de administración o una consulta. Los comandos de administración deben comenzar con el carácter punto (.) y ninguna consulta puede empezar por ese carácter.

En el nivel de protocolo, se usan puntos de conexión HTTP/HTTPS diferentes para los comandos de control y para las consultas.

En el nivel de API, se usan diferentes funciones para enviar comandos de administración en lugar de consultas.

Combinación de consultas y comandos de administración

Los comandos de administración pueden hacer referencia a consultas (pero no viceversa) u otros comandos de administración. Se admiten varios escenarios:

  • AdminThenQuery: se ejecuta un comando de administración y su resultado (representado como una tabla de datos temporal) actúa como entrada para una consulta.
  • AdminFromQuery: se ejecuta una consulta o un .show comando de administrador y su resultado (representado como una tabla de datos temporal) sirve como entrada para un comando de administración.

Tenga en cuenta que, en todos los casos, la combinación completa es técnicamente un comando de administración, no una consulta, por lo que el texto de la solicitud debe comenzar con un carácter de punto (.) y la solicitud debe enviarse al punto de conexión de administración del servicio.

Tenga también en cuenta que las instrucciones de consulta aparecen en la parte de consulta del texto (no pueden preceder al propio comando).

Nota:

Se recomienda limitar el uso de las operaciones AdminThenQuery .

AdminThenQuery se indica de una de estas dos maneras:

  • Mediante el uso de un carácter de canalización (|), la consulta trata, por tanto, los resultados del comando de administración como si fuera cualquier otro operador de consulta que genere datos.
  • Mediante el uso de un carácter de punto y coma (;), que después introduce los resultados del comando de administración en un símbolo especial denominado $command_results, que después se puede usar en la consulta cualquier número de veces.

Por ejemplo:

// 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 se indica mediante la combinación de caracteres <|. En el siguiente ejemplo, primero se ejecuta una consulta que genera una tabla con una sola columna (llamada str del tipo string) y una sola fila, y se escribe como el nombre de la tabla MyTable en la base de datos en contexto:

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