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

Azure SQL Data Sync能否仅同步指定日期后数据并排除删除操作?

问题解答

Azure SQL Data Sync 能否满足需求?

Azure SQL Data Sync 无法直接实现你的需求,核心原因如下:

  • 它默认基于变更追踪同步所有操作(包括INSERT/UPDATE/DELETE),没有内置机制排除特定类型的操作(比如DELETE)。
  • 虽然可以设置行级筛选器(比如仅同步日期≥特定值的行),但筛选器针对的是行的存在性,而非操作类型。如果生产库执行DELETE删除旧行,Data Sync依然会把该删除操作同步到历史库,导致历史库数据被误删,不符合你的留存全部数据的要求。

推荐替代方案

1. Azure Data Factory (ADF)

这是适配这类数据归档场景的最优方案:

  • 精准增量同步:基于表中的时间戳字段(如CreateTime或LastUpdateTime),定期同步生产库中≥特定日期的新增/更新数据到历史库,完全忽略DELETE操作。
  • 灵活调度:支持按小时/天/周设置自动调度,也可按需触发同步任务。
  • 低侵入性:通过主动拉取生产库数据实现同步,不会给生产库带来额外性能负载。

2. 变更数据捕获(CDC) + Azure Functions/Logic Apps

如果需要近实时的同步效果,可以采用这个组合:

  • 开启生产库的CDC功能,捕获所有数据变更(INSERT/UPDATE/DELETE)。
  • 通过Azure Functions或Logic Apps监听CDC捕获的变更日志,仅将INSERT和UPDATE操作同步到历史库,直接过滤DELETE操作;同时可添加日期条件,排除早于特定日期的变更记录。
  • 优势是同步延迟低,适合对实时性要求较高的场景。

3. 事务日志备份还原(适合全量+增量归档)

如果历史库需要完整保留生产库的所有历史状态,可以定期备份生产库的事务日志,然后还原到历史库,但需控制还原时间点,确保在生产库执行DELETE操作前完成还原。这种方式适合数据量不大、对历史版本完整性要求极高的场景,但操作复杂度较高。

4. 表触发器(不推荐高负载场景)

在生产库的业务表上创建INSERT/UPDATE触发器,当有数据新增或更新时自动同步到历史库。但触发器会增加生产库的写入延迟,高并发场景下可能影响性能,且维护成本较高,仅适合小型低负载数据库。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 02:33:32