简介
DBSyncer(简称dbs)是一款开源的数据同步中间件,提供MySQL、Oracle、SQL Server、PostgreSQL、Elasticsearch(ES)、Kafka、File、SQL等同步场景。支持上传插件自定义同步转换业务,提供监控全量和增量数据统计图、应用性能预警等。
特点
- 组合驱动,自定义库同步到库组合,关系型数据库与非关系型之间组合,任意搭配表同步映射关系
- 实时监控,驱动全量或增量实时同步运行状态、结果、同步日志和系统日志
从开源项目中下载zip包,解压安装包,Window执行bin/startup.bat,Linux执行bin/startup.shStart successfully!代表启动成功,注意如果是高版本的jdk可能会报错,切换为jdk8来启动!访问:http://localhost:18686/
数据同步
这里以mysql > elasticsearch为例也是最常见的场景
mysql配置
注意:mysql的binlog配置一定要设置为Row,在mysql的配置文件中
binlog_format=ROW
1.创建一个mysql的表这里以一个t_user表为例CREATE TABLE `t_user` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID,主键自增',
`name` varchar(50) NOT NULL COMMENT '用户姓名',
`height` int(11) DEFAULT NULL COMMENT '用户身高(单位:厘米)',
`age` tinyint(3) unsigned DEFAULT NULL COMMENT '用户年龄',
`email` varchar(100) DEFAULT NULL COMMENT '用户邮箱',
`address` varchar(255) DEFAULT NULL COMMENT '用户详细地址',
`phone` varchar(20) DEFAULT NULL COMMENT '用户手机号码',
`hobby` varchar(255) DEFAULT NULL COMMENT '用户兴趣爱好',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '记录更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `idx_email` (`email`),
KEY `idx_phone` (`phone`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户信息表';
INSERT INTO `t_user` (`id`, `name`, `height`, `age`, `email`, `address`, `phone`, `hobby`, `create_time`, `update_time`) VALUES (1, '全量同步-1', 1, 1, 'dbs@qq.com', '北京市', '13333333333', '没有爱好', '2025-06-30 15:14:50', '2025-06-30 15:14:50');
2.创建一个ES中创建一个user_index的索引
PUT /user_index
{
"mappings": {
"properties": {
"id": {"type": "integer", "index": false},
"name": {
"type": "text",
"fields": {"keyword": {"type": "keyword"}}
},
"height": {"type": "float"},
"age": {"type": "short"},
"email": {"type": "keyword"},
"address": {"type": "text"},
"phone": {"type": "keyword"},
"hobby": {
"type": "text",
"fields": {"keyword": {"type": "keyword"}}
},
"create_time": {"type": "long"},
"update_time": {"type": "long"}
}
},
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0
}
}
配置DBSyncer同步任务
映射 关系注意主键id 也可以通过条件同步指定条件数据因为选择的是全量同步,所以说启动以后,同步完成任务就停止了,停止以后,我们把任务修改为增量同步,来同步增量的任务即可设置为增量以后 启动任务,后续的数据就会自动同步了
性能测试
阅读原文:原文链接
该文章在 2025/7/3 14:27:56 编辑过