本发明涉及大数据处理的技术领域,尤其涉及一种基于binlog的数据实时处理方法,以及基于binlog的数据实时处理系统。
背景技术:
在互联网公司,大部分在线业务的数据都是基于mysqld存储的,为了及时掌握业务系统的数据状态,往往需要对时刻变化的业务数据做实时处理和分析。
现有的技术方案如下:
1、在业务系统处理业务逻辑时,把实时变化的数据的做相关运算,并把计算结果持久化存储。其缺陷是:通过业务系统来实现数据分析,这样就把数据分析与业务处理完全耦合在一起了,数据分析与业务逻辑之间相互影响,任何引起数据分析升级的功能,都会对业务处理逻辑带来很大的冲击,业务系统的稳定性问题非常难以保证。
2、通过对存储在mysql中的业务数据使用sql语言做实时分析,为了提升分析结果的实时性,可能需要每分钟甚至几秒钟执行一次。其缺陷是:它对mysql的性能影响非常大,sql语句执行的时间间隔越小,mysql的性能压力会越大,另外mysql在做数据分析的同时,还要应对来自业务系统的读写请求,这样mysql会不堪重负,最终导致对业务系统造成致使的影响,稳定性同样难以保证。
技术实现要素:
为克服现有技术的缺陷,本发明要解决的技术问题是提供了一种基于binlog的数据实时处理方法,其彻底解决了数据分析与在线业务系统以及mysql的耦合性问题,可扩展性以及可维护性较强,非常高效地实现了业务数据的实时同步以及相关处理和分析。
本发明的技术方案是:这种基于binlog的数据实时处理方法,该方法包括以下步骤:
(1)开启mysql的binlog同步机制的行模式,启动mysql后,实时发送binlog数据;
(2)收到binlog同步过来的新增删改数据之后,根据数据的操作类型,对数据做相应的业务处理;
(3)把分析的结果存储到存储系统中,通过数据可视化方法把数据展现出来。
本发明基于mysql的binlog同步机制,从而彻底解决了数据分析与在线业务系统以及mysql的耦合性问题,可扩展性以及可维护性较强,非常高效地实现了业务数据的实时同步以及相关处理和分析。
还提供了一种基于binlog的数据实时处理系统,该系统包括:
binlog同步模块,其配置来开启mysql的binlog同步机制的行模式,启动mysql后,实时发送binlog数据;
数据实时分析模块,其配置来收到binlog同步过来的新增删改数据之后,根据数据的操作类型,对数据做相应的业务处理;
存储展示模块,其配置来把分析的结果存储到存储系统中,通过数据可视化方法把数据展现出来。
附图说明
图1所示为根据本发明的基于binlog的数据实时处理方法的流程图。
具体实施方式
如图1所示,这种基于binlog的数据实时处理方法,该方法包括以下步骤:
(1)开启mysql的binlog(二进制日志,记录对数据发生或潜在发生更改的SQL语句,并以二进制的形式保存在磁盘中)同步机制的行模式,启动mysql后,实时发送binlog数据;
(2)收到binlog同步过来的新增删改数据之后,根据数据的操作类型,对数据做相应的业务处理;
(3)把分析的结果存储到存储系统中,通过数据可视化方法把数据展现出来。
本发明基于mysql的binlog同步机制,从而彻底解决了数据分析与在线业务系统以及mysql的耦合性问题,可扩展性以及可维护性较强,非常高效地实现了业务数据的实时同步以及相关处理和分析。
另外,所述步骤(3)中,存储系统为mysql。
另外,该方法对存储在mysql中的新增业务订单数据做统计分析。
另外,所述新增业务订单数据包括订单量、总流水和客单价。
另外,该方法用于业务数据变化量的实时监控。
另外,所述业务数据变化量包括更新总量、删除总量、和插入总量。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括上述实施例方法的各步骤,而所述的存储介质可以是:ROM/RAM、磁碟、光盘、存储卡等。因此,与本发明的方法相对应的,本发明还同时包括一种基于binlog的数据实时处理系统,该系统通常以与方法各步骤相对应的功能模块的形式表示。使用该方法的系统,该系统包括:
binlog同步模块,其配置来开启mysql的binlog同步机制的行模式,启动mysql后,实时发送binlog数据;
数据实时分析模块,其配置来收到binlog同步过来的新增删改数据之后,根据数据的操作类型,对数据做相应的业务处理;
存储展示模块,其配置来把分析的结果存储到存储系统中,通过数据可视化方法把数据展现出来。
另外,所述存储系统为mysql。
另外,该系统对存储在mysql中的新增业务订单数据做统计分析。
另外,该系统用于业务数据变化量的实时监控。
本发明的有益效果如下:
1.与现有业务系统完全解耦;
2.数据实时性高;
3.对mysql性能的影响小。
以上所述,仅是本发明的较佳实施例,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属本发明技术方案的保护范围。