Интерфейс командной строки Kusto

Kusto.Cli — это служебная программа командной строки для отправки запросов и команд управления в кластере Kusto. Он может работать в одном из нескольких режимов:

  • Режим REPL: пользователь вводит запросы и команды, а средство отображает результаты, а затем ожидает следующего запроса или команды пользователя. (REPL означает read/eval/print/loop.)

  • Режим выполнения. Пользователь вводит один или несколько запросов и команд для выполнения в качестве аргументов командной строки. Аргументы автоматически выполняются последовательно, а их результаты выводятся в консоль. При необходимости после выполнения всех входных запросов и команд средство переходит в режим REPL.

  • Режим скрипта: аналогичен режиму выполнения, но с запросами и командами, указанными в файле ("скрипт"), а не через аргументы командной строки.

Kusto.Cli в основном предоставляется для автоматизации задач в службе Kusto, которая обычно требует написания кода. Например, программа C# или скрипт PowerShell.

Скачать средство упаковки

Kusto.Cli является частью пакета Microsoft.Azure.Kusto.Tools NuGet, который можно скачать для .NET. После скачивания пакета извлеките папку пакета tools в целевую папку. Дополнительная установка не требуется, так как она доступна для установки xcopy.

Запуск средства

Для выполнения Kusto.Cli требуется по крайней мере один аргумент командной строки. Как правило, этот аргумент является строка подключения к службе Kusto, к которому должно подключиться средство. Дополнительные сведения см. в статье Строки подключения Kusto. Если запустить средство без аргументов командной строки, с неизвестным набором аргументов или с /help параметром , на консоли отобразится справочное сообщение.

Например, используйте следующую команду для запуска Kusto.Cli. Команда подключится к help службе Kusto и установит контекст базы данных для Samples базы данных:

Kusto.Cli.exe "https://help.kusto.windows.net/Samples;Fed=true"

Примечание

Используйте двойные кавычки вокруг строка подключения, чтобы приложения оболочки, такие как PowerShell, неправильно интерпретировали точку с запятой (;) и аналогичные символы.

Аргументы командной строки

(Чтобы получить исчерпывающий список аргументов командной строки, выполните команду . Kusto.Cli.exe -help)

Kusto.Cli.exeConnectionString [Переключатели]

Connectionstring

-execute:QueryOrCommand

  • Если этот параметр указан, выполняет Kusto.Cli в режиме выполнения и выполняется указанный запрос или команда. Этот параметр может повторяться, и запросы и команды выполняются последовательно в порядке внешнего вида. Этот параметр нельзя использовать вместе с -script или -scriptml.

-keepRunning:EnableKeepRunning

  • Если он указан как true или false, он включает или отключает режим REPL после обработки всех -script значений или -execute .

-script:ScriptFile

  • Если этот параметр указан, запускает Kusto.Cli в режиме скрипта. Загружается указанный файл скрипта, а запросы или команды в нем выполняются последовательно. Новые строки используются для разделения запросов и команд, за исключением случаев, когда строки заканчиваются сочетанием & или && , как описано ниже. Этот параметр нельзя использовать вместе с -execute.

-scriptml:ScriptFile

  • Если этот параметр указан, запускает Kusto.Cli в режиме скрипта. Загружается указанный файл скрипта, а запросы или команды в нем выполняются последовательно. Весь файл скрипта считается одним запросом или командой (игнорируя режим ввода строки или режим блочного ввода). Этот параметр нельзя использовать вместе с -execute.

-scriptQuitOnError:QuitOnFirstScriptError

  • Если этот параметр включен, Kusto.Cli завершит работу, если команда или запрос в скрипте приводят к ошибке. Если этот параметр отключен, выполнение скрипта продолжится, несмотря на ошибки. По умолчанию этот параметр включен.

-echo:EnableEchoMode

  • Если этот параметр указан как true или false, он включает или отключает режим эха. Если включен режим эха, каждый запрос или команда повторяются в выходных данных.

-transcript:TranscriptFile

  • Если этот параметр указан, записывает выходные данные программы в TranscriptFile.

-logToConsole:EnableLogToConsole

  • Если задано значение true или false, он включает или отключает отображение выходных данных программы на консоли.

-lineMode:EnableLineMode

  • Определяет, как обрабатываются новые строки при вводе запросов или команд из консоли или из скриптов. По умолчанию (или если явно задано значение true), средство использует режим ввода строки. Если задано значение false, скрипты считываются в режиме блочного ввода. Описание этих двух режимов см. ниже.

Пример

Kusto.Cli.exe "https://help.kusto.windows.net/Samples;Fed=true" -script:"c:\mycommands.txt"

Примечание

Между двоеточием и значением аргумента не должно быть пробела.

Директивы

Kusto.Cli выполняет ряд директив в средстве, а не отправляет их в службу для обработки.

Директива Описание
?
#h
#help
Получение краткого справочного сообщения
q
#quit
#exit
Выход из средства
#a
#abort
Завершение работы средства
#clip Результаты следующего запроса или команды будут скопированы в буфер обмена.
#cls Очистка экрана консоли
#connect[ConnectionString] Подключается к другой службе Kusto (если строка подключения опущена, отображается текущая).
#crp [Имя [=значение]] Задает значение свойства запроса клиента либо просто отображает его, либо отображает все значения.
#crp (-list | -doc) [Префикс] Список свойств запроса клиента, по префиксу или по всем
#dbcontext [Имя_базы данных] Изменяет базу данных контекста, используемую запросами и командами, на DatabaseName. Если этот параметр опущен, отображается текущий контекст.
keТекст Отправляет указанный текст в выполняющийся kusto. процесс Обозреватель
#loopПодсчеттекста Выполняет текст несколько раз
#qp [Имя [=значение]] Задает значение параметра запроса либо просто отображает его, либо отображает все значения. Одинарные и двойные кавычки в начале и конце будут обрезаны
#saveИмени файла Результаты следующего запроса или команды будут сохранены в указанный CSV-файл.
#scriptИмени файла Выполняет указанный скрипт.
#scriptmlИмени файла Выполняет указанный многостроковый скрипт

Режим ввода строки и режим блочного ввода

По умолчанию Kusto.Cli работает в режиме ввода строки. Каждый символ новой строки интерпретируется как разделитель между запросами и командами, и строка немедленно отправляется на выполнение.

В этом режиме можно разбить длинный запрос или команду на несколько строк. Символ & в качестве последнего символа строки перед новой строкой заставляет Kusto.Cli продолжить чтение следующей строки. Символ && в качестве последнего символа строки перед новой строкой приводит к тому, что Kusto.Cli игнорирует новую строку и продолжает читать следующую строку.

Kusto.Cli также поддерживает выполнение в режиме блочного ввода , указывая -lineMode:false в командной строке или выполняя директиву #blockmode. В этом режиме Kusto.Cli ведет себя аналогично Kusto. Обозреватель и Kusto.WebExplorer строки считываются вместе как "блоки", при этом каждый блок состоит из одного запроса или команды, а блоки разделяются одной или несколькими пустыми строками между ними.

Примечание

Режим блочного ввода настоятельно рекомендуется использовать, когда запросы и команды считываются из файла скрипта (-script).

Комментарии

Kusto.Cli интерпретирует // строку, которая начинается с новой строки, как строку комментария. Она игнорирует оставшуюся часть строки и продолжает читать следующую строку.

Параметры только для инструментов

Команды Действие Настоящее время
#timeon|#timeoff Параметр timingвключения и отключения: отображение времени, за которое запросы ушли TRUE
#tableon|#tableoff параметр tableViewenable/disable: форматирование результирующих наборов в виде таблиц TRUE
#marson|#marsoff параметр marsViewenable/disable: отображение результирующих наборов от секунды до последнего Ложь.
#resultson|#resultsoff параметр outputResultsSetenable/disable: отображение результирующих наборов TRUE
#prettyon|#prettyoff Параметр prettyErrorsвключения и отключения: очистка ошибок TRUE
#markdownon|#markdownoff параметр markdownViewenable/disable: форматирование таблиц как MarkDown Ложь.
#progressiveon|#progressiveoff Параметр progressiveViewвключения и отключения: запрос и отображение прогрессивных результатов Ложь.
#linemode|#blockmode параметр lineModeвключения и отключения: режим однострочного ввода TRUE
Команды Действие Default
#cridon|#cridoff (параметр enable|disable crid: отображение ClientRequestId перед отправкой запроса) Ложь.
#csvheaderson|#csvheadersoff (включить|отключить параметр csvHeaders: включить заголовки в выходные данные CSV) TRUE
#focuson|#focusoff (включить|отключить параметр focus: удалите все лишние пуха и сосредоточьтесь на нужных материалах) Ложь.
#linemode|#blockmode (включить|отключить параметр lineMode: режим однострочного ввода) TRUE
#markdownon|#markdownoff (параметр enable|disable markdownView: форматирование таблиц как MarkDown) Ложь.
#marson|#marsoff (параметр enable|disable marsView: отображение результирующих наборов от секунды до последнего) Ложь.
#prettyon|#prettyoff (включить|отключить параметр prettyErrors: очистка ошибок) TRUE
#querystreamingon|#querystreamingoff (параметр enable|disable queryStreaming: используйте конечную точку queryStreaming (только для команды Kusto)) Ложь.
#resultson|#resultsoff (параметр enable|disable outputResultsSet: отображение результирующих наборов) TRUE
#tableon|#tableoff (параметр enable|disable tableView: форматирование результирующих наборов в виде таблиц) TRUE
#timeon|#timeoff (параметр timingenable|disable: отображение количества времени, которое потребовалось для запросов) TRUE
#typeon|#typeoff (параметр enable|disable typeView: отображение типа каждого столбца в представлении таблицы. Принудительное потоковое=true) TRUE
#v2protocolon|#v2protocoloff (параметр enable|disable v2protocol: используйте протокол запроса версии 2, а не версию 1) TRUE

Экспорт результатов в формате CSV с помощью Kusto.Cli

В Kusto.Cli есть специальная команда на стороне клиента, #save которая экспортирует результаты следующего запроса в локальный файл в формате CSV. Например, следующая строка экспортирует 10 записей из StormEvents таблицы в help.kusto.windows.net кластер базы Samples данных:

Kusto.Cli.exe @help/Samples -execute:"#save c:\temp\test.log" -execute:"StormEvents | take 10"

Используйте Kusto.Cli для управления запущенным экземпляром Kusto. Обозреватель

Вы можете указать Kusto.Cli для взаимодействия с "основным" экземпляром Kusto. Обозреватель на компьютере и отправлять ему запросы. Этот механизм может быть полезен для программ, которые хотят выполнять ряд запросов, но не хотят запускать Kusto. Обозреватель процесс несколько раз. В следующем примере Kusto.Cli используется для выполнения запроса к кластеру справки:

#connect cluster('help').database('Samples')

#ke StormEvents | count

Синтаксис прост: #ke, за которым следует пробел, и запрос для выполнения. Затем запрос отправляется в основной экземпляр Kusto. Обозреватель, если таковой существует, с текущим кластером или базой данных, заданным в Kusto.Cli.