Log Analytics查询AAS多维数据集处理状态无结果怎么办
问题根源
查询返回0条结果由两个原因导致:
- 表名使用错误:
aas_engine不是Azure Analysis Services(AAS)输出到Log Analytics的标准表名,若未正确配置诊断日志,会直接导致目标表无数据。 - 查询逻辑错误:筛选的
ProgressReportCurrent事件仅在处理任务运行过程中周期性生成,处理完成的任务不会产生该类事件;同时手动排除了所有存在ProgressReportEnd事件的会话,若查询时间窗口内无正在运行的处理任务,必然返回空结果。
前置配置要求
要获取AAS多维数据集处理状态,首先需要在AAS实例的「诊断设置」中完成配置:
- 勾选日志类别为引擎
- 选择目标为当前查询的Log Analytics工作区
- 可选择「资源特定」目标模式(推荐,表结构更清晰)或「Azure诊断」模式(兼容老配置)
注意:刚开启的诊断配置需要等待5-15分钟同步,才会产生可查询的数据。
对应数据表与核心字段
根据选择的诊断模式,使用对应数据表:
- 资源特定模式(推荐)
表名:AASEngineEvents
核心字段:TimeGenerated:事件生成时间OperationName:事件类型,和处理相关的取值包括ProgressReportBegin(处理启动)、ProgressReportEnd(处理结束)、ProgressReportError(处理报错)SessionId:会话唯一ID,用于关联同一次处理操作的全链路事件DatabaseName:处理操作所属的AAS数据库名TableName:处理的多维数据集/表名PartitionName:处理的分区名(若为分区级处理)EventSubclass:事件子类型,ProgressReportEnd事件中该值为0代表处理成功,非0代表处理异常TextMessage:事件详情,报错时会返回具体错误信息Duration:事件持续时长,单位毫秒_ResourceId:AAS实例的资源ID
- Azure诊断模式(老配置)
表名:AzureDiagnostics
额外过滤条件:ResourceProvider == "MICROSOFT.ANALYSISSERVICES"
字段规则:和资源特定模式字段含义一致,字段名增加类型后缀,例如OperationName_s、SessionId_s、DatabaseName_s、EventSubclass_d、TextMessage_s、Duration_d
可用查询示例
以下为资源特定模式下,查询近7天所有多维数据集处理状态(包含处理中、成功、失败)的KQL语句:
// 提取所有处理任务启动记录 let processingStart = AASEngineEvents | where TimeGenerated > ago(7d) | where OperationName == "ProgressReportBegin" | project SessionId, StartTime = TimeGenerated, DatabaseName, CubeName = TableName, PartitionName, ResourceId = _ResourceId; // 提取所有处理任务结束/报错记录 let processingEnd = AASEngineEvents | where TimeGenerated > ago(7d) | where OperationName in ("ProgressReportEnd", "ProgressReportError") | extend IsSuccess = iif(OperationName == "ProgressReportEnd" and EventSubclass == 0, true, false) | project SessionId, EndTime = TimeGenerated, IsSuccess, ErrorMsg = TextMessage; // 关联得到全量处理任务状态 processingStart | join kind=leftouter processingEnd on SessionId | extend ProcessStatus = iif(isempty(EndTime), "处理中", iif(IsSuccess, "处理成功", "处理失败")) | extend DurationMinutes = iif(isempty(EndTime), datetime_diff('minute', now(), StartTime), datetime_diff('minute', EndTime, StartTime)) | project StartTime, EndTime, DurationMinutes, ProcessStatus, DatabaseName, CubeName, PartitionName, ErrorMsg, ResourceId | sort by StartTime desc
若使用Azure诊断模式,将表名替换为AzureDiagnostics,增加资源提供方过滤条件,同时替换字段为对应带后缀的字段名即可。
内容的提问来源于stack exchange,提问作者Brahmaiah Takkellapati
相关产品推荐
相关产品推荐

