使用Kusto Explorer

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

Kusto.Explorer 是一个桌面应用程序,可用于在直观的界面中使用 Kusto 查询语言(KQL)浏览数据。 本指南介绍如何使用搜索和查询模式、共享查询和管理群集、数据库和表,以便简化数据分析。

Search++ 模式

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

  1. 在“ 开始 ”选项卡上的 “查询 ”下拉列表中,选择 “搜索++”。

  2. 选择“多个表”。

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

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

    表格和时段网格的热力图显示术语出现的位置。

    Kusto 资源管理器中 Search++ 的屏幕截图。

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

    Kusto Explorer 中 Search++ 结果的屏幕截图。

查询模式

Kusto.Explorer 包含功能强大的查询模式,可用于编写、编辑和运行内联查询。 查询模式包括语法突出显示和 IntelliSense,以便快速改进 Kusto 查询语言的知识。

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

基本查询

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

StormEvents | count 

当光标位于此行上时,它为灰色。 选择 F5 以运行查询。

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

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

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=H4sIAAAAAEAAsuyS%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 实例在运行,运行中的实例会打开一个新标签页,并在其中运行查询。

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

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

通过应用以下转换使查询更加紧凑:

 UrlEncode(Base64Encode(gzip(original query)))

Kusto.Explorer 命令行参数

命令行参数允许该工具在启动时执行更多功能,例如加载脚本并连接到群集。 但是,命令行参数不会替换任何 Kusto.Explorer 功能。

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

命令行参数语法

Kusto.Explorer 使用此语法支持多个命令行参数(顺序很重要):

[LocalScriptFile][QueryString]

命令行参数

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

Querystring 参数

论点 说明
要执行的查询
query 要执行的查询(gzip 压缩,然后进行 base64 编码;请参阅上方获取更短的链接)。 如果未指定,则使用 querysrc
querysrc 保存要执行的查询的文件/Blob 的 URL。
与 Kusto 群集的连接
uri 要连接到的 Kusto 群集的连接字符串。
name 与 Kusto 群集的连接的显示名称。
连接组
path 要下载的连接组文件的 URL(URL 编码)。
group 连接组的名称。
filename 保存连接组的本地文件。

示例

要启动带有名为 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"

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

重要

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

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

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

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

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

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

  4. 确认添加授权主体。

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

若要删除授权主体,请选择 删除主体 并确认操作。

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