如何通过Kusto查询获取每个Azure Data Factory管道的最新运行状态?
获取ADF管道运行的最新状态(Kusto查询优化)
我有一个每日运行的Azure Data Factory(ADF)管道,已通过诊断设置记录管道运行日志,当前使用的Kusto查询如下:
AzureDiagnostics | order by TimeGenerated desc
执行该查询会返回大量日志记录,但无法直接定位到每个管道运行的最新状态(成功/失败)。
优化后的Kusto查询
以下查询可精准获取每个管道运行的最新状态,适配ADF诊断日志结构:
AzureDiagnostics // 筛选仅管道运行相关的日志(需根据实际日志的OperationName值调整) | where OperationName == "PipelineRun" // 按管道名称+运行ID分组,提取每组内时间最新的完整记录 | summarize arg_max(TimeGenerated, *) by PipelineName, RunId // 按时间降序排列结果,方便查看最新运行情况 | order by TimeGenerated desc
查询逻辑说明
where OperationName == "PipelineRun":过滤掉非管道运行的日志(如果你的日志中该字段标识不同,需替换为实际值)summarize arg_max(TimeGenerated, *) by PipelineName, RunId:通过arg_max函数,按管道名称和运行ID分组后,自动保留每组中时间戳最新的那条记录,*表示保留该记录的所有字段order by TimeGenerated desc:让结果按时间从新到旧排序,便于快速定位最新的运行状态
如果只需要关键字段(如管道名、运行ID、状态、最新更新时间),可使用精简版查询:
AzureDiagnostics | where OperationName == "PipelineRun" | summarize arg_max(TimeGenerated, Status, PipelineName, RunId) by PipelineName, RunId | project PipelineName, RunId, LatestStatus=Status, LatestUpdateTime=TimeGenerated | order by LatestUpdateTime desc
内容的提问来源于stack exchange,提问作者user989988
相关产品推荐
相关产品推荐

