经过试验,在Quick BI数据提报中,修改的表单,在MySQL数据库中仅同步最后的结果,删除的数据,在MySQL数据库中也会同步消失。
请问是否可以设置,数据库同步时同步为增量数据?即修改后,数据库新增一条数据,删除后,源数据显示为“已删除”,但仍然在数据库中。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在阿里云Quick BI中,数据提报功能主要用于收集和整理数据,它与MySQL数据库之间的同步机制主要是按照实际的数据变更来进行的。您提到的需求,即希望修改后的数据在数据库中以增量形式追加记录,同时删除操作不真正从数据库移除数据而是标记为“已删除”,这超出了Quick BI数据提报标准功能的范畴。
不过,要实现这样的数据管理策略,可以通过以下几种方式间接达成:
自定义开发中间层服务:在Quick BI与MySQL之间部署一个自定义的服务(如使用阿里云函数计算FC或ECS),该服务监听Quick BI数据提报的变化事件,然后根据业务规则处理数据同步逻辑。例如,当检测到数据更新时,在数据库中插入一条新记录表示变更,而遇到删除操作时,则在数据库中对应记录上标记“已删除”状态,而不是物理删除。
采用数据仓库解决方案:如果您的场景适合,可以考虑使用阿里云DataWorks等数据集成和处理服务。通过建立数据管道,将Quick BI中的数据变化捕获并转换成您需要的格式存储到数据仓库中,这样可以在数据仓库层实现更复杂的数据版本管理和增量记录保存。
利用数据库的日志或审计功能:部分数据库系统支持事务日志或者有专门的审计功能,可以用来追踪数据变更历史。虽然这不直接解决你提出的“增量同步且不删除”的需求,但可以作为数据变更历史的一种补充记录手段。
双写策略:在设计数据库表结构时,可以采用双写策略,即除了主表外,再维护一个历史表。所有增删改操作除了影响主表外,还向历史表追加记录,这样即使主表数据被修改或删除,历史表中仍保留了原始数据及其状态变化。
需要注意的是,上述方案都需要一定的技术实施工作,并可能涉及额外的成本开销。在选择具体方案前,建议详细评估业务需求、成本和技术可行性。