数据同步中间件DBSyncer

  • 1. 数据同步概述
  • 2. DBSyncer介绍
  • 3. DBSyncer特点
  • 4. DBSyncer应用场景
  • 5. DBSyncer安装配置
    • 5.1 创建项目
    • 5.2 自定义插件
    • 5.3 配置页面
  • 6. DBSyncer实现验证
  • 6. DBSyncer存在问题

1. 数据同步概述

在常见的业务开发场景中数据迁移,增量或者全量数据同步,在迁移或者同步过程中还会涉及到字段映射,默认值,还有可能存在不同数据库之间数据迁移,mysql,Oracle,SQLServer,ES,Kafka等等很多场景,虽然使用频率有限,但是场景很多,所以推荐几款数据同步开源组件DBSyncer,DataX,本文主要介绍DBSyncer使用及问题。

DataX链接
datax-web链接
DBSyncer链接

2. DBSyncer介绍

DBSyncer是一款开源的数据同步中间件,提供Mysql、Oracle、SqlServer、Elasticsearch(ES)、SQL(Mysql/Oracle/SqlServer)等同步场景。支持上传插件自定义同步转换业务,提供监控全量和增量数据统计图、应用性能预警等。

3. DBSyncer特点

1.组合驱动,自定义库同步到库组合,关系型数据库与非关系型之间组合,任意搭配表同步映射关系。

2.实时监控,驱动全量或增量实时同步运行状态、结果、同步日志和系统日志。

3.开发插件,自定义转化同步逻辑

4. DBSyncer应用场景

连接器 数据源 目标源 支持版本(包含以下)
Mysql ✔️ ✔️ 5.7.19以上
Oracle ✔️ ✔️ 10g以上
SqlServer ✔️ ✔️ 2008以上
ES ✔️ ✔️ 6.X以上
SQL ✔️
最近计划 kafka(设计中)、Redis

5. DBSyncer安装配置

5.1 创建项目

配置步骤
1.安装JDK 1.8(省略详细)
2.下载安装包DBSyncer-1.0.0-Beta.zip(也可手动编译)
3.解压安装包,Window执行bin/startup.bat,Linux执行bin/startup.sh
4.打开浏览器访问:http://127.0.0.1:18686
5.账号和密码:admin/admin

其实没那么麻烦,直接通过idea从gitee上拉去代码,找到dbsyncer-web中Application启动完成,按照上述访问地址,用户名与密码访问。

启动完成状态

5.2 自定义插件

创建插件
对应项目:dbsyncer-plugin
创建路径:CrmCustomerConvertServiceImpl
org.dbsyncer.plugin.service.CrmCustomerConvertServiceImpl

package org.dbsyncer.plugin.service;import org.dbsyncer.common.spi.ConvertService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;import java.util.List;
import java.util.Map;/*** Demo class** @author zrj* @date 2021/10/31*/
@Component
public class CrmCustomerConvertServiceImpl implements ConvertService {private final Logger logger = LoggerFactory.getLogger(getClass());/*** 版本号*/@Value(value = "${info.app.version}")private String version;@Overridepublic void convert(List<Map> source, List<Map> target) {logger.info("CRM客户插件正在处理同步数据");logger.info("CRM客户插件正在处理同步数据,源头数据:{}", source);logger.info("CRM客户插件正在处理同步数据,目标数据:{}", target);target.forEach(map -> {map.put("update_id", "20211119001");map.put("create_id", "20211119002");map.put("create_name", "dbsyncer01");map.put("update_name", "dbsyncer02");//map.put("deleted", false);});logger.info("CRM客户插件正在处理同步数据,调整数据:{}", target);}@Overridepublic void convert(String event, Map source, Map target) {logger.info("CRM客户插件正在处理同步数据,事件:{},数据:{}", event, source);}@Overridepublic String getVersion() {return "1.1.0-Beta";}@Overridepublic String getName() {return "CrmCustomer";}
}

配置插件
驱动管理-配置驱动-高级配置-插件配置:选择插件

5.3 配置页面

1.驱动管理
驱动管理分两块
添加连接:配置数据源,包括源数据库与目标数据库。
添加驱动:配置的是数据迁移时的数据库信息,过滤映射信息,以及插件中自定义的迁移时逻辑处理。

2.监控页面

监控页面分三块
应用性能:CPU,内存等机器应用参数。
查询数据:执行sql的成功失败记录。
查询日志:数据源配置操作日志。
3.定义插件
插件有什么用?
插件是一种可扩展全量同步和增量同步实现数据转换的技术方式。通过插件可以接收同步数据,自定义同步到目标源的行数据,也能消费数据并实现更多业务场景。

4.参数配置
参数配置包括两块
系统参数:刷新频率。
修改密码:登录密码修改。

6. DBSyncer实现验证

启动执行
完成状态

6. DBSyncer存在问题

MySQL字段类型tinyint转换为null,这个需要手动处理。

数据同步中间件DBSyncer相关推荐

  1. 神州优车开源业界领先的增量数据同步中间件——DataLink

    项目介绍 名称: DataLink['deitə liŋk] 译意: 数据链路,数据(自动)传输器 语言: 纯java开发(JDK1.8+) 定位: 满足各种异构数据源之间的实时增量同步,一个分布式. ...

  2. 推荐一个开源数据同步神器,支持多种数据源和预警功能!

    DBSyncer是一款开源的数据同步中间件,提供MySQL.Oracle.SqlServer.PostgreSQL.Elasticsearch(ES).Kafka.File.SQL等同步场景. 支持上 ...

  3. 微服务之数据同步Porter

    Porter是一款数据同步中间件,主要用于解决同构/异构数据库之间的表级别数据同步问题. 背景 在微服务架构模式下深刻的影响了应用和数据库之间的关系,不像传统多个服务共享一个数据库,微服务架构下每个服 ...

  4. 微服务之数据同步Porter 1

    Porter是一款数据同步中间件,主要用于解决同构/异构数据库之间的表级别数据同步问题. 背景 在微服务架构模式下深刻的影响了应用和数据库之间的关系,不像传统多个服务共享一个数据库,微服务架构下每个服 ...

  5. postgres 把一个表的值转成另一个表的字段名_希望一个数据同步,包治百病

    小姐姐味道[ID:xjjdog] 作者:十年架构,日百亿流量经验,与你分享. 哎!这是一个脏活,而且是个高风险的活. 大多数情况下,应用架构设计不好,引入什么新存储,引入什么DDD,治标不治本,都是扯 ...

  6. Canal监听mysql的binlog日志实现数据同步

    Canal监听mysql的binlog日志实现数据同步 1. canal概述 1.1 canal简介 1.2 技术选型 1.3 原理分析 1.3.1 MySQL主备复制原理 1.3.2 canal原理 ...

  7. mongodb数据同步到elasticsearch的中间件,支持全量,增量,实时同步等多种同步情景。(syncs MongoDB to Elasticsearch in realtime) (Mong

    GitHub - levonmo/mongo-sync-elasticsearch: mongodb数据同步到elasticsearch的中间件,支持全量,增量(新增修改删除),实时同步等多种同步情景 ...

  8. 数据同步的终极解决方案,阿里巴巴开源的Canal框架当之无愧!!

    写在前面 在当今互联网行业,尤其是现在分布式.微服务开发环境下,为了提高搜索效率,以及搜索的精准度,会大量使用Redis.Memcached等NoSQL数据库,也会使用大量的Solr.Elastics ...

  9. 异地多活场景下的数据同步之道 | 珍藏版

    在当今互联网行业,大多数互联网从业者对"单元化"."异地多活"这些词汇已经耳熟能详.而数据同步是异地多活的基础,所有具备数据存储能力的组件如:数据库.缓存.MQ ...

最新文章

  1. 电视机检测大巴徘徊在英格兰的大街上
  2. NavReady的使用
  3. AngularJS从入门到实践(一)
  4. 学过物理的人才能看懂的笑话,你能看明白几个?
  5. IntelliJ IDEA 项目开发中各个目录的关系
  6. 怎样学c++程序语言,如何学好 C++——学习门槛最高的编程语言
  7. 阿里宜搭重磅发布专有云版本、精品应用市场,助力政企数字化转型
  8. linux蓝牙不识别微软鼠标,主编教您win10系统蓝牙鼠标能配对识别但无法使用的具体步骤...
  9. Sky公司的爱丁堡数据中心的能源效率纳入欧盟能效标准
  10. mysql中IFNULL,IF,CASE的区别
  11. JVM 方法调用之动态分派
  12. matlab迭代法求某数平方根,MATLAB平方根法和改进平方根法求解线性方程组例题与程序要点.doc...
  13. java实验报告心得_Java实验报告(一)及总结
  14. 产品经理认证(NPDP)知识体系指南.2017
  15. 修改网站背景图html代码,网站首页顶部添加背景图片的修改代码
  16. 星际争霸2中文版下载 – 即时战略游戏超大作 (繁体含中文语音)
  17. 常用git命令总结大全
  18. 短视频营销的3个重点:KOL化+话题性+深度互动
  19. android 伪终端,伪终端(pty)机制祥解
  20. AI智能电话机器人源码搭建揭秘

热门文章

  1. F28335矩阵键盘的3种工作方式代码及按键消抖讨论(包括利用GPIO输入量化实现按键消抖)
  2. 国产便宜好用的蓝牙耳机有哪些?盘点四大实惠好用的蓝牙耳机
  3. 致《上网记录深度擦除工具》用户的说明
  4. 百度网盘不是会员如何提速
  5. 2021-2027全球与中国IT设备浸入式冷却解决方案市场现状及未来发展趋势
  6. 三菱伺服自动调谐_最大限度地发挥三菱变频器电机的性能(离线自动调谐)(3)...
  7. beanstalkd java使用_PHP使用Beanstalkd实例
  8. 出战卡不足_造成你卡段的五大原因,如果不够重视,你将很难进步
  9. Python学习之路--Flask+MongoDB搭建Restful Server
  10. 浮点运算计算机在线,浮点运算