博客 数据同步的一些常用方法和应用场景

数据同步的一些常用方法和应用场景

   数栈君   发表于 2023-05-30 16:34  714  0

大数据平台是一个集合数据融合、清洗、处理的地方,是大数据开发工程师完成数据开发的地方,大数据开发工程师主要完成的开发任务是离线开发,实时开发,数据同步等,但是离线开发和实时开发的前提条件是需要完成数据同步。

数据同步分为批量同步和实时同步两种方式:

批量同步是指通过定义好的规范接口API和基于动态链接库的方式直接连接业务库,比如ODBC/JDBC等规定了统一的标准接口,不同的数据库基于这套标准提供规范的驱动,从而支持完全相同的函数调用和SQL实现。比如经常使用的Sqoop就是采取这种方式进行批量数据同步的。数据同步时间:随着业务规模的增长,数据同步花费的时间会越来越长,无法满足下游数仓生产的时间要求。

实时同步是指通过日志解析,即解析数据库的变更日志,比如MySQL的Binlog日志,Oracle的归档日志文件。通过读取这些日志信息,收集变化的数据并将其解析到目标存储中即可完成数据的实时同步。这种读操作是在操作系统层面完成的,不需要通过数据库,因此不会给源数据库带来性能上的瓶颈。

实时同步或者实时采集有2种方式,基于binlog的日志解析和间隔轮询,

Binlog日志解析数据同步技术,实时采集本质是通过读取数据库中的日志文件,比如MySQL Binlog文件,首先需要数据库开启binlog功能,而后插件通过解析Binlog文件,逐条读取用户Insert、Update、Delete操作(此处以MySQL为例,不同数据库对应不同的操作类型),将其以流式数据的方式记录在Kafka中,供后续Flink进行消费。实时采集的优点是读取压力小,数据准确,缺点是需要管理员手动开启日志服务才可使用。阿里开源的组件Canal支持从日志中解析变更之后同步至其它数据库。

间隔轮训是通过JDBC发起查询请求,通过短间隔的查询数据的方式来达到一个近似实时采集的功能。间隔轮训优点是不需要手动开启日志服务,缺点是间隔轮训间隔过短且轮训数据量大时,容易给服务器带来较高的负担。

另外oracle 还可以基于归档日志生成数据同步,oracle 的OGG 数据同步,Oracle Golden Gate 即为OGG数据同步,GoldenGate公司成立于2007年,专注于数据同步领域,是实现数据同步技术的领导者。2009年被Oracle收购,通过分析Oracle redo log分析,生成sql,在相应的灾备环境应用来实现容灾,支持多种复制方式,支持单向、多向、广播、合并、级联。支持Oracle、DB2、SQL Server、Sybase、MySQL、Teradata等各种数据库平台。Goldengate可以和oracle数据库实现无缝结合,充分利用oracle的rman,data pump,exp/imp,在保证数据一致性的情况下,可以高速地实现数据初始化。

附录:

Oracle的binlog(归档日志)和redo log(重做日志)的区别:

redo log日志是lgwr进程在从oracle实例中的redo log  buffer 中写入的,是循环利用的,归档日志是当数据库在归档模式下,一个redo log file写满以后由ARcn进程将重做日志内容备份到归档日志下,因此,重做日志是一定有的,归档日志不一定有。

免责申明:

本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!

《数据治理行业实践白皮书》下载地址:https://fs80.cn/4w2atu

《数栈V6.0产品白皮书》下载地址:
https://fs80.cn/cw0iw1

想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:
https://www.dtstack.com/?src=bbs

同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:
https://github.com/DTStack

0条评论
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

最新活动更多
微信扫码获取数字化转型资料
钉钉扫码加入技术交流群