Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
适用于:✅Azure 数据资源管理器
Kusto.Cli 是一个命令行实用工具,用于在 Kusto 群集上发送查询和控制命令。 它可以采用以下几种模式运行:
REPL 模式:用户输入查询和命令后,此工具将显示结果,然后等待下一个用户查询/命令。 (“REPL”代表“read/eval/print/loop”,即读取/求值/打印/循环。)
执行模式:用户输入一个或多个查询和命令以作为命令行参数运行。 参数会按顺序自动运行,结果将输出到控制台。 (可选)在所有输入查询和命令运行后,此工具将进入 REPL 模式。
脚本模式:与执行模式类似,但使用文件(“脚本”)中指定的查询和命令,而不是通过命令行参数执行。
Kusto.Cli 主要用于针对通常需要编写代码的 Kusto 服务自动执行任务。 例如,C# 程序或 PowerShell 脚本。
获取工具
Kusto.Cli 是 NuGet 包 Microsoft.Azure.Kusto.Tools 的一部分,你可以为 .NET 下载该包。 下载包后,将包的 tools 文件夹解压缩到目标文件夹。 不需要进行其他安装,因为它是 xcopy 可安装的。
运行工具
Kusto.Cli 至少需要一个命令行参数才能运行。 通常,该参数是该工具应连接到的 Kusto 服务的连接字符串。
有关详细信息,请参阅 Kusto 连接字符串。 如果不使用命令行参数来运行工具,而是使用未知参数集或使用 /help 开关,控制台上将显示一条帮助消息。
例如,使用以下命令运行 Kusto.Cli。 命令将连接到 help Kusto 服务,并将数据库上下文设置为 Samples 数据库:
Kusto.Cli.exe "https://help.chinaeast2.kusto.chinacloudapi.cn/Samples;Fed=true"
注意
使用双引号将连接字符串括起来,防止 shell 应用程序(例如 PowerShell)错误地解释分号 (;) 和类似的字符。
命令行参数
(若要获取命令行参数的详尽列表,请运行:Kusto.Cli.exe -help。)
Kusto.Cli.exe ConnectionString [Switches]
ConnectionString
- Kusto 连接字符串,可保存所有 Kusto 连接信息。
默认为
net.tcp://localhost/NetDefaultDB。
-execute:QueryOrCommand
- 如果已指定,则在执行模式下运行 Kusto.Cli,并且会运行指定的查询或命令。 此开关可以重复,查询/命令会按出现的顺序运行。
此开关不能与
-script或-scriptml一起使用。
-keepRunning:EnableKeepRunning
- 如果指定为
true或false,在处理完所有-script或-execute值后,它将启用或禁用 REPL 模式。
-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.chinaeast2.kusto.chinacloudapi.cn/Samples;Fed=true" -script:"c:\mycommands.txt"
注意
冒号和参数值之间不应有空格
指令
Kusto.Cli 在工具中运行多个指令,而不是将其发送到服务进行处理。
| 指令 | 描述 |
|---|---|
?#h#help |
获取简短的帮助消息 |
q#quit#exit |
退出工具 |
#a#abort |
退出工具失败 |
#clip |
下一个查询或命令的结果将复制到剪贴板 |
#cls |
清除控制台屏幕 |
#connect [ConnectionString] |
连接到不同的 Kusto 服务(如果省略 ConnectionString,将显示当前的服务) |
#crp [Name [= Value]] |
设置客户端请求属性的值,或者仅显示此值,或显示所有值 |
#crp (-list | -doc) [Prefix] |
按前缀列出或全部列出客户端请求属性 |
#dbcontext [DatabaseName] |
将查询和命令使用的“上下文”数据库更改为 DatabaseName。 如果省略,将显示当前上下文 |
ke Text |
将指定的文本发送到正在运行的 Kusto.Explorer 进程 |
#loop Count Text |
多次运行文本 |
#qp [Name [= Value]] |
设置查询参数的值,或仅显示此值,或显示所有值。 将剪裁掉开头/结尾的单/双引号 |
#save Filename |
下一个查询或命令的结果将保存到指定的 CSV 文件 |
#script Filename |
执行指定的脚本 |
#scriptml Filename |
执行指定的多行脚本 |
行输入模式和块输入模式
默认情况下,Kusto.Cli 在行输入模式下运行。 每个换行符被解释为查询/命令之间的分隔符,并且该行会立即被发送执行。
在此模式下,你可以将较长的查询或命令分解为多行。 & 字符作为换行符之前行的最后一个字符,使 Kusto.Cli 继续读取下一行。 && 字符作为换行符之前行的最后一个字符,使 Kusto.Cli 忽略该换行符并继续读取下一行。
Kusto.Cli 还支持通过在命令行中指定 -lineMode:false 或通过执行指令 #blockmode 在块输入模式下运行。 在此模式下,Kusto.Cli 的行为与 Kusto.Explorer 和 Kusto.WebExplorer 类似,其中,行将作为“块”一起读取,每个块由单个查询或命令组成,各个块由一个或一个空行分隔。
注意
从脚本文件 (-script) 读取查询/命令时,强烈建议使用块输入模式。
注释
Kusto.Cli 将开始新行的 // 字符串解释为注释行。 它将忽略该行的其余部分并继续读取下一行。
仅限工具的选项
| 命令 | 效果 | 当前 |
|---|---|---|
| #timeon|#timeoff | 启用/禁用选项 timing:显示请求花费的时间 |
TRUE |
| #tableon|#tableoff | 启用/禁用选项 tableView:将结果集的格式设置为表 |
TRUE |
| #marson|#marsoff | 启用/禁用选项 marsView:显示倒数第二个结果集 |
FALSE |
| #resultson|#resultsoff | 启用/禁用选项 outputResultsSet:显示结果集 |
TRUE |
| #prettyon|#prettyoff | 启用/禁用选项 prettyErrors:清理错误 |
TRUE |
| #markdownon|#markdownoff | 启用/禁用选项 markdownView:将表的格式设置为 MarkDown |
FALSE |
| #progressiveon|#progressiveoff | 启用/禁用选项 progressiveView:询问并显示渐进式结果 |
FALSE |
| #linemode|#blockmode | 启用/禁用选项 lineMode:单行输入模式 |
TRUE |
| 命令 | 效果 | 默认 |
|---|---|---|
| #cridon|#cridoff | (启用禁用选项 crid:发送请求之前显示 ClientRequestId) |
FALSE |
| #csvheaderson|#csvheadersoff | (启用禁用选项 csvHeaders:在 CSV 输出中包含标头) |
TRUE |
| #focuson|#focusoff | (启用禁用选项 focus:删除所有多余的内容并专注于正确的内容) |
FALSE |
| #linemode|#blockmode | (启用/禁用选项 lineMode:单行输入模式) |
TRUE |
| #markdownon|#markdownoff | (启用/禁用选项 markdownView:将表的格式设置为 MarkDown) |
FALSE |
| #marson|#marsoff | (启用/禁用选项 marsView:显示倒数第二个结果集) |
FALSE |
| #prettyon|#prettyoff | (启用/禁用选项 prettyErrors:清理错误) |
TRUE |
| #querystreamingon|#querystreamingoff | (启用/禁用选项 queryStreaming:使用 queryStreaming 终结点 [仅限 Kusto 团队]) |
FALSE |
| #resultson|#resultsoff | (启用/禁用选项 outputResultsSet:显示结果集) |
TRUE |
| #tableon|#tableoff | (启用/禁用选项 tableView:将结果集的格式设置为表) |
TRUE |
| #timeon|#timeoff | (启用/禁用选项 timing:显示请求花费的时间) |
TRUE |
| #typeon|#typeoff | (启用 | 禁用选项 typeView:在表视图中显示每个列的类型。强制 Streaming=true) |
TRUE |
| #v2protocolon|#v2protocoloff | (启用/禁用选项 v2protocol:使用 v2 查询协议,而不是 v1) |
TRUE |
使用 Kusto.Cli 将结果导出为 CSV
Kusto.Cli 有一个特殊的客户端命令 #save,该命令将下一个查询结果导出到 CSV 格式的本地文件。 例如,以下行会将 StormEvents 表中的 10 条记录导出到 help.chinaeast2.kusto.chinacloudapi.cn 群集,Samples 数据库:
Kusto.Cli.exe @help/Samples -execute:"#save c:\temp\test.log" -execute:"StormEvents | take 10"
使用 Kusto.Cli 控制 Kusto.Explorer 的运行实例
你可以指示 Kusto.Cli 与在计算机上运行的 Kusto.Explorer 的“主”实例通信,并向其发送查询。 对于想运行多个查询但不想重复启动 Kusto.Explorer 进程的程序,此机制很有用。 在下面的示例中,Kusto.Cli 用于对 help 群集运行查询:
#connect cluster('help').database('Samples')
#ke StormEvents | count
语法非常简单:#ke,后跟空格和要运行的查询。
查询随后会发送到 Kusto.Explorer 的主实例(如果存在),并会在 Kusto.Cli 中设置当前的群集/数据库集。