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

Azure Data Factory执行Upsert到CosmosDB后删除Blob源文件方案咨询

方案1:直接通过Azure Data Factory原生功能实现(推荐)

完全可以通过ADF的活动编排实现单文件粒度的处理+成功后删除,完全不会误删未处理文件,操作步骤如下:

  • 替换原有批量读取Blob的逻辑,先通过Get Metadata活动拉取指定Blob容器/目录下所有待处理JSON文件的列表
  • 新增For Each活动遍历上述文件列表,所有单文件处理逻辑都放在该活动内部执行
  • 在For Each内部首先添加复制活动:源端选择当前遍历到的单个Blob文件,Sink端保持原有Cosmos DB的Upsert配置
  • 在复制活动的成功后置链路中添加Delete活动:指定删除对象为当前正在处理的单个Blob文件,仅当前文件Upsert成功后才会触发删除,不会影响其他未处理文件

方案2:其他可选落地方案

如果不想调整现有ADF的批量处理逻辑,也可以用以下方案实现:

  • Cosmos DB变更Feed + Azure Function实现:给Cosmos DB对应容器开启变更Feed触发器,当有新文档Upsert成功后自动触发Azure Function,读取文档中携带的源Blob路径字段,调用Blob存储接口删除对应文件,该方案完全解耦写入和删除逻辑,一致性更高
  • Blob生命周期规则做兜底补充:可以给待处理Blob的目录配置生命周期规则,例如创建时间超过24小时的文件自动删除,避免ADF流程异常中断时残留无用文件

原流程参考图

流程示意图


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 23:36:03