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

如何复用ADX外部表定义定期同步数据至原生Kusto表?

针对ADX外部表同步到原生表的替代方案

除了你提到的set-or-replace async,还有几种更适配定期同步场景的专用方法:

1. .append/.append async 增量同步

如果外部表的数据是追加式更新(新数据只添加不修改旧数据),用.append命令比全量替换更高效,仅同步新增数据:

.append async my_kusto_table <| my_external_table

若要避免重复导入,可结合外部表的分区或时间筛选条件,比如仅同步最近24小时的数据:

.append async my_kusto_table <| my_external_table | where Timestamp > ago(24h)

2. 更新策略(Update Policy)自动同步

如果需要近乎实时的同步,可给原生表配置更新策略,直接关联外部表作为数据源。每当外部表指向的ADL存储有新数据写入,ADX会自动将增量数据导入原生表:

.alter table my_kusto_table policy update @'[{"Source": "my_external_table", "Query": "", "IsEnabled": true}]'

注意:该策略依赖外部表的数据源(ADL)支持增量扫描,比如存储文件有明确分区或文件名包含时间戳,Kusto能自动识别新增文件。

3. 函数+周期性批量作业

如果需要更灵活的同步逻辑(比如数据清洗、转换后再同步),可先创建查询外部表的函数,再通过ADX周期性作业(或Azure Logic Apps、Azure Functions)定期调用同步命令:

  1. 创建自定义处理函数:
.create-or-alter function my_sync_function() {
    my_external_table 
    | where ... // 自定义过滤、转换逻辑
}
  1. 配置周期性作业执行同步:
.append async my_kusto_table <| my_sync_function()

这种方式适合复杂数据处理场景,还能通过作业配置监控同步状态、失败重试。

4. .set-or-append async 混合同步

如果外部表既有新增数据又有旧数据修改,.set-or-append可先处理重复数据(比如按主键去重),再合并到原生表:

.set-or-append async my_kusto_table <| my_external_table | summarize arg_max(Timestamp, *) by Id

这里通过summarize arg_max保留最新版本的数据,避免重复或旧数据覆盖新数据。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 01:13:13