Real-Time 智能教程第 4 部分:使用 KQL 查询流数据

注意

本教程是系列教程的一部分。 有关上一部分,请参阅:Real-Time Intelligence 教程第 3 部分:转换 KQL 数据库中的数据

本教程的这一部分介绍如何查询流数据。 您使用几种不同的方法来查询:使用 T-SQL,以及使用 explain 将 SQL 转换为 KQL。 使用 Copilot 生成 KQL 查询,并编写 KQL 查询。 还可以使用 KQL 查询在时间图表中可视化数据。

编写 KQL 查询

你在上一步更新策略中创建的表名是 TransformedData。 将此表名称(区分大小写)用作查询的数据源。

  • 输入以下查询。 然后按 Shift + Enter 运行查询。

    TransformedData
    | where BikepointID > 100 and Neighbourhood == "Chelsea"
    | project Timestamp, No_Bikes
    | render timechart
    

    此查询将创建一个时间图表,以时间图表的形式显示切尔西邻里自行车的数量。

    Real-Time Intelligence 中自行车时间表的 屏幕截图。

创建具体化视图

在此步骤中,创建一个具体化视图,该视图返回聚合查询的最新结果(始终是全新的)。 与直接通过源表运行聚合相比,查询具体化视图的性能更高。

  1. 复制/粘贴并运行以下命令以创建具体化视图,该视图显示每个自行车站的最新自行车数量:

    .create-or-alter materialized-view with (folder="Gold") AggregatedData on table TransformedData
    {
       TransformedData
       | summarize arg_max(Timestamp,No_Bikes) by BikepointID
    }
    
  2. 复制/粘贴并运行以下查询,以查看可视化为柱形图的具体化视图中的数据:

    AggregatedData
    | sort by BikepointID
    | render columnchart with (ycolumns=No_Bikes,xcolumn=BikepointID)
    

稍后将使用此查询来创建 Real-Time 仪表板。

重要

如果错过了用于创建表、更新策略、函数或具体化视图的任何步骤,请使用此脚本创建所有必需的资源: 教程命令脚本

使用 T-SQL 进行查询

查询编辑器支持使用 T-SQL。

  • 输入以下查询。 然后按 Shift + Enter 运行查询。

    SELECT top(10) *
    FROM AggregatedData
    ORDER BY No_Bikes DESC
    

此查询返回拥有最多自行车的前 10 个自行车站,并按自行车数量降序排列。

将 SQL 查询转换为 KQL

若要获取 T-SQL SELECT 语句的等效 KQL,请在查询之前添加关键字 explain 。 输出将是查询的 KQL 版本,然后可在 KQL 查询编辑器中复制并运行。

  • 输入以下查询。 然后按 Shift + Enter 运行查询。

    explain
    SELECT top(10) *
    FROM AggregatedData
    ORDER BY No_Bikes DESC
    

此查询返回与输入的 T-SQL 查询等效的 KQL。 KQL 查询显示在输出窗格中。 尝试复制/粘贴输出并运行查询。 请注意,此查询可能不会用优化的 KQL 编写。

使用 Copilot 生成 KQL 查询

如果你不熟悉编写 KQL,则可以使用自然语言提问,Copilot 将为你生成 KQL 查询。

  1. 在 KQL 查询集中,从菜单栏中选择 Copilot 图标。

  2. 以自然语言输入问题。 例如,“哪个车站现在拥有最多的自行车。 使用具体化视图以获取最新的数据。在您的问题中包含具体化视图的名称可能有所帮助。

    副驾驶将根据您的问题提出查询建议。

  3. 选择 “插入 ”按钮,将查询插入到 KQL 编辑器中。

    copilot 对话框的屏幕截图。

  4. 选择运行以运行查询。

可以提出后续问题或更改查询的范围。 使用此功能可帮助你了解 KQL 并快速生成查询。

有关本教程中执行的任务的详细信息,请参阅:

下一步