tungsten replicator 代码的修改
来源:互联网 发布:建信优化基金530oo5 编辑:程序博客网 时间:2024/05/16 05:42
Tungsten Replicator是一种MySQL复制引擎,支持跨数据库系统的复制,可以把mysql的数据同步到mongodb、oracle、hdfs等。
我主要用tungsten replicator同步数据到mongodb,在使用的过程中遇到一些问题,主要包括:
1、自动生成索引名称过长。
当mysql中有update操作的时候,会根据mysql中的表结构在mongodb中建索引,索引名称为key字段名拼接在一起。如果mysql中没有key,且字段较多,可能会造成索引名称过长,超过mongodb的索引名称长度限制。
2、不支持mysql5.7中新增的json格式。
mysql5.7中的json格式的数据是按照一定的编码方式编码后存储的,在binlog中是看不出数据的样子的,tungsten replicator在解析binlog时遇到json格式的数据会报错。
3、不支持在同步到mongodb的表上添加新的字段。
比如mysql中有两个字段,同步到mongodb时也会有三个字段(包括mongodb的_id字段),mongodb比较自由,没有固定的表结构,如果我想在这个同步表上添加其他字段,在mysql上做update操作后会直接覆盖掉同步的数据,新增加的字段就没了。这样不利于利用原有的数据表。
因此我和我们组的一个实习生对tungsten replicator代码进行了一些修改:
1、修改索引名称生成规则,用字段名称的首字母拼接起来组成索引名,大大缩短了索引的长度,基本上就不会达到mongodb的索引名称长度限制。
2、阅读mysql5.7的源代码,了解json格式数据的编码方式,然后解码成字符串。同步到mongodb后也是字符串。
3、修改写入mongodb时的代码,同步时只会覆盖mysql中有的字段,新增的字段保留。
经过测试,基本上没有什么问题,如果需要使用这些修改的功能,可以到github上clone后自己编译使用,地址:https://github.com/WangXiangUSTC/tungsten-replicator.git,编译需要下载gson-2.6.2.jar,把这个jar拷到tungsten-replicator/replicator/lib目录下再编译,编译方法和要求参考readme。
ps(大部分是那个牛逼的实习生改的)
0 0
- tungsten replicator 代码的修改
- tungsten-replicator
- tungsten-replicator 源码
- Tungsten Replicator学习总结
- Tungsten Replicator学习总结
- 通过tungsten replicator实现mysql多主一从的备份架
- tungsten-replicator问题与解决方法
- tungsten-replicator 实现mysql 与mysql同步
- Spark的下一代引擎-Project Tungsten启示录
- 基于tungsten监测mysql数据修改系统介绍
- Ultimaker对比Makerbot Replicator:好的不是一点点
- tungsten API 同步日志清除Binlog失败的BUG解决
- 使用tungsten-replicatior实现MySQL之间的主从复制
- 56:Spark中的Tungsten内存和CPU的优化使用
- 需修改的代码
- 修改代码的艺术
- 常用的修改代码
- 修改别人的代码
- React 高阶组件
- 1613-3-傅溥衍 总结《2016年11月26日》【连续第五十七天总结】
- ReactNative开发工具之Atom
- tq210-kernel 3.0.8 NFS+文件系统
- Java反射分析.md
- tungsten replicator 代码的修改
- 冒泡排序法
- Intellij idea Hadoop 开发
- 数据结构--用C++实现顺序表
- 链表(C++)
- oracle 表数据被删 操作时误删除 误删数据 恢复方法
- Ubuntu下安装MySQL服务
- Ubuntu系列-Build first snap app--hello snap
- oracle 12Cwindows下安装使用基本