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

Microsoft Fabric及ADF:仅Upsert的ETL(忽略删除)实现问询

实现仅插入/更新、忽略删除的ETL流程(Microsoft Fabric/ADF可视化编辑器)

完全可以通过Microsoft Fabric或Azure Data Factory (ADF) 的可视化编辑器实现该需求,核心是利用增量复制+保留目标现有记录的配置逻辑,避免同步源端的删除操作。以下是具体操作步骤:

Microsoft Fabric 操作步骤

  • 打开Fabric数据工厂,新建数据管道并添加「复制数据」活动
  • 配置源:选择业务应用数据库作为源数据集,启用增量复制,指定增量标识列(如LastModifiedDate时间戳列或自增ID列),用于识别源端新增/更新的记录
  • 配置目标:选择Fabric Lakehouse或Warehouse(对应你的Synapse源副本)作为目标数据集
  • 在「复制数据」活动的设置标签页中,找到「复制行为」选项:
    • 选择「Upsert(插入更新)」:指定主键列作为匹配键,源端更新的记录会覆盖目标对应行,新增记录会插入,源端删除的记录不会被同步删除
    • 若选择「增量追加」:会保留所有历史记录,新增/更新的记录直接追加,但源端更新同一条记录时会产生重复行,因此更推荐Upsert模式
  • 保存管道后,可设置定时触发,持续同步源端的新增/更新记录,源端的删除操作不会影响目标库的留存数据

Azure Data Factory (ADF) 操作步骤

  • 在ADF中新建管道,添加「复制数据」活动
  • 配置源数据集为业务应用数据库,启用增量复制并指定增量列(如LastModifiedDate)
  • 配置目标数据集为Azure Synapse Analytics
  • 进入「复制数据」活动的映射标签页确认列映射无误,再切换到设置标签页:
    • 在「写入行为」中选择「Upsert」,设置主键列作为匹配键,确保源端新增/更新记录同步到目标,删除操作不会被执行
    • 若选择「追加」模式,需注意重复行问题,仅适合无需更新现有记录的场景
  • 配置定时触发,运行后目标库将保留所有历史记录,仅同步源端的新增和更新操作

注意事项

  • 源表必须具备可靠的增量标识列,否则无法准确识别新增/更新的记录
  • 若源表无增量列,可采用「全量复制到临时表+SQL Merge脚本」的方式:先将全量数据复制到临时表,再在管道中添加「SQL脚本」活动,执行Merge语句实现仅插入更新、忽略删除,但该方式效率较低,仅适合小表
  • 目标表需正确配置主键约束,确保Upsert操作能精准匹配记录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 09:42:44