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

如何在ADX插入新数据时触发Azure Function并传递组织名

最优实现方案:ADX新数据插入触发Azure Function并传递组织名

方案一:实时触发(基于ADX更新策略+外部Event Hub)

适合对实时性要求高的场景,利用ADX内置的更新策略自动将新增数据中的组织名同步到Event Hub,再触发Azure Function。

  • 步骤1:创建触发专用的Event Hub
    新建一个独立的Event Hub(与原数据导入的Event Hub区分),用于传递组织名触发信号。

  • 步骤2:在ADX中创建指向该Event Hub的外部表
    执行Kusto命令创建外部表,仅保留需要的组织名字段:

    .create external table TriggerEvents (OrganizationName:string) 
    kind=eventhub 
    connection_string='<你的Event Hub连接字符串>'
    
  • 步骤3:给ADX目标表配置更新策略
    当目标表有新数据插入时,自动将组织名字段写入外部表(同步到Event Hub):

    .alter table <你的目标表名> policy update @'[
        {
            "Source": "<你的目标表名>",
            "Query": "<你的目标表名> | project OrganizationName",
            "IsEnabled": true,
            "Destination": "TriggerEvents"
        }
    ]'
    
  • 步骤4:给Event Hub配置Azure Function触发器
    在Azure Function中创建Event Hub触发器,绑定到上述触发专用的Event Hub。Function触发时即可直接获取消息中的OrganizationName字段。

优缺点:实时性强(数据插入ADX后立即触发),无需额外定时任务;需要维护额外的Event Hub和外部表,配置稍复杂。


方案二:准实时定时查询触发

适合对实时性要求不高(如分钟级延迟)的场景,通过定时触发Azure Function查询ADX新增数据。

  • 步骤1:确认ADX目标表的时间戳标识
    确保表中有可用于判断新增数据的字段,比如ADX自动生成的ingestion_time(),或数据自带的业务时间戳字段。

  • 步骤2:创建带定时触发器的Azure Function
    配置Function的定时触发器(比如0 */1 * * * *表示每分钟触发一次)。

  • 步骤3:Function中执行ADX查询获取新增组织名
    在Function代码中调用ADX的Kusto查询,过滤出上次触发后新增的数据中的组织名(需在Function中记录上次查询的时间戳,避免重复处理):

    <你的目标表名>
    | where ingestion_time() > datetime(<上次查询的时间>)
    | project OrganizationName
    | distinct OrganizationName // 去重避免重复触发
    
  • 步骤4:处理获取到的组织名
    根据业务逻辑处理每个组织名,完成后续操作。

优缺点:实现简单,无需额外的Event Hub和ADX配置;存在分钟级延迟,适合非实时场景。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 04:32:41