Azure Kusto查询报错:按日期、资源/资源组统计计费数据失败
Kusto查询合并语法错误解决方法
核心错误排查方向
错误提示Query could not be parsed at '=' on line [1,126],大概率是以下两种情况:
- 将相等判断运算符
==误写为赋值符号=(比如where子句里的条件判断) - 列名包含特殊字符(空格、连字符等)时未用方括号
[]包裹,导致解析器误判=的作用
正确合并查询示例
根据你的需求(获取日期、ResourceId/资源组、BillableDataBytes),提供两种常见的合并方案:
方案1:同时按日期、ResourceId、资源组聚合统计
从ResourceId中提取资源组,统一维度聚合:
// 替换为你的实际表名 AzureUsageMetrics | extend Date = startofday(UsageDateTime) // 从ResourceId中解析资源组名称 | extend ResourceGroup = extract(@"resourceGroups/([^/]+)", 1, ResourceId) // 按日期、ResourceId、资源组汇总计费字节数 | summarize BillableDataBytes = sum(BillableDataBytes) by Date, ResourceId, ResourceGroup
方案2:合并不同维度的统计结果(ResourceId/资源组二选一)
分别按两个维度统计后合并,区分统计类型:
// 按日期+ResourceId统计 let stat_by_resource = AzureUsageMetrics | extend Date = startofday(UsageDateTime) | summarize BillableDataBytes = sum(BillableDataBytes) by Date, ResourceId | extend StatDimension = "ResourceId"; // 按日期+资源组统计 let stat_by_group = AzureUsageMetrics | extend Date = startofday(UsageDateTime) | extend ResourceGroup = extract(@"resourceGroups/([^/]+)", 1, ResourceId) | summarize BillableDataBytes = sum(BillableDataBytes) by Date, ResourceGroup | extend StatDimension = "ResourceGroup"; // 合并两个维度的结果,统一输出列 stat_by_resource | union stat_by_group | project Date, Identifier = iif(StatDimension == "ResourceId", ResourceId, ResourceGroup), BillableDataBytes, StatDimension
常见错误修正示例
错误写法(where子句用
=代替==):// 错误:判断相等应该用== AzureUsageMetrics | where ResourceId = "/subscriptions/xxxx/resourceGroups/yyyy"修正后:
AzureUsageMetrics | where ResourceId == "/subscriptions/xxxx/resourceGroups/yyyy"错误写法(带空格的列名未加方括号):
// 错误:列名含空格,解析器无法识别 AzureUsageMetrics | where Resource Group = "my-resource-group"修正后:
AzureUsageMetrics | where ["Resource Group"] == "my-resource-group"
内容的提问来源于stack exchange,提问作者learner
相关产品推荐
相关产品推荐

