CN109471892B - 数据库集群数据处理方法及装置、存储介质和终端 - Google Patents
数据库集群数据处理方法及装置、存储介质和终端 Download PDFInfo
- Publication number
- CN109471892B CN109471892B CN201811186872.6A CN201811186872A CN109471892B CN 109471892 B CN109471892 B CN 109471892B CN 201811186872 A CN201811186872 A CN 201811186872A CN 109471892 B CN109471892 B CN 109471892B
- Authority
- CN
- China
- Prior art keywords
- data
- spark
- database cluster
- memory
- query statistics
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种数据库集群数据处理方法及装置、存储介质和终端,所述方法包括:收集业务日志数据;采用Spark Streaming按照预设的周期将所收集的日志数据转换为对应的实体对象;按照预设的分类统计条件将转换得到的实体对象分批次存入对应的多个Spark内存块中;在所述Spark内存块中进行业务数据的查询统计。上述的方案,可以实现超大规模分片数据库集群数据的实时监控,并提高监控效率。
Description
技术领域
本发明涉及数据监控技术领域,具体地涉及一种数据库集群数据处理方法及装置、存储介质和终端。
背景技术
随着公司火车票预订业务的迅速发展壮大,订单等相关数据非常庞大,日数据量达到TB级,PB级别,用一个简单的数据库集群都无法满足数据储存的要求。
超大规模基于主键的分片数据库集群储存方案应运而生。所述超大规模基于主键的分片数据库集群中的分片节点达到了上万台服务器。
但是,对如此大规模的分片数据库集群服务器中存储的数据进行关联查询,跨表统计等本来相对简单的SQL操作,变成了不可能完成的任务。
发明内容
本发明解决的技术问题是如何实现超大规模分片数据库集群数据的实时监控,并提高监控效率。
为解决上述技术问题,本发明实施例提供了一种数据库集群数据处理方法,所述方法包括:
收集业务日志数据;
采用Spark Streaming按照预设的周期将所收集的日志数据转换为对应的实体对象;
按照预设的分类统计条件将转换得到的实体对象分批次存入对应的多个Spark内存块中;
在所述Spark内存块中进行业务数据的查询统计。
可选地,当需要对一个Spark内存块中的业务数据进行查询统计时,所述在所述Spark内存块中进行业务数据的查询统计,包括:
使用Spark SQL从对应的一个Spark内存块中的加载数据,存入所创建的对应的一个临时内存表;
用SQL语句在所创建的所述一个临时内存表中执行业务数据的查询统计操作。
可选地,当需要对多个Spark内存块中的业务数据进行查询统计时,所述在所述Spark内存中进行业务数据的查询统计,包括:
使用Spark SQL从对应的多个Spark内存块中加载数据,存入所创建的对应的多个临时内存表;
用SQL Join语句在所创建的多个临时内存表中执行业务数据的查询统计操作。
可选地,当Spark内存块中的业务数据缺失时,所述在所述Spark内存中进行业务数据的查询统计,包括:
从存储有历史业务数据的数据库集群中查询得到符合条件的业务数据并存储至对应的Spark内存块;
使用Spark SQL从对应的多个Spark内存块中加载数据,存入所创建的对应的多个临时内存表;
用SQL Join语句在所创建的多个临时内存表中执行业务数据的查询统计操作。
可选地,所述数据库集群为Redis集群。
可选地,所述收集业务日志数据,包括:
采用消息队列收集业务日志数据。
本发明实施例还提供了一种数据库集群数据处理装置,所述装置包括:
数据收集单元,适于收集业务日志数据;
数据转换单元,适于采用Spark Streaming按照预设的周期将所收集的日志数据转换为对应的实体对象;
数据保存单元,适于按照预设的分类统计条件将转换得到的实体对象分批次存入对应的多个Spark内存块中;
查询统计单元,适于在所述Spark内存块中进行业务数据的查询统计。
可选地,当需要对一个Spark内存块中的业务数据进行查询统计时,所述在所述Spark内存块中进行业务数据的查询统计,包括:
使用Spark SQL从对应的一个Spark内存块中的加载数据,存入所创建的对应的一个临时内存表;
用SQL语句在所创建的所述一个临时内存表中执行业务数据的查询统计操作。
可选地,当需要对多个Spark内存块中的业务数据进行查询统计时,所述在所述Spark内存中进行业务数据的查询统计,包括:
使用Spark SQL从对应的多个Spark内存块中加载数据,存入所创建的对应的多个临时内存表;
用SQL Join语句在所创建的多个临时内存表中执行业务数据的查询统计操作。
可选地,当Spark内存块中的业务数据缺失时,所述在所述Spark内存中进行业务数据的查询统计,包括:
从存储有历史业务数据的数据库集群中查询得到符合条件的业务数据并存储至对应的Spark内存块;
使用Spark SQL从对应的多个Spark内存块中加载数据,存入所创建的对应的多个临时内存表;
用SQL Join语句在所创建的多个临时内存表中执行业务数据的查询统计操作。
可选地,所述数据库集群为Redis集群。
可选地,所述数据收集单元,适于采用消息队列收集业务日志数据。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述任一项所述的数据库集群数据处理方法的步骤。
本发明实施例还提供了一种终端,包括存储器和处理器,所述存储器上储存有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述任一项所述的数据库集群数据处理方法的步骤。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
上述的方案,通过Spark Streaming按照预设的周期将所收集的日志数据转换为对应的实体对象,按照预设的分类统计条件将转换得到的实体对象分批次存入对应的多个Spark内存块中,并在所述Spark内存块中进行业务数据的查询统计,可以实现海量业务数据的实时监控,提高业务数据的监控效率。
附图说明
图1是本发明实施例中的一种数据库集群数据处理方法的流程示意图;
图2是本发明实施例中的一种数据库集群数据处理装置的结构示意图。
具体实施方式
本发明实施例中的技术方案通过Spark Streaming按照预设的周期将所收集的日志数据转换为对应的实体对象,按照预设的分类统计条件将转换得到的实体对象分批次存入对应的多个Spark内存块中,并在所述Spark内存块中进行业务数据的查询统计,可以实现海量业务数据的实时监控,提高业务数据的监控效率。
为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
图1是本发明实施例的一种数据库集群数据处理方法的流程示意图。如图1所示,一种数据库集群数据处理方法,适于对超大规模分片数据库集群中的数据进行实时监控,其可以包括如下的步骤:
步骤S101:收集业务日志数据。
在具体实施中,所述业务日志数据为根据用户的实际需要对所述用户的业务在运行过程中所发生的事件进行记录所产生的数据。
在本发明一实施例中,在收集业务日志数据时,采用MySQL分片数据库集群进行binlog日志数据的收集操作。其中,在采用MySQL分片数据库集群进行binlog日志数据收集时,可以采用消息队列来收集binlog日志数据,且将MySQL分片数据库集群设置为行(rowlevel)模式,以使得收集到的日志被记录成每一行数据被修改的形式。
步骤S102:采用Spark Streaming按照预设的周期将所收集的日志数据转换为对应的实体对象。
在具体实施中,通过Spark Streaming周期性的获取消息队列中的binlog日志数据,并把每条binlog日志数据转化成为对应的实体对象。换言之,一条binlog日志对应一个实体对象。其中,所述预设的周期可以根据实际的需要进行设置,在此不做限制。
步骤S103:按照预设的分类统计条件将转换得到的实体对象分批次存入对应的多个Spark内存块中。
在具体实施中,在将收集到的日志数据周期性地转换为对应的实体对象之后,可以将转换得到的实体对象再周期性地存储在对应的多个Spark内存块中。其中,将转换得到的实体对象分批次存入对应的多个Spark内存块中的周期可以根据用户的实际需要进行设置。
具体实施中,所述预设的分类统计条件可以设置为将业务场景等,本领域的技术人员可以根据用户自身的业务数据监控需求进行设置,不做限制。
步骤S104:在所述Spark内存块中进行业务数据的查询统计。
在具体实施中,当将日志数据转换得到的实体对象周期性地存储至对应的Spark内存块中时,便可以根据不同的查询统计需求,对存储在所述Spark内存块的数据进行查询统计操作,具体可以包括以下三种情形:
(1)当需要对一个Spark内存块中的业务数据进行查询统计时,可以首先使用Spark SQL从该Spark内存块中的加载数据,存入所创建的对应的一个临时内存表,再使用SQL语句在所创建的所述一个临时内存表中执行业务数据的查询统计操作即可。
(2)当需要对多个Spark内存块中的业务数据进行关联查询统计时,首先使用Spark SQL从对应的多个Spark内存块中加载数据,存入所创建的对应的多个临时内存表。换言之,为每个Spark内存块分别创建对应的一个临时内存表,并将Spark内存块中存储的实体对象分别载入对应设置的一个临时内存表中。接着,使用SQL Join语句在所创建的多个临时内存表中执行业务数据的查询统计操作,以实现多个Spark内存块中的业务数据进行关联查询统计。
(3)在Spark内存块中的业务数据进行查询统计时,可能出现需要多张数据库表关联统计的情形,且其中的某些数据库表的数据查询统计需要某个时间节点以前的数据,但因Spark内存有限等原因不可能将所有数据均存储在Spark内存块中,也即出现了Spark内存块中的业务数据缺失的情形。此时,可以从历史数据的存储之处,如Redis集群等,获取符合相应条件的数据,载入对应的Spark内存块,以补全Spark内存块中缺失的业务数据。接着,为需要进行关联统计查询操作的多个Spark内存块中的每个分别创建对应的一个临时内存表,并分别将所述多个Spark内存块中存储的实体对象分别载入对应设置的一个临时内存表中。最后,使用SQL Join语句在所创建的多个临时内存表中执行业务数据的查询统计操作,以实现多个Spark内存块中的业务数据进行关联查询统计。
当采用上述的操作获取对应的查询统计结果时,可以将所得到的查询统计结果存储至对应的数据库,如MySQL数据库等中,以便在后续可以使用该数据库中的数据直接生成对应的监控报表,方便实用。
通过上述的描述可知,本申请的发明人创造性地通过MySQL binlog消息和消息队列把数据库中的数据转移到内存中,再用Spark Streaming分批次按条件地将数据分别保存至Spark内存中,然后用SQL语句在Spark SQL中按业务场景等统计分析数据,最后把结果保存在MySQL数据库中,可被简单直接地使用。如果Spark内存不足,则引入第三方内存,如Redis缓存数据。结合Spark Streaming、Spark SQL和Redis缓存,用SQL语句统计监控数据也变得简单明了,通过横向扩充计算资源便可保证海量数据的处理能力,通过内存查询保证了实时监控所需要的数据的及时性。
上述对本发明实施例中的数据库集群数据处理方法进行了详细的描述,下面将对上述的方法对应的装置进行介绍。
图2示出了本发明实施例还提供了一种数据库集群数据处理装置的结构示意图。参见图2,一种数据库集群数据处理装置20,可以包括数据收集单元201、数据转换单元202、数据保存单元203和查询统计单元204,其中:
所述数据收集单元201,适于收集业务日志数据。在本发明一实施例中,所述数据收集单元201,适于采用消息队列收集业务日志数据。
所述数据转换单元202,适于采用Spark Streaming按照预设的周期将所收集的日志数据转换为对应的实体对象。
所述数据保存单元203,适于按照预设的分类统计条件将转换得到的实体对象分批次存入对应的多个Spark内存块中。
所述查询统计单元204,适于在所述Spark内存块中进行业务数据的查询统计。
在本发明一实施例中,所述查询统计单元204,适于当需要对一个Spark内存块中的业务数据进行查询统计时,使用Spark SQL从对应的一个Spark内存块中的加载数据,存入所创建的对应的一个临时内存表;用SQL语句在所创建的所述一个临时内存表中执行业务数据的查询统计操作。
在本发明另一实施例中,所述查询统计单元204,适于当需要对多个Spark内存块中的业务数据进行查询统计时,使用Spark SQL从对应的多个Spark内存块中加载数据,存入所创建的对应的多个临时内存表;用SQL Join语句在所创建的多个临时内存表中执行业务数据的查询统计操作。
在本发明另一实施例中,所述查询统计单元204,适于当Spark内存块中的业务数据缺失时,从存储有历史业务数据的数据库集群中查询得到符合条件的业务数据并存储至对应的Spark内存块;使用Spark SQL从对应的多个Spark内存块中加载数据,存入所创建的对应的多个临时内存表;用SQL Join语句在所创建的多个临时内存表中执行业务数据的查询统计操作。其中,所述数据库集群为Redis集群,也可以为其他的数据缓存集群。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行所述的数据库集群数据处理方法的步骤。其中,所述的数据库集群数据处理方法请参见前述部分的介绍,不再赘述。
本发明实施例还提供了一种终端,包括存储器和处理器,所述存储器上储存有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行所述的数据库集群数据处理方法的步骤。其中,所述的数据库集群数据处理方法请参见前述部分的介绍,不再赘述。
采用本发明实施例中的上述方案,通过Spark Streaming按照预设的周期将所收集的日志数据转换为对应的实体对象,按照预设的分类统计条件将转换得到的实体对象分批次存入对应的多个Spark内存块中,并在所述Spark内存块中进行业务数据的查询统计,可以实现海量业务数据的实时监控,提高业务数据的监控效率。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (12)
1.一种数据库集群数据处理方法,其特征在于,包括:
采用MySQL分片数据库集群收集业务日志数据;
采用Spark Streaming按照预设的周期将所收集的日志数据转换为对应的实体对象;
按照预设的分类统计条件将转换得到的实体对象分批次存入对应的多个Spark内存块中;
在所述Spark内存块中进行业务数据的查询统计,当需要对一个Spark内存块中的业务数据进行查询统计时,具体包括:使用Spark SQL从对应的一个Spark内存块中加载数据,存入所创建的对应的一个临时内存表;用SQL语句在所创建的所述一个临时内存表中执行业务数据的查询统计操作。
2.根据权利要求1所述的数据库集群数据处理方法,其特征在于,当需要对多个Spark内存块中的业务数据进行查询统计时,所述在所述Spark内存中进行业务数据的查询统计,包括:
使用Spark SQL从对应的多个Spark内存块中加载数据,存入所创建的对应的多个临时内存表;
用SQL Join语句在所创建的多个临时内存表中执行业务数据的查询统计操作。
3.根据权利要求2所述的数据库集群数据处理方法,其特征在于,当Spark内存块中的业务数据缺失时,所述在所述Spark内存中进行业务数据的查询统计,包括:
从存储有历史业务数据的数据库集群中查询得到符合条件的业务数据并存储至对应的Spark内存块;
使用Spark SQL从对应的多个Spark内存块中加载数据,存入所创建的对应的多个临时内存表;
用SQL Join语句在所创建的多个临时内存表中执行业务数据的查询统计操作。
4.根据权利要求3所述的数据库集群数据处理方法,其特征在于,所述数据库集群为Redis集群。
5.根据权利要求1至4任一项所述的数据库集群数据处理方法,其特征在于,所述收集业务日志数据,包括:
采用消息队列收集业务日志数据。
6.一种数据库集群数据处理装置,其特征在于,包括:
数据收集单元,适于采用MySQL分片数据库集群收集业务日志数据;
数据转换单元,适于采用Spark Streaming按照预设的周期将所收集的日志数据转换为对应的实体对象;
数据保存单元,适于按照预设的分类统计条件将转换得到的实体对象分批次存入对应的多个Spark内存块中;
查询统计单元,适于在所述Spark内存块中进行业务数据的查询统计,当需要对一个Spark内存块中的业务数据进行查询统计时,具体包括:使用Spark SQL从对应的一个Spark内存块中加载数据,存入所创建的对应的一个临时内存表;用SQL语句在所创建的所述一个临时内存表中执行业务数据的查询统计操作。
7.根据权利要求6所述的数据库集群数据处理装置,其特征在于,当需要对多个Spark内存块中的业务数据进行查询统计时,所述在所述Spark内存中进行业务数据的查询统计,包括:
使用Spark SQL从对应的多个Spark内存块中加载数据,存入所创建的对应的多个临时内存表;
用SQL Join语句在所创建的多个临时内存表中执行业务数据的查询统计操作。
8.根据权利要求7所述的数据库集群数据处理装置,其特征在于,当Spark内存块中的业务数据缺失时,所述在所述Spark内存中进行业务数据的查询统计,包括:
从存储有历史业务数据的数据库集群中查询得到符合条件的业务数据并存储至对应的Spark内存块;
使用Spark SQL从对应的多个Spark内存块中加载数据,存入所创建的对应的多个临时内存表;
用SQL Join语句在所创建的多个临时内存表中执行业务数据的查询统计操作。
9.根据权利要求8所述的数据库集群数据处理装置,其特征在于,所述数据库集群为Redis集群。
10.根据权利要求6至9任一项所述的数据库集群数据处理装置,其特征在于,所述数据收集单元,适于采用消息队列收集业务日志数据。
11.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述计算机指令运行时执行权利要求1至5任一项所述的数据库集群数据处理方法的步骤。
12.一种终端,其特征在于,包括存储器和处理器,所述存储器上储存有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行权利要求1至5任一项所述的数据库集群数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811186872.6A CN109471892B (zh) | 2018-10-12 | 2018-10-12 | 数据库集群数据处理方法及装置、存储介质和终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811186872.6A CN109471892B (zh) | 2018-10-12 | 2018-10-12 | 数据库集群数据处理方法及装置、存储介质和终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109471892A CN109471892A (zh) | 2019-03-15 |
CN109471892B true CN109471892B (zh) | 2021-01-15 |
Family
ID=65664021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811186872.6A Active CN109471892B (zh) | 2018-10-12 | 2018-10-12 | 数据库集群数据处理方法及装置、存储介质和终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109471892B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112817791B (zh) * | 2020-12-31 | 2024-04-26 | 西安合智宇信息科技有限公司 | 一种工作面集群开采状态的移动端监控方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107391719A (zh) * | 2017-07-31 | 2017-11-24 | 南京邮电大学 | 一种云环境中分布式流数据处理方法及*** |
US10366111B1 (en) * | 2015-04-06 | 2019-07-30 | EMC IP Holding Company LLC | Scalable distributed computations utilizing multiple distinct computational frameworks |
-
2018
- 2018-10-12 CN CN201811186872.6A patent/CN109471892B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10366111B1 (en) * | 2015-04-06 | 2019-07-30 | EMC IP Holding Company LLC | Scalable distributed computations utilizing multiple distinct computational frameworks |
CN107391719A (zh) * | 2017-07-31 | 2017-11-24 | 南京邮电大学 | 一种云环境中分布式流数据处理方法及*** |
Non-Patent Citations (3)
Title |
---|
Spark SQL结合Spark Streaming,使用SQL完成实时计算中的数据统计;[email protected];《http://lxw1234.com/archives/2015/11/552.htm》;20151111;全文 * |
Spark日志分析项目Demo(7)--临时表查询,各区域top3热门商品统计;zhi_fu;《https://blog.csdn.net/zhi_fu/article/details/77916117》;20170909;全文 * |
基于Spark框架的分布式ETL设计与实现;蒿翠玲;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180115(第01期);第3章第3.3节 * |
Also Published As
Publication number | Publication date |
---|---|
CN109471892A (zh) | 2019-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109669934B (zh) | 一种切合电力客服业务的数据仓库***及其构建方法 | |
WO2020233212A1 (zh) | 一种日志记录的处理方法、服务器及存储介质 | |
CN110362632B (zh) | 一种数据同步方法、装置、设备及计算机可读存储介质 | |
CN104361022A (zh) | 一种基于采集数据统计以及前台展现的方法 | |
CN110389967B (zh) | 数据存储方法、装置、服务器及存储介质 | |
CN111339073A (zh) | 实时数据处理方法、装置、电子设备及可读存储介质 | |
CN108509313B (zh) | 一种业务监控方法、平台及存储介质 | |
JP2006313551A (ja) | データを編成して格納するシステム及び方法 | |
CN111061758B (zh) | 数据存储方法、装置及存储介质 | |
CN108228322B (zh) | 一种分布式链路跟踪、分析方法及服务器、全局调度器 | |
CN106649687B (zh) | 大数据联机分析处理方法及装置 | |
CN110704484A (zh) | 一种对海量实时数据流进行处理的方法及*** | |
CN112347071A (zh) | 一种配电网云平台数据融合方法及配电网云平台 | |
CN110147470B (zh) | 一种跨机房数据比对***及方法 | |
CN112948492A (zh) | 一种数据处理***、方法、装置、电子设备及存储介质 | |
CN109062769B (zh) | It***性能风险趋势预测的方法、装置和设备 | |
CN109471892B (zh) | 数据库集群数据处理方法及装置、存储介质和终端 | |
CN105302915A (zh) | 基于内存计算的高性能数据处理*** | |
CN106649461A (zh) | 一种自动化清理维护ElasticSearch日志索引文件的方法 | |
CN114185885A (zh) | 一种基于列存数据库的流式数据处理方法及*** | |
CN109947736B (zh) | 实时计算的方法和*** | |
CN106919566A (zh) | 一种基于海量数据的查询统计方法及*** | |
CN112000703A (zh) | 数据入库处理方法、装置、计算机设备和存储介质 | |
CN110019152A (zh) | 一种大数据清洗方法 | |
CN108430067A (zh) | 一种基于xdr的互联网业务质量分析方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |