基于mysql做实时计算_一种基于MySQL的流式实时数据同步系统的制作方法

22122891186352.gif

本发明公开一种基于MySQL的流式实时数据同步系统,涉及数据通信技术领域。

背景技术:

数据分析特别是实时数据分析,已经越来越多的成为各行各业的分析要求与标准。例如零售行业可能希望通过线下POS数据与实时门店客流流量的进行实时结合与分析,实现商品销售,销量,总类等等的实时预测;在线广告平台期望通过广告(Impression)总类,数据量以及基于时间的点击(Click)量,计算实时的广告转化率(Conversion Rate);物联网的用户想通过实时分析线下的状态设备与设备采集的数据,进行后台的计算与预判等等。

纵观这些业务系统,从数据流的角度看,数据架构可以分为前后端两个部分。前端为业务数据与日志收集系统,其中业务数据系统一般都是利用关系型数据库实现,例如MySQL,PostgreSQL,后端为数据分析与处理系统,例如ElasticSearch搜索引擎,Redshift数据仓库,基于S3的Hadoop系统等等,或者基于Spark Stream的实时分析后端。

实时数据分析的首要条件是实现实时数据同步,即从上述前端系统到后端系统的数据同步。具体来讲主要包含两个要求1)实时,2)异构数据源的增量同步。实时的要求是前后端系统的实时数据ETL的过程,需要根据业务需求,越快越好。异构数据源的增量同步是指,前端产生的增量数据可以无缝的同步到后端的数据系统。针对MySQL,MySQL的表结构的存储不能简单的通过复制操作实现数据同步,现有做法是通过应用程序双写的架构,利用应用逻辑实现,但是要保证数据一致性相对复杂,而且架构扩展相对比较困难。而本发明提供一种基于MySQL的流式实时数据同步系统,通过MySQL的Binlog实时同步数据变化,避免了对数据库的侵入操作,通过引入Kafka,解耦并提高了系统扩展性,使大并发成为可能,利用elasticsearch可以实时的实现数据分析,监控,告警等功能。

技术实现要素:

本发明针对现有技术的问题,提供一种基于MySQL的流式实时数据同步系统,具有通用性强、实施简便等特点,具有广阔的应用前景。

本发明提出的具体方案是:

一种基于MySQL的流式实时数据同步系统,包括Mysql、Maxwell工具、Kafka及Elasticsearch,

Mysql利用binlog实时记录数据更新,

Maxwell工具解析MySQL binlog的实时数据,同步实时数据到Kafka中,Kafka利用KafkaConntor将实时数据同步到ElasticSearch中,Elasticsearch对实时数据进行数据分析和监控。

所述的系统中binlog使用Row格式进行数据更新,实时的反映行级别的数据变化。

所述的系统中利用Maxwell工具佯装为MySQL Slave,抽取出Binlog的日志文件,并把实时数据变化注入到实时流式数据管道中,在实时流式数据管道后端对变化的Binlog的日志文件,进行消费与数据处理,同步到Kafka中。

所述的系统中KafkaConntor利用standalone模式或distributed模式实现Kafka内的数据实时同步到ElasticSearch中。

所述的系统中利用Elasticsearch和Kibana结合对数据进行数据分析和监控。

一种基于MySQL的流式实时数据同步方法:Mysql利用binlog实时记录数据更新,

利用Maxwell工具解析MySQL binlog的实时数据,并同步实时数据到Kafka中,

利用Kafka的KafkaConntor将实时数据同步到ElasticSearch中,

利用Elasticsearch对实时数据进行数据分析和监控。

所述的方法中规定binlog使用Row格式进行数据更新,实时的反映行级别的数据变化。

所述的方法中利用Maxwell工具佯装为MySQL Slave,抽取出Binlog的日志文件,并把实时数据变化注入到实时流式数据管道中,在实时流式数据管道后端对变化的Binlog的日志文件,进行消费与数据处理,同步到Kafka中。

所述的方法中利用KafkaConntor的standalone模式或distributed模式实现Kafka内的数据实时同步到ElasticSearch中。

所述的方法中利用Elasticsearch和Kibana结合对数据进行数据分析和监控。

本发明的有益之处是:

本发明提供一种基于MySQL的流式实时数据同步系统,包括Mysql、Maxwell工具、Kafka及Elasticsearch,Mysql利用binlog实时记录数据更新,Maxwell工具解析MySQL binlog的实时数据,同步实时数据到Kafka中,Kafka利用KafkaConntor将实时数据同步到ElasticSearch中,Elasticsearch对实时数据进行数据分析和监控;本发明系统通过MySQL的Binlog实时同步数据变化,避免对数据库的侵入操作,通过引入Kafka,解耦并提高了系统扩展性,使大并发成为可能,通过elasticsearch,可以实时的实现数据分析,监控,告警等功能。

附图说明

图1是Binlog数据同步框架示意图;

图2是本发明系统框架示意图;

图3本发明方法流程示意图。

具体实施方式

本发明提供一种基于MySQL的流式实时数据同步系统,包括Mysql、Maxwell工具、Kafka及Elasticsearch,

Mysql利用binlog实时记录数据更新,

Maxwell工具解析MySQL binlog的实时数据,同步实时数据到Kafka中,Kafka利用KafkaConntor将实时数据同步到ElasticSearch中,Elasticsearch对实时数据进行数据分析和监控。

同时提供与上述系统相对应的一种基于MySQL的流式实时数据同步方法。

下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。

数据架构的前端为Mysql,后端为Elasticsearch,本发明系统包括:

Mysql,Mysql binlog记录Mysql sever层维护的二进制日志文件,主要是用来记录对mysql数据更新或潜在发生更新的SQL语句,并以"事务"的形式保存在磁盘中,可以用来查看数据库的变更历史,比如具体的时间点所有的SQL操作,数据库增量备份和恢复,比如增量备份和基于时间点的恢复),Mysql的复制,主数据库的复制、主从数据库的复制等;

Maxwell工具能够读取、解析MySQL binlog,将行更新以json格式发送到Kafka,可佯装成MySQL Server的从库,接收binlog events,然后根据schemas信息拼装,支持ddl,xid,rows等各种event;

Kafka的Kafka Connect可以将完整的数据库注入到Kafka的Topic中,或者将服务器的系统监控指标注入到Kafka,KafkaConnect的Source负责导入数据到Kafka,Sink负责从Kafka导出数据;

Elasticsearch是Lucene构建的开源、分布式、RESTful接口的全文搜索引擎,还是一个分布式文档数据库,每个字段的数据均可被搜索,可以在极短的时间内存储、搜索和分析大量的数据。

利用本发明系统或方法进行数据同步时,

MySQL的主库(Master)对数据库的任何变化(创建表,更新数据库,对行数据进行增删改),都以二进制文件的方式记录与主库的binlog的日志文件中,从库的IO Thread异步地同步Binlog文件并写入到本地的Replay文件,SQL Thread再抽取Replay文件中的SQL语句在从库进行执行,实现实时数据更新,MySQL Binlog支持多种数据更新格式包括Row,Statement,或者mix即Row和Statement的混合,优选Row格式,可以更方便更加实时的反映行级别的数据变化;

利用Maxwell工具佯装成MySQL Slave,抽取出Binlog的日志文件,并把数据变化注入到实时的流式数据管道中。我们在管道后端对Binlog的变化日志,进行消费与必要的数据处理同步到Kafka中,还可到其他异构数据源中比如S3(EMR)等等;

数据进入Kafka后,可以通过KafkaConnector将Kafka中的数据加载到ElasticSearch中。

Kafka Connect有两种工作模式,在standalone模式中,所有的worker都在一个独立的进程中完成;distributed模式具有高扩展性,以及提供自动容错机制。你可以使用一个group.ip来启动很多worker进程,在有效的worker进程中它们会自动的去协调执行connector和task,如果你新加了一个worker或者挂了一个worker,其他的worker会检测到然后在重新分配connector和task;

使用Standalone模式时:

可以通过confluent log connect查看对应日志;

使用Kafka Connector将数据同步到ElasticSearch,可以结合Kibana,添加对应的索引,实时查看数据变化,进行数据监控。

上述过程中,本发明系统或方法通过MySQL的Binlog实时同步数据变化,避免对数据库的侵入操作,通过引入Kafka,解耦并提高了系统扩展性,使大并发成为可能,通过elasticsearch,可以实时的实现数据分析,监控,告警等功能。

以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值