如何解决数据冲突?分享一款神器

admin 2021年7月20日05:55:28评论58 views字数 1912阅读6分22秒阅读模式

背景

由于不同业务的数据存储和应用需求不同,企业通常会将不同业务产生的数据分别存储在独立的数据库中。随着业务架构的不断调整,以及受开发过程的影响,原先分开存储的数据库逐渐暴露出一些问题:
1、数据分散在不同的数据库实例上,形成独立的数据孤岛,难以实现数据的聚合分析。传统的通过MySQL主从关系同步数据的方式,在MySQL5.7版本之前无法建立多对一的增量同步关系。MySQL5.7版本虽然推出了多源复制功能,但功能单一,无法进行不同库表间的映射,且配置过程复杂,当源数量较多时容易出错。
2、数据库分库分表之后存在多个数据库实例,难以再合并到统一的库表中。传统的数据库迁移工具无法处理合并过程中产生的数据冲突问题。
3、数据量越来越大,在不影响业务的前提下很难调整数据库架构。在线修改字段类型或者字段名,要么受限于数据库功能,要么可能给业务带来较大影响而难以调整。





为此,UDTS在数据传输的基础上,增加了数据集成服务,可实现多个数据源合并,打通数据孤岛以获得数据的统一视图,方便业务进行数据分析决策; 助力企业灵活调整业务架构,优化现有的数据库服务; 快速实现分库分表合并、自定义冲突处理策略、方便业务构建数据看板。
如何解决数据冲突?分享一款神器

一站式数据集成解决方案

多源数据聚合

针对数据库分散,难以聚合的问题。UDTS推出数据集成服务,可轻松帮助用户完成多源聚合。单个任务可支持多达 10 个数据源聚合,同时可支持不同类型网络环境下的数据源,包括外网、内网以及专线。

举例: 假设现在有两个数据源,分别是 10.10.10.100:3306 和 10.10.10.120:3306 ,聚合模式如下图所示 : 
如何解决数据冲突?分享一款神器
考虑到大多数据源都承载着在线业务,为了避免多源聚合对线上业务的影响,UDTS数据集成服务还支持针对每个数据源独立限速。

数据库合库合表

数据库合库合表通常存在以下难点:
  • 数据库实例分散;

  • 数据可能存在冲突;

  • 对不同的数据库需要不同的数据冲突解决方法。


针对以上这些问题,UDTS数据集成服务在多源聚合的基础上,提供以下方式解决:
1、自定义基础数据
  • 对于每个数据源,都可指定“是否保留目标库的原数据”,如果选择“是”,在导入数据表时,会保留原有数据库表定义及数据。

  • 而如果选择了不保留数据,则在导入数据时,会根据映射规则先清理对应的表及其数据。

如何解决数据冲突?分享一款神器

2. 自动解决数据冲突
在创建任务时可对每个数据源独立定义数据冲突解决策略,在数据集成时,可根据自己的数据冲突解决策略来处理冲突数据。当前提供“保留”与“替换”两种策略。
  • 保留: 当数据发生冲突时,保留目标库中的原数据,而丢弃当前数据。

当使用保留规则时,导入数据使用 INSERT IGNORE INTO , 比如 INSERT IGNORE INTO table VALUES(1, "name", 18) ,当有重复数据时,保留原有的数据,新插入的数据会被忽略。
  • 替换: 当发生数据冲突时,使用新的数据替换目标库中原来的数据。

当使用替换规则时,导入数据使用 REPLACE INTO ,比如 REPLACE INTO table VALUES(1, "name", 18) ,老的数据将会被新数据覆盖,集成任务中有多个子任务(多个源往同一个目标数据库同步)时,需要注意顺序。
如何解决数据冲突?分享一款神器

数据库架构调整

在开发的过程中,难免会遇到数据库改名、表变更等问题,但等到数据库架构要调整的时候,才发现累积了一堆“陈年旧债”。通过UDTS数据集成服务的全量+增量,不仅可以将全量数据按映射规则迁移到目标库中,还可动态实现增量数据的库表名称的映射。
如何解决数据冲突?分享一款神器

避免用户对数据源锁库锁表的担忧,UDTS数据集成服务还提供了No Lock模式,在此模式下数据集成服务运行的过程中不会对源库表进行任何的锁操作。

数据集成服务案例

1、数据脱敏

某教育企业,使用UDTS数据集成服务,将数据脱敏处理后,再交由内部其它部⻔进行数据分析,提取数据的有效价值。既避免了敏感数据泄漏风险,又帮助企业更快、更精准的决策。
如何解决数据冲突?分享一款神器

2、数据合并

某金融企业使用UDTS数据集成服务,将前期拆分后的数据库合并,方便进行后续的业务开发和分析。
如何解决数据冲突?分享一款神器
3、架构调整  
某交友软件为了适应新的架构,通过UDTS数据集成服务对数据库 db 和 table 进行了重新调整,适应了新的环境。

架构的调整不仅仅是对现有数据库的改名,还依赖于存量数据的变更、增量数据的同步、业务的回滚等。
如何解决数据冲突?分享一款神器

总结

总的来说,UDTS数据集成服务带给企业的价值主要体现在以下三个方面:
  • 多源数据聚合,数据合并,构建 BI数据看板,提取数据价值;

  • 同构数据整合,自动处理数据冲突。

  • 数据库架构在线调整,提升业务整体性能。


UDTS数据集成服务目前正在免费公测期,欢迎前往控制台开启体验~

如何解决数据冲突?分享一款神器




如何解决数据冲突?分享一款神器

本文始发于微信公众号(数据库开发):如何解决数据冲突?分享一款神器

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年7月20日05:55:28
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   如何解决数据冲突?分享一款神器http://cn-sec.com/archives/312671.html

发表评论

匿名网友 填写信息