推荐一款开源的数据同步工具,好用到爆!

MySQLNoSQL数据库

在开发项目的时候,我们经常会遇到数据同步的场景。例如将开发环境的数据库表同步到测试环境,将MySQL中的数据同步到ES中。今天给大家分享一款好用的数据同步工具DBSyncer,自带可视化界面,希望对你有所帮助!

最近建了一些工作内推群,各大城市都有,欢迎各位HR和找工作的小伙伴进群交流,群里目前已经收集了不少的工作内推岗位。

扫码加苏三的微信:li_su223,备注:所在城市,即可进群。

picture.image

简介

DBSyncer是一款开源的数据同步工具,支持MySQL、Oracle、PostgreSQL、Elasticsearch(ES)、Kafka、File等同步场景,目前在Gitee上已有3.1k+Star

DBSyncer具有如下特性:

  • 组合驱动:支持自定义库与库的同步组合,例如可以将MySQL中的数据同步到ES。
  • 实时监控:支持全量同步和增量同步,可以监控同步运行状态、结果、同步日志和系统日志。
  • 开发插件:支持编写代码自定义转化同步逻辑。

下面是DBSyncer使用过程中的效果图,功能还是挺实用的!

picture.image

安装

使用Docker来安装DBSyncer是非常方便的,我们将采用此种方式。

  • 首先通过如下命令下载镜像;
  
docker pull registry.cn-hangzhou.aliyuncs.com/xhtb/dbsyncer:latest  

  • 下载完成后通过如下命令运行对应的容器;
  
docker run -p 18686:18686 --name=db-syncer \  
-e TZ="Asia/Shanghai" \  
-v /mydata/db-syncer/data:/app/dbsyncer/data \  
-v /mydata/db-syncer/plugins:/app/dbsyncer/plugins \  
-d registry.cn-hangzhou.aliyuncs.com/xhtb/dbsyncer:latest  

  • 容器运行后,就可以访问DBSyncer的Web控制台了,默认账号密码为 admin:admin ,访问地址:http://192.168.3.101:18686

picture.image

使用

这里将以电商系统中商品表的数据同步为例,来介绍下DBSyncer的使用。

MySQL数据同步

  • 使用的简化版商品表结构如下;
  
CREATE TABLE`product`  (  
`id`bigint(20) NOTNULL AUTO\_INCREMENT,  
`title`varchar(255) CHARACTERSET utf8 COLLATE utf8\_general\_ci NULLDEFAULTNULL,  
`sub\_title`varchar(255) CHARACTERSET utf8 COLLATE utf8\_general\_ci NULLDEFAULTNULL,  
`price`decimal(10, 2) NULLDEFAULTNULL,  
`pic`varchar(255) CHARACTERSET utf8 COLLATE utf8\_general\_ci NULLDEFAULTNULL,  
  PRIMARY KEY (`id`) USING BTREE  
) ENGINE = InnoDB AUTO\_INCREMENT = 2CHARACTERSET = utf8 COLLATE = utf8\_general\_ci ROW\_FORMAT = Dynamic;  

  • 这里创建两个数据库 mall\_devmall\_testmall\_dev 中的product表包含商品数据, mall\_test 中的不包含商品数据,我们将把 mall\_dev 中的数据同步到 mall\_test 中去;

picture.image

  • 我们需要在DBSyncer中添加好 mall\_devmall\_test 对应的连接;

picture.image

  • 然后再添加驱动,设置好数据源与目标源;

picture.image

  • 然后配置好字段的映射关系,如果是所有字段都需要同步的话全选即可;

picture.image

  • 之后点击驱动右上角的启动按钮即可实现数据同步,同步成功后在数据库中也可以看到对应的数据了。

picture.image

MySQL同步到ES

  • 在同步数据到ES之前,我们需要先创建好product对应的索引;
  
PUT /product\_index  
{  
"mappings": {  
    "properties": {  
       "id": {  
        "type": "long"  
      },  
      "title": {  
        "type": "text"  
      },  
      "sub\_title": {  
        "type": "text"  
      },  
      "pic": {  
        "type": "text"  
      },  
      "price": {  
        "type": "double"  
      }  
    }  
  }  
}  

picture.image

  • 然后在DBSyncer中添加ES对应的连接,如果ES未设置密码的话随便输一个就行;

picture.image

  • 之后再添加一个从MySQL同步到ES的驱动;

picture.image

  • 然后配置好驱动中的字段映射关系,注意配置好主键;

picture.image

  • 点击驱动右上角的启动按钮进行数据同步;

picture.image

  • 同步成功后可以在ES中查询到对应的数据。

picture.image

总结

今天给大家分享了DBSyncer这款可视化数据同步工具的使用,主要是实现了MySQL和ES之间的全量同步,当然DBSyncer还能支持增量同步,以及通过插件自定义同步逻辑,感兴趣的小伙伴可以研究下!

项目地址

https://gitee.com/ghi/dbsyncer


最后欢迎加入苏三的星球,你将获得:100万QPS短链系统、复杂的商城微服务系统、苏三AI项目、刷题吧小程序、秒杀系统、商城系统、秒杀系统、代码生成工具等8个项目的源代码、开发教程和技术答疑。

系统设计、性能优化、技术选型、底层原理、Spring源码解读、工作经验分享、痛点问题、面试八股文等多个优质专栏。

还有1V1免费修改简历、技术答疑、职业规划、送书活动、技术交流。

扫描下方二维码,可以优惠30元:

picture.image

只有20张优惠券, 数量有限,先到先得。

目前星球已经更新了5800+篇优质内容,还在持续爆肝中.....

星球已经被官方推荐了3次,收到了小伙伴们的一致好评。戳我加入学习,已有1900+小伙伴加入学习。

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
云原生数据库 veDB 核心技术剖析与展望
veDB 是一款分布式数据库,采用了云原生计算存储分离架构。本次演讲将为大家介绍火山引擎这款云原生数据库的核心技术原理,并对未来进行展望。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论