Azure 不带锁查询

Azure 不带锁查询,azure,azure-log-analytics,azure-data-explorer,kql,Azure,Azure Log Analytics,Azure Data Explorer,Kql,我正在编写一个查询来跨多个工作空间评估一个表模式,以确保我们不会侵犯数据库。一旦我们接近它,它将触发Azure警报。由于我们无法直接控制默认AzureDiagnostics表的模式,因此当我们可能超过支持的最大阈值时,需要发出警报 查询返回结果;然而,在测试期间,我注意到当日志分析更新表的模式时,查询偶尔会失败。这是在我将不同的资源类型连接到一个工作区之后发生的,从而为它提供了潜在的新模式信息 它将抛出无法从“columnName”中总结的错误。“columnName”值会随着时间的推移而改变,

我正在编写一个查询来跨多个工作空间评估一个表模式,以确保我们不会侵犯数据库。一旦我们接近它,它将触发Azure警报。由于我们无法直接控制默认AzureDiagnostics表的模式,因此当我们可能超过支持的最大阈值时,需要发出警报

查询返回结果;然而,在测试期间,我注意到当日志分析更新表的模式时,查询偶尔会失败。这是在我将不同的资源类型连接到一个工作区之后发生的,从而为它提供了潜在的新模式信息

它将抛出无法从“columnName”中总结的错误。“columnName”值会随着时间的推移而改变,这使我相信,自从发生更新以来,它在读取模式时遇到了问题。一段时间后,查询始终返回reuslts

以下是查询示例:

workspace("workspace1").AzureDiagnostics
|  getschema
| summarize count(ColumnName)
|project TotalColumns = count_ColumnName, Workspace = "workspace1" 
| where TotalColumns >400
| union (
workspace("workspace2").AzureDiagnostics
|  getschema
| summarize count(ColumnName)
|project TotalColumns = count_ColumnName, Workspace = "workspace2" 
| where TotalColumns >400
)

我的问题是,有没有一种方法可以编写一个类似于不带锁的SQL的查询?这样,即使没有提交,它仍然会返回模式。(我已更改where子句,以便能够检查返回的记录)。

如果我正确理解您对查询的问题,您需要做两件事:

  • 添加到union IsFuzzy=true-以避免在没有结果返回时出现这种情况
  • 通过扩展而不是项目添加工作区名称。您可以在合并列后重命名该列。或者,可以使用extend创建缺少的列
  • 关于您试图解决的问题,我们正在Azure Log Analytics中积极工作,以避免所有这些问题。我们现在正致力于为大多数Azure资源提供专用表,这样就不会使AzureDiagnostics表过多。 某些Azure资源(如Azure Data Factory)具有控制是否使用专用表或AzureDiagnostCs的选项。请参见此处的#4: