使用 Kusto.Explorer

适用于:✅Azure 数据资源管理器

Kusto.Explorer 是一个桌面应用程序,可让你在易于使用的用户界面中使用 Kusto 查询语言来浏览数据。 本文介绍如何使用搜索和查询模式、如何共享查询以及如何管理群集、数据库和表。

Search++ 模式

使用 Search++ 模式,可在一个或多个表中使用搜索语法搜索字词。

  1. 在“主页”选项卡的“查询”下拉菜单中,选择“搜索++”。

  2. 选择“多个表”。

  3. 在“选择表”下定义要搜索的表,然后选择“确定”。

  4. 在“编辑”框中,输入搜索短语,然后选择“开始”。

    表/时间段网格的热图显示出现的字词以及它们出现的位置。

    Search++ Kusto Explorer

  5. 在网格中选择一个单元格,然后选择“查看详细信息”,在结果窗格中显示相关条目。

    Kusto Explorer Search++ 结果

查询模式

Kusto.Explorer 包含一个功能强大的查询模式,可用于编写、编辑和运行内联查询。 此查询模式附带语法突出显示和 IntelliSense,可方便你快速加深对 Kusto 查询语言的了解。

本部分介绍如何在 Kusto.Explorer 中运行基本查询,以及如何将参数添加到查询。

基本查询

如果你有表日志,可以开始浏览它们:

StormEvents | count 

当光标位于此行上时,它的颜色为灰色。 按 F5 运行查询。

下面提供了一些查询示例:

// Take 10 lines from the table. Useful to get familiar with the data
StormEvents | take 10 
// Filter by EventType == 'Flood' and State == 'California' (=~ means case insensitive) 
// and take sample of 10 lines
StormEvents 
| where EventType == 'Flood' and State =~ 'California'
| take 10

Kusto Explorer 基础查询。

若要详细了解 Kusto 查询语言,请参阅 Kusto 查询语言

注意

查询表达式中的空白行可能影响执行查询的那一部分。

如果未选定文本,则假定以空行分隔查询或命令。 如果选定了文本,则运行选定的文本。

客户端查询参数化

注意

Kusto 中有两种类型的查询参数化技术:

  • 语言集成查询参数化在服务器端实现,旨在供以编程方式查询服务的应用程序使用。 本文档不介绍此方法。

  • 客户端查询参数化仅是 Kusto.Explorer 应用程序的一项功能。 这相当于在将查询发送给服务执行之前对查询使用字符串替换操作。 该语法并非查询语言本身的一部分,并且在通过 Kusto.Explorer 以外的方式将查询发送到服务时不能使用。

如果在多个查询或多个选项卡中使用相同的值,则在使用该值的每一处进行更改非常不方便。 为方便起见,Kusto.Explorer 支持查询参数。 查询参数在选项卡之间共享,以便可以轻松重复使用。 参数由 {} 括号表示。 例如 {parameter1}

可以轻松定义和编辑现有查询参数:

查询编辑器的屏幕截图,其中显示了一个含参数的查询。突出显示了查询编辑器选项“查询参数”。

“查询参数”窗口的屏幕截图,其中显示了定义的参数。

你可以具有多组参数(在“参数集”组合框中列出)。 选择“新增”或“删除现有”以操作参数集列表 。

参数集列表。

共享查询和结果

在 Kusto.Explorer 中,可以通过电子邮件共享查询和结果。 还可以创建在浏览器中打开和运行查询的深层链接。

通过电子邮件共享查询和结果

Kusto.Explorer 提供了一种便捷方式,可以通过电子邮件共享查询和查询结果。

  1. 在 Kusto.Explorer 中运行查询

  2. 在“主页”选项卡的“共享”部分,选择“查询和剪贴板结果”(或按 Ctrl+Shift+C)。

    查询和结果到剪贴板菜单项的屏幕截图。

    Kusto.Explorer 将以下内容复制到剪贴板:

    • 你的查询
    • 查询结果(表或图表)
    • Kusto 群集和数据库的连接详细信息
    • 一个自动重新运行查询的链接
  3. 将剪贴板中的内容粘贴到新的电子邮件中。 电子邮件中共享结果的屏幕截图。

深层链接查询

可以创建一个 URI,当在浏览器中打开该 URI 时,它将在本地打开 Kusto.Explorer,并在指定的 Kusto 数据库上运行特定的查询。

注意

出于安全原因,禁用了管理命令的深层链接。

创建深层链接最简单的方法是在 Kusto.Explorer 中编写查询,然后使用 Query and results to Clipboard 将查询(包括深层链接和结果)复制到剪贴板。 然后,你可以通过电子邮件共享它。

复制到电子邮件时,会以小字体显示一些要执行的链接。 例如:

执行: [Web] [桌面] [Web (可重用功能区)] [桌面(SAW)] https://help.chinaeast2.kusto.chinacloudapi.cn/Samples

Web 链接可在 Azure 数据资源管理器中打开查询。 “桌面”链接是深层链接。 它会在 Kusto.Explorer 中打开查询,并适当设置上下文。

如果将链接移至电子邮件中并按 CTRL+K,就能看到实际的 URL。

https://help.chinaeast2.kusto.chinacloudapi.cn/Samples?web=0&query=H4sIAAAAAAAEAAsuyS%2fKdS1LzSspVuDlqlEoLs3NTSzKrEpVSM4vzSvR0FRIqlRIyszTCC5JLCoJycxN1VEwT9EEKS1KzUtJLVIoAYolZwAlFQCB3oo%2bTAAAAA%3d%3d

可以将参数化查询与深层链接结合使用。

  1. 创建要构成为参数化查询的查询(如 KustoLogs | where Timestamp > ago({Period}) | count
  1. 为 URI 中的每个查询参数提供一个参数。 若要复制 URI,请在 Azure 门户中转到群集的概述页面,然后选择该 URI。 该 URI 应采用以下格式:

    https://<your_cluster>.kusto.chinacloudapi.cn/MyDatabase? web=0&query=KustoLogs+%7c+where+Timestamp+>+ago({Period})+%7c+count&Period=1h

    将 your_cluster 替换为 Azure 数据资源管理器群集的名称<>。

  2. 将查询链接直接粘贴到 Kusto.Explorer 查询窗格中。

限制

由于浏览器限制、HTTP 代理和验证链接的工具(如 Microsoft Outlook),查询的字符数不得超过 2000 个。 该限制是近似值,因为它取决于群集和数据库名称的长度。 有关详细信息,请参阅 https://support.microsoft.com/kb/208427

要减少达到字符限制的几率,请参阅获取更短的链接

URI 的格式为:https://<ClusterCname>.kusto.chinacloudapi.cn/<DatabaseName>web=0?query=<QueryToExecute>

例如:https://help.chinaeast2.kusto.chinacloudapi.cn/Samples?web=0query=StormEvents+%7c+limit+10

此 URI 会打开 Kusto.Explorer,连接到 Help Kusto 群集,并在 Samples 数据库上运行指定查询。 如果已有 Kusto.Explorer 实例在运行,运行中的实例会打开一个新标签页,并在其中运行查询。

查询可能会变得很长。 要减少查询超过最大长度的几率,请使用 Kusto 客户端库中提供的 String Kusto.Data.Common.CslCommandGenerator.EncodeQueryAsBase64Url(string query) 方法。 此方法可生成更精简的查询版本。 Kusto.Explorer 也可以识别较短的格式。

通过以下转换,查询会变得更加简洁:

 UrlEncode(Base64Encode(GZip(original query)))

Kusto.Explorer 命令行参数

命令行参数用于配置工具,以便在启动时执行更多功能。 例如,加载脚本并连接到群集。 因此,命令行参数不能替代任何 Kusto.Explorer 功能。

命令行参数作为用于打开应用程序的 URL 的一部分传递,类似于查询深层链接

命令行参数语法

Kusto.Explorer 支持以下语法中的几个命令行参数(顺序很重要):

[LocalScriptFile] [QueryString]

  • LocalScriptFile 是本地计算机上脚本文件的名称,该文件必须具有扩展名 .kql。 如果此文件存在,则 Kusto.Explorer 会在启动时自动加载此文件。
  • QueryString 是使用 HTTP 查询字符串格式的字符串。 如下表所示,此方法提供了更多属性。

例如,要使用名为 c:\temp\script.kql 的脚本文件启动 Kusto.Explorer,并将其配置为与群集 help、数据库 Samples 通信,请使用以下命令:

Kusto.Explorer.exe c:\temp\script.kql "uri=https://help.chinaeast2.kusto.chinacloudapi.cn/Samples;Fed=true&name=Samples"
参数 说明
要执行的查询
query 要执行的查询(gzip 压缩,然后进行 base64 编码;请参阅上方获取更短的链接)。 如果为空,则使用 querysrc
querysrc 保存要执行的查询的文件或 Blob 的 HTTP URL(如果 query 为空)。
与 Kusto 群集的连接
uri 要连接到的 Kusto 群集的连接字符串。
name 与 Kusto 群集的连接的显示名称。
连接组
path 要下载的连接组文件的 URL(URL 编码)。
group 连接组的名称。
filename 保存连接组的本地文件。

管理数据库、表或函数授权主体

重要

只有管理员才能在自己的范围中添加或删除授权主体。

  1. 要查看授权主体列表,请右键单击“连接面板”中的目标实体,然后选择“管理数据库授权主体”。 (也可以从“管理”菜单中选择此选项。)

    实体下拉菜单的屏幕截图。突出显示了标题为“管理数据库授权主体”的选项。

  2. 选择“添加主体”以添加授权主体。 “管理授权主体”窗口的屏幕截图。突出显示了标题为“删除主体”和“添加主体”的选项。

  3. 提供主体详细信息,然后选择“添加主体”。

    “添加授权主体”窗口的屏幕截图。突出显示了标题为“添加主体”的按钮。

  4. 确认要添加授权主体。

    “查看主体”窗口的屏幕截图,其中显示了有关添加授权主体的确认请求。

要删除现有授权主体,请选择“删除主体”并确认操作。

“删除主体”窗口的屏幕截图,其中显示了有关删除授权主体的确认请求。