首页 > 解决方案 > 将源数据库名称添加为 Kusto 的行结果中的列

问题描述

我的集群中有多个 Kusto 数据库——每个数据库都代表一个持续集成测试运行。我经常喜欢在多个数据库中进行搜索,以了解问题发生的范围或问题首次发生的时间。

我会做这样的事情:

union (database('2018-08-*').['*InterestingTables']) | where Message has "Danger, Danger, Will Robinson!" | project OccurrenceTime,Message

我得到了很好的概述,但无法知道每行来自哪个数据库。消息本身并没有告诉我足够多的信息来了解相邻的两行是来自同一环境还是不同的环境。

有没有办法用该行在加入之前来自哪个数据库和/或表的附加列来扩展它?

在 Kusto Explorer 中,我正在考虑编写某种函数,该函数将逐个枚举数据库,过滤到有趣的行,使用当前数据库扩展该行,然后将它们合并在一起。我希望有一种更简单的方法可以做到这一点。仔细考虑管道,似乎在联合完成时为时已晚 - 除非 Kusto 在我尚未找到的元数据中携带该信息。通过 CLI 会容易得多,但我更喜欢在资源管理器中工作的东西。

我所追求$tablesearch结果有点像。

我还尝试| extend cursor_current()查看它是否添加了任何有趣的东西,但在跨数据库范围内不起作用。

我已经非常详尽地阅读了查询语言/查询要点,尽管可能由于......好吧,筋疲力尽而错过了它。:)

标签: azure-data-explorer

解决方案


您可以通过使用“union”语句withsource中的子句来获取表名。

union withsource=SourceTable (database('2018-08-*').['*InterestingTables'])
| where Message has "Danger, Danger, Will Robinson!"
| project OccurrenceTime,Message

推荐阅读