注意
本教程是系列教程的一部分。 有关上一部分,请参阅: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
此查询将创建一个时间图表,以时间图表的形式显示切尔西邻里自行车的数量。
创建具体化视图
在此步骤中,创建一个具体化视图,该视图返回聚合查询的最新结果(始终是全新的)。 与直接通过源表运行聚合相比,查询具体化视图的性能更高。
复制/粘贴并运行以下命令以创建具体化视图,该视图显示每个自行车站的最新自行车数量:
.create-or-alter materialized-view with (folder="Gold") AggregatedData on table TransformedData { TransformedData | summarize arg_max(Timestamp,No_Bikes) by BikepointID }
复制/粘贴并运行以下查询,以查看可视化为柱形图的具体化视图中的数据:
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 查询。
在 KQL 查询集中,从菜单栏中选择 Copilot 图标。
以自然语言输入问题。 例如,“哪个车站现在拥有最多的自行车。 使用具体化视图以获取最新的数据。在您的问题中包含具体化视图的名称可能有所帮助。
副驾驶将根据您的问题提出查询建议。
选择 “插入 ”按钮,将查询插入到 KQL 编辑器中。
选择运行以运行查询。
可以提出后续问题或更改查询的范围。 使用此功能可帮助你了解 KQL 并快速生成查询。
相关内容
有关本教程中执行的任务的详细信息,请参阅: