Обзор команд управления
В этой статье описываются команды управления, также называемые командами управления, которые используются для управления Kusto. Команды управления — это запросы к службе на получение сведений, которые не обязательно являются данными в таблицах базы данных, изменения состояния службы и т. д.
Отличие команд управления от запросов
Kusto использует три механизма для различения запросов и команд управления: на уровне языка, на уровне протокола и на уровне API. Это нужно для обеспечения безопасности.
На уровне языка первый символ текста запроса определяет, является ли запрос командой управления или запросом. Команды управления должны начинаться с символа точки (.
), и запрос не может начинаться с этого символа.
На уровне протокола используются разные конечные точки HTTP/HTTPS для управляющих команд и для запросов.
На уровне API для отправки команд управления используются различные функции, а не запросы.
Объединение запросов и команд управления
Команды управления могут ссылаться на запросы (но не наоборот) или другие команды управления. Поддерживаются несколько сценариев работы.
- AdminThenQuery: выполняется команда управления, а ее результат (представленный в виде временной таблицы данных) служит входными данными для запроса.
- AdminFromQuery: выполняется запрос или
.show
команда администратора, а его результат (представленный в виде временной таблицы данных) служит входными данными для команды управления.
Обратите внимание, что во всех случаях все сочетание технически является командой управления, а не запросом, поэтому текст запроса должен начинаться с символа точки (.
), а запрос должен быть отправлен в конечную точку управления службы.
Также обратите внимание, что инструкции запроса отображаются в той части текста, которая относится к запросу (те есть не могут располагаться перед командой).
Примечание
Рекомендуется ограничить использование операций AdminThenQuery .
Метод AdminThenQuery обозначается одним из двух способов:
- Таким образом, с помощью символа канала (
|
) запрос обрабатывает результаты команды управления как любой другой оператор запроса, создающий данные. - С помощью символа с запятой (
;
), который затем вводит результаты команды управления в специальный символ с именем$command_results
, который затем можно использовать в запросе любое количество раз.
Пример:
// 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 обозначается сочетанием символов <|
. В следующем примере мы сначала выполним запрос, который создаст таблицу с одним столбцом (с именем str
и типом string
) и одной строкой, а затем сохраним ее с именем таблицы MyTable
в базе данных в текущем контексте:
.set MyTable <|
let text="Hello, World!";
print str=text
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по