You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure Sentinel工作簿中复用查询结果避免重复执行?

Azure Sentinel工作簿中KQL查询结果复用的解决办法

方法1:把初始查询导出为隐藏变量

这是最直接的方式,让初始查询只执行一次,后续所有可视化模块直接复用结果:

  • 添加一个「查询」组件,编写好获取SecurityIncident关联UrlClickEvents的初始查询(务必包含后续需要的所有字段,比如NetworkMessageId、Url、AccountName等)
  • 打开该组件的「高级设置」,勾选「将结果导出为变量」,设置变量名(比如InitialUrlEvents),再将组件设为「隐藏」(避免在工作簿界面显示)
  • 后续可视化查询直接通过dataset(InitialUrlEvents)调用这个变量的结果:
    • 展示URL点击事件列表:直接引用dataset(InitialUrlEvents)并选择对应列即可
    • 关联mailMessage实体:
      dataset(InitialUrlEvents)
      | join kind=inner MailMessage on NetworkMessageId
      | project NetworkMessageId, Subject, SenderFromAddress, Url
      
    • 统计共享相同NetworkMessageId的UrlClickEvents:
      dataset(InitialUrlEvents)
      | summarize ClickCount=count() by NetworkMessageId
      | join kind=inner UrlClickEvents on NetworkMessageId
      | project NetworkMessageId, Url, AccountName, ClickCount
      
    • 提取去重域名:
      dataset(InitialUrlEvents)
      | parse Url with * "://" Domain "/" *
      | distinct Domain
      

方法2:封装成工作簿自定义函数

如果需要更灵活的复用逻辑,可以把初始查询封装为工作簿的自定义函数:

  • 在工作簿的「资源管理器」中添加一个「函数」资源,编写初始查询逻辑,示例如下:
    let GetRelevantUrlEvents = () {
        SecurityIncident
        | where TimeGenerated > ago(7d)
        | project IncidentId, Title
        | join kind=inner UrlClickEvents on $left.IncidentId == $right.IncidentId
        | project IncidentId, NetworkMessageId, Url, AccountName, TimeGenerated
    };
    
  • 保存函数后,所有后续查询直接调用该函数即可,例如:
    GetRelevantUrlEvents()
    | join kind=inner MailMessage on NetworkMessageId
    
    注:工作簿函数会自动缓存执行结果,多个查询调用时不会重复执行初始查询逻辑。

方法3:用链接数据集跨标签页复用

如果初始查询结果需要在多个工作簿标签页复用,可以创建一个隐藏的「数据集」组件,其他标签页通过「链接数据集」的方式引用它,确保初始查询只执行一次。


内容的提问来源于stack exchange,提问作者JTB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 22:04:50