暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
分布式异构数据库数据同步工具
1092
16页
2次
2020-05-06
5墨值下载
软件学报 ISSN 1000-9825, CODEN RUXUEW E-mail: jos@iscas.ac.cn
Journal of Software,2019,30(3):684699 [doi: 10.13328/j.cnki.jos.005694] http://www.jos.org.cn
©中国科学院软件研究所版权所有. Tel: +86-10-62562563
分布式异构数据库数据同步工具
徐梓荐
1,2
,
1,2
,
1,2
1
(教育部数据工程与知识工程重点实验室(中国人民大学),北京 100872)
2
(中国人民大学 信息学院,北京 100872)
通讯作者: 张孝, E-mail: zhangx iao@r uc.edu .cn
: 一般而言,读写分离技术可以解决当前大数据环境下的读写速度失配的部分问题,但是现有的读写分离
技术主要是针对同构数据库的解决方案.由于存储结构的不一致,由行式存储数据库和列式存储数据库构成的异构
分布式数据库系统相较于同构分布式数据库系统在数据同步的过程中就会面临格式转换、同步速度不匹配等诸
多难题.提出了基于 MySQL 二进制日志(Binlog)进行 SQL 还原的方法 TD-Reduction,设计并实现了 Binlog 解析器
BinParser Binlog 还原器 BinReducer,它们可以基于 Mixed 格式的 Binlog,针对不同的事件(event)进行日志的解析,
并依据相应的规则进行还原,生成可执行的 SQL 语句.综合以上技术,实现了一款分布式数据库数据同步工具
Cynomys.在实验环境中,Cynomys 表现出较好的性能.该方法适用于所有具有类似 Binlog 机制的其他异构数据库之
间进行数据同步.
关键词: 数据同步;读写分离;SQL 还原
中图法分类号: TP311
中文引用格式: 徐梓荐,叶盛,张孝.分布式异构数据库数据同步工具.软件学报,2019,3 0(3):684699. http://www.jos.org.cn/
1000-9825/5694.ht m
英文引用格式: Xu ZJ, Ye S, Zhang X. Data synchronization tool for distributed heterogeneous database. Ruan Jian Xue Bao/
Journal of Software, 2019,30(3):684699 (in Chinese). http://www.jos.org.cn/1000 -9825/5694.h tm
Data Synchronization Tool for Dis tribute d Heterogeneou s Database
XU Zi-Jian
1,2
, YE Sheng
1,2
, ZHANG Xiao
1,2
1
(Key Laboratory of Data Engineering and Knowledge Engineering of the Ministry of Education (Renmin University of China), Beijing
100872, China)
2
(School of Information, Renmin Un iversity of China, Beijing 100872, China)
Abstra ct : In general, the read-write separation technology can solve some of the problems on mismatch between read and write in the
current big data environment, but most of the current r ead-write separation technology are prepared for homogeneous d atabase. Due to the
inconsistent storage structure, heterogeneous distributed database systems composed of a row storage database and a columnar storage
database will face many difficulties like format conversion and mismatch of synchronization speed in d ata synchronization compared to a
homogeneous distributed database system. This study proposes the use of MySQL binary log to perform the TD-Reduction of SQL. It
designs and implements Binlog parser BinParser and Binlog restorer BinReducer, which based on the mixed format. Different events
perform log parsing and restoring according to the corresponding rules to generate executable SQL statements. Based on the above
techniques, this study has implemented Cynomys, a distributed database data synchronization tool. In the experimental environment,
基金项目: 国家重点研发计划(2018YFB1004401); 国家自然科学基金(61732014); 北京市科技计划(Z171100005117002)
Foundation item: National Key Research and Development Program of China (2018YFB1004401); National Natural Science
Foundation of China (61732014); Beijing Municipal Sci ence and Technology Project (Z171100005117002)
本文由智能数据管理与分析技术专刊特约编辑樊文飞教授、王国仁教授、王朝坤副教授推荐.
收稿时间:
2018-07-20; 修改时间: 2 018-09-20; 采用时间: 2018-11-01
徐梓荐 :分布式异构数据库数据同步工具
685
Cynomys has shown sound performance. The method is suit able for data synchronization between all other heterogeneous databases with
a similar mechanism like Binlog.
Key words: d ata synchronization; read/wri te separ ation; SQL r eduction
关系型数据库的数据存储方式一般有行式存储和列式存储两种.对于行存储数据库,支持海量数据的高效
更新,然而,当需要分析数据库中隐含的信息时,就可能会涉及一些针对数据库表中某一或某些属性上的聚合,
而这是行式存储数据库的不足.列式存储数据库对于海量数据更新没有很高的处理效率,而对数据分析,特别是
在某些属性上进行分析,往往有很好的查询优势.如果能够构建由行列数据库共同组成的分布式数据库系统,
行存储数据库接受来自业务线的数据,再通过数据同步将这些数据同步到列存储数据库中进行数据分析,就可
以弥补数据库的上述不足,为真实的业务场景提供一个优化的解决方案.
本文以 MySQL 为对象,开展基于该数据库的数据同步技术研究工作,主要实现了一款基于数据库 Binlog
的分布式数据库中的数据同步工具 Cynomys. 鉴于当前并没有一种针对行存储数据库到列存储数据库的实时
同步工具,本文提出了一种基于 SQL 还原的实现方法,利用标准的 SQL 语句避免底层数据库引擎差异可能导致
的无法进行数据库同步的问题.
本文的主要贡献包括:(1) 设计并实现了 Binlog 解析器 BinParser 以及还原器 BinReducer, 解析器解析并获
Binlog 的日志信息,还原器将 BinParser 解析的日志内容还原为可执行的 SQL 语句;(2) 提出了基于 BinParser
BinReducer 的异构分布式数据同步方法 TD-Reduction,并开发了基于 TD-Reduction 的数据同步工具
Cynomys;( 3) 针对 ColumnStore 的存储结构提出了延迟提交(delay commit)的优化技术;(4) 本文针对 Cynomys
的性能、功能等方面做了大量实验,结果表明该工具有效且能够正常运行.
1 相关工作
对于分布式架构的数据库及其数据同步解决方案,研究人员提出了若干种体系架构以及基于此的各类问
题的解决方案,:Stonebraker 提出了一种广域的分布式数据库系统
[1]
,Chen 等人提出了一种基于分布式数据库
的在线数据分割方法
[2]
,Google 开发了可扩展、多版本、全球分布式和同步复制的数据库 Spa nne r
[3]
,Wang 等人
提出了基于中间件的分布式数据同步技术
[4]
.
在商用数据库中,Oracle SAP HANA 都提出了解决异构数据存储的方案.其中,Oracle 在其 12c 版本中加
入了解决异构数据存储问题的新特性 In-memory Option
[5]
. 12c 版本以前,Oracle 所有的数据都是以行形式进
行存储的.该特性引入后,Oracle 允许用户将指定的表空间内所有的表以列形式存储在单独开辟的一块内存空
In-memory Area
[6]
,从而在查询分析数据时,对涉及某些属性上聚合的查询操作速度加快,并且这种双格式
架构多占用的内存开销被控制在单一格式架构内存开销的 20%以内
[7]
.SAP HANA 是混合型的内存数据库,
同时支持行存储以及列存储
[8]
. Oracle 不同的是,它需要在创建新表时指定行式或列式存储,两种不同的存储
架构使用不同的存储引.这两种商用数据库的方案是针对行列存储数据库有不同的优势所提出的数据存储
方案, Cy nomy s 则是将行存储数据库中的数据实时同步或者迁移到列存储数据库中,与以上两种异构存储的
方案定位不同.
当前,常规意义上的数据迁移已经发展得较为成熟,解决方案也已经较为明确,例如基于负载均衡的数据迁
移方法
[9]
.而数据同步可以看做是实时的数据迁移过程.一般的数据同步可以基于数据库日志
[10,11]
、触发器
[12]
,其中,以日志法最具代表性和可行性.然而由于不同数据库的日志格式差别很大,可供日志分析的接口也有
所不同,所以基于日志法的数据同步也局限于同种数据库,甚至要求版本相同或相近,这限制了数据同步技术的
发展.有人曾提出使用 SQL 还原的方法
[13]
,但该方法是基于 SQL Server 触发器实现的,人工干预程度大、维护
困难.Cynomy s 的基于标准 SQL 语句进行数据同步的方法受到该工作的启发.
在分布式环境下,许多数据库或分布式系统如 Google Chubby,MegaStore,Spanner,Hadoop 中的 Zookeeper
,都依赖 Paxos 算法
[14]
来保证不同结点之间事务的一致性.Cynomy s 是一款数据同步工具,是从主数据库(行存
of 16
5墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文档被以下合辑收录

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜