基于HBASE的大数据报表处理方法及装置与流程

文档序号:20112846发布日期:2020-03-17 19:24阅读:157来源:国知局
本发明涉及数据处理
技术领域
:,特别涉及一种基于hbase的大数据报表处理方法及装置。
背景技术
::大数据平台由于存储海量数据,数据统计相关操作需要的资源大、时间长,对统计报表造成了比较大的困难。目前主流的解决方案是定时对数据进行统计,并将统计结果写入es/rdb/hbase中,需要对报表进行统计时,通过一个报表模块直接从结果表中查询数据进行展示。现有的报表处理方案有以下不足之处:1、数据统计不准确。大数据平台由于数据源和流程的复杂性,经常会出现数据入库延迟,延迟时间甚至可能长达1天多而且没有规律。由于平台数据量太大,数据统计的成本很高,因此统计次数是非常有限的,甚至经常只做一轮统计,不考虑延迟数据的补算,导致统计报表与详单数据不一致。2、报表生成依赖于前置统计流程的配置与调度。如果要新增一份报表,往往无法直接复用其他报表现有的前置统计流程,直接以修改统计逻辑的方式扩展前置统计任务,很可能会影响到现有报表的生成,而新增一套统计逻辑的开发与执行成本很高。针对上述问题,目前尚未提出有效的解决方案。技术实现要素:本发明实施例提供了一种基于hbase的大数据报表处理方法,用以提高大数据报表处理的效率和准确率,降低成本,该方法包括:监控hbase数据库中数据源表中的源数据的变化情况和至少一层数据中间表中的中间数据的变化情况;所述hbase数据库包括:数据源表、至少一层数据中间表和数据结果表;在监控到数据源表中的源数据的变化满足第一预设条件时,根据业务场景,对增量数据进行处理,将处理后的增量数据作为中间数据存储在第一层数据中间表中;在监控到任意一层数据中间表中的中间数据的变化满足第二预设条件时,根据业务场景,对增量数据进行处理,将处理后的增量数据存储在所述任意一层数据中间表对应的下一层数据中间表中或所述数据结果表中;根据所述数据源表、至少一层数据中间表和数据结果表中的数据变更情况,处理报表。本发明实施例提供了一种基于hbase的大数据报表处理装置,用以提高大数据报表处理的效率和准确率,降低成本,该装置包括:监控单元,用于监控hbase数据库中数据源表中的源数据的变化情况和至少一层数据中间表中的中间数据的变化情况;所述hbase数据库包括:数据源表、至少一层数据中间表和数据结果表;第一处理单元,用于在监控到数据源表中的源数据的变化满足第一预设条件时,根据业务场景,对增量数据进行处理,将处理后的增量数据作为中间数据存储在第一层数据中间表中;第二处理单元,用于在监控到任意一层数据中间表中的中间数据的变化满足第二预设条件时,根据业务场景,对增量数据进行处理,将处理后的增量数据存储在所述任意一层数据中间表对应的下一层数据中间表中或所述数据结果表中;报表处理单元,用于根据所述数据源表、至少一层数据中间表和数据结果表中的数据变更情况,处理报表。本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于hbase的大数据报表处理方法。本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述基于hbase的大数据报表处理方法的计算机程序。本发明实施例提供的技术方案的有益技术效果是:首先,将数据统计的步骤拆分成多层,并直接分层监控hbase中数据的增量变更。当数据变化时,直接触发下一层操作,无需人工配置调度管理,当监控到源数据发生变化时,历经多层处理,会自动将变化结果体现在结果表中。其次,新增报表时无需调整每一步逻辑,只需要在现有流程基础上,在业务直接相关的源表或统计中间表中,新增一条或多条联动统计触发逻辑,可实现资源与中间数据的最大化复用。综上,本发明实施例提供的技术方案提高了大数据报表处理的效率和准确率,降低了成本。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例中基于hbase的大数据报表处理方法的流程示意图;图2是本发明实施例中基于hbase的大数据报表处理的原理示意图;图3是本发明实施例中基于hbase的大数据报表处理装置的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。由于发明人发现
背景技术
:中存在的技术问题,因此,提出了一种基于hbase的大数据报表处理方案,该方案能够监控源数据的变更,实时统计和展示。具体地:首先,该方案将数据统计的步骤拆分成多层,并直接分层监控hbase表中数据的增量变更。当数据变化时,直接触发下一层操作,无需人工配置调度管理。当源数据发生变化时,历经多层处理,会自动将变化结果体现在上层报表之中。其次,该方案新增报表时无需调整每一步逻辑,只需要在现有流程基础上,在业务直接相关的源表或统计中间表中,新增一条或多条联动统计触发逻辑,可实现资源与中间数据的最大化复用。下面对该基于hbase的大数据报表处理方案进行详细介绍。图1是本发明实施例中基于hbase的大数据报表处理方法的流程示意图,如图1所示,该方法包括如下步骤:步骤101:监控hbase数据库中数据源表中的源数据的变化情况和至少一层数据中间表中的中间数据的变化情况;所述hbase数据库包括:数据源表、至少一层数据中间表和数据结果表;步骤102:在监控到数据源表中的源数据的变化满足第一预设条件时,根据业务场景,对增量数据进行处理,将处理后的增量数据作为中间数据存储在第一层数据中间表中;步骤103:在监控到任意一层数据中间表中的中间数据的变化满足第二预设条件时,根据业务场景,对增量数据进行处理,将处理后的增量数据存储在所述任意一层数据中间表对应的下一层数据中间表中或所述数据结果表中;任意一层数据中间表包括所述第一层数据中间表;步骤104:根据所述数据源表、至少一层数据中间表和数据结果表中的数据变更情况,处理报表。本发明实施例提供的技术方案工作时:首先,将数据统计的步骤拆分成多层,即包括:数据源表层,至少一层数据中间表层,并直接分层监控hbase中数据的增量变更。当数据变化时(例如,在监控到数据源表中的源数据的变化满足第一预设条件时,或在监控到任意一层数据中间表中的中间数据的变化满足第二预设条件时),直接触发下一层操作(例如,根据业务场景,对增量数据进行处理,将处理后的增量数据作为中间数据存储在第一层数据中间表中,或根据业务场景,对增量数据进行处理,将处理后的增量数据存储在所述任意一层数据中间表对应的下一层数据中间表中或所述数据结果表中),无需人工配置调度管理,当监控到源数据发生变化时,历经多层处理,会自动将变化结果体现在结果表中,当需要进行报表处理时,根据所述数据源表、至少一层数据中间表和数据结果表中的数据变更情况,处理报表,处理效率高。另外,有效地避免了数据延迟的问题,也提高了报表处理的准确率。其次,新增报表无需调整每一步逻辑,只需要在现有流程基础上,在业务直接相关的源表或统计中间表中,新增一条或多条联动统计触发逻辑,可实现资源与中间数据的最大化复用。具体实施时,新增报表的流程可以包括:1、确定报表所需数据,并构建一张用于存放报表数据的宽表;2、检索历层数据存储用表,查找与本报表数据相关的源表或汇总表;3、无需另外配置统计相关的调度程序,可直接在各层源表和汇总表上,使用本方案的observer模块监控,并将变更数据使用增量处理模块写入结果宽表,用于报表查询和展示。因此,与现有技术相比较,本发明实施例提供的技术方案提高了大数据报表处理的效率和准确率,降低了成本。下面再结合附图2,对本发明实施例涉及的各个步骤进行详细介绍。在图2中,srchtable代表数据源表,stathtable代表数据中间表,rpthtable代表数据结果表。observer:hbase的内置组件,用于数据监控与事件触发,其中,htable:即hbasetable,指hbase中的表。hbase、es(elasticsearch):均为大数据中常用组件。一、首先,介绍上述步骤101。具体实施时,上述步骤101可以通过图2中的observer模块(即图3中的监控单元)来实现。observer模块的主要作用是:监控hbase中srctab(srchtable)、stattab(stathtable)的数据变化。当目标表数据发生变更,且变更记录数或间隔时间达到设定阈值时,提请增量处理模块(图3中的第一处理单元和第二处理单元)对增量数据进行处理。具体实施时,增量处理模块可以用于:解析增量数据,与预设置的处理流程进行匹配:对增量部分数据提前进行一定的筛选配置,比较常见的是根据时间段对数据处理流程进行区分(因为上游采集流程可能会有数据积压、补采、重采等各种操作,导致数据源中的增量数据可能分布在不同的时段内)如限制只对当天的增量数据补充处理,1天前的增量数据变化直接忽视或者预置对于最近1小时内数据,当天但非最近1小时内数据,前一天的数据等各种不同时间相关的增量数据分配不同的后续处理流程。具体实施时,当数据符合srctab的预置处理流程时,批量将数据变化情况写入stattab,写入方法由对应业务代码控制;当数据符合stattab的预置处理流程(针对不同时段的数据会有不同的触发处理配置,针对不同汇总层级的数据(如源表、时间级汇总表、区域级汇总表)也会有不同的触发处理配置)时,批量根据统计表的数据变化情况,更新报表对应的rpttab(rpthtable),更新逻辑由对应业务代码控制。具体实施时,为了体现多层监控,数据中间表可以有多个,该图2只是示意了一。每一层的stat统计用表(数据中间表)都可以作为下一层统计的src源表。具体地,层次根据实际业务应用场景确定,如某场景是从源表->首次汇总->二次汇总即得到某张汇总表,用于统计分析,此时两层汇总即可。但后续可能又有某个新的专题,需要在之前二次汇总的结果表上再做一层汇总,则此时应将最大汇总层数应需求调整至三层。另外,本发明实施例中的目标表可以是:任意一层数据中间表,也可以是结果表。具体实施时,在上述步骤101之前,还可以包括:在系统中预配置要监控的数据源表,以及在系统中预配置要监控的统计中间表(数据中间表)的步骤。二、其次,介绍上述步骤102。该步骤102可以通过图2中的数据缓冲模块(可以是图3中的第一处理单元)实现。在一个实施例中,在监控到数据源表中的源数据的变化满足第一预设条件时,根据业务场景,对增量数据进行处理,将处理后的增量数据作为中间数据存储在第一层数据中间表中,可以包括:在监控到数据源表中的源数据发生变化时,将监控结果进行缓存;在监控结果中数据源表的数据变化量大于第三阈值时,或数据变化时间累积达到第四阈值时,根据业务场景,对增量数据进行处理,将处理后的增量数据作为中间数据存储在第一层数据中间表中。具体实施时,“在监控到数据源表中的源数据发生变化时,将监控结果进行缓存”的步骤可以通过图2中的数据缓冲模块来实现,即observer模块监控源表数据变化情况,并将监控结果缓存起来。当数据源表的数据变化量大于预设定的阈值(第三阈值),或者数据源表中数据变化后的累计时间达到预设定的阈值(第四阈值),通知数据缓冲模块,数据缓冲模块接收并处理增量数据(详见下面实施例的介绍),处理逻辑根据业务场景编程实现,处理目标是将单独将增量数据进行统计操作,并将增量统计结果存储至统计层的临时缓冲表(数据中间表)中,即根据业务场景,对增量数据进行处理,将处理后的增量数据作为中间数据存储在第一层数据中间表中,进一步提高了大数据报表处理的效率和准确率。在一个实施例中,在监控到数据源表中的源数据的变化满足第一预设条件时,根据业务场景,对增量数据进行处理,将处理后的增量数据作为中间数据存储在第一层数据中间表中,可以包括:在监控到数据源表中的源数据的变化满足第一预设条件,业务场景为数据统计场景时,将增量数据与若干张维表或配置表进行关联处理,或业务场景为数据分析场景时,将增量数据与存量的历史数据做同比、环比、方差或标准差计算处理,将处理后的增量数据作为中间数据存储在第一层数据中间表中,进一步提高了大数据报表处理的效率和准确率。具体实施时,监控数据源表中的源数据的变化的步骤见图2中的“①”。具体实施时,“在监控到数据源表中的源数据的变化满足第一预设条件,业务场景为数据统计场景时,将增量数据与若干张维表或配置表进行关联处理,或业务场景为数据分析场景时,将增量数据与存量的历史数据做同比、环比、方差或标准差计算处理”的步骤(数据缓冲模块接收并处理增量数据的步骤)参见图2中的“②”,如将增量部分数据和若干张维表或配置表进行关联,或者将增量数据与表中存量的历史数据来做同比、环比、方差之类的计算。根据业务场景对增量数据进行处理,例如:若是数据统计场景,只需对当前或当天的数据进行重新汇总统计;若是数据分析场景,需要与历史数据进行关联比较处理,进行同比、环比、方差、标准差等各种计算处理。具体实施时,“将处理后的增量数据作为中间数据存储在第一层数据中间表中”的步骤参见图2中的“③”。三、接着,介绍上述步骤103。该步骤103可以通过图2中的增量统计模块(即图3中的第二处理单元)实现。在一个实施例中,在监控到任意一层数据中间表中的中间数据的变化满足第二预设条件时,根据业务场景,对增量数据进行处理,将处理后的增量数据存储在所述任意一层数据中间表对应的下一层数据中间表中或所述数据结果表中,可以包括:在监控到任意一层数据中间表中的中间数据的变化量大于第一阈值时,或数据变化时间累积达到第二阈值时,核对增量表的统计维度与目标表的结构是否一致(该步骤参见图2中的:“④”);在增量表的统计维度与目标表的结构一致时,根据业务场景,对增量数据进行处理(该步骤参见图2中的:“⑤”);将处理后的增量数据存储在所述任意一层数据中间表对应的下一层数据中间表中(参见图2中的:“⑥”)或所述数据结果表(参见图2中的:“⑦”)中;所述任意一层数据中间表对应的下一层数据中间表或所述数据结果表为所述目标表。具体实施时,上述根据监控到任意一层数据中间表中的中间数据的变化对增量数据进行处理的实施方案,进一步提高了大数据报表处理准确率。在一个实施例中,在监控到任意一层数据中间表中的中间数据的变化量大于第一阈值时,或数据变化时间累积达到第四阈值时,核对增量表(数据中间表)的统计维度与目标表的结构是否一致,可以包括:在监控到任意一层数据中间表中的中间数据发生变化时,解析增量数据中统计结果相关的维度与周期粒度信息,并与预配置的维度与周期粒度信息进行比较;根据比较结果,在监控到任意一层数据中间表中的中间数据的变化量大于第三阈值时,或数据变化时间累积达到第四阈值时,核对增量表的统计维度,与目标表的结构是否一致。具体实施时,上述核对增量表的统计维度与目标表的结构是否一致的实施方案,进一步提高了大数据报表处理的准确率。具体实施时,首先,当中间表数据发生变更,自动解析增量数据中统计结果相关的维度与周期粒度信息,并与预配置的维度/粒度进行比较,其中,维度信息如省份、地市、设备类型、设备厂商等,周期粒度如小时粒度、日粒度、周粒度等。一张统计中间表内,可能会根据不同的维度分别记录汇总信息,如对同一批数据,针对东城区汇总一次,针对北京市又汇总一次。其次,当新增数据量或累计时间超过阈值,则通知增量统计模块。具体实施时,增量统计模块核对增量表的统计维度,与目标表的结构是否一致:一张统计中间表,可能用于多张目标表,如北京市各厂商设备数的统计日报是一张目标表,北京市各型号设备数的统计日报是另一张目标表,这两张目标表的前一层中间表,可能是同一张表,该表内,分别根据每日内各厂商设备数量做了一次汇总,各型号设备数量又做了一次汇总;如果本次增量数据只涉及设备型号的数量变更,对设备厂商的数量变更无影响,则只会触发各型号设备数的统计日报这一结果表的修改,不会触发各厂商设备数的统计日报的修改。在一个实施例中,在增量表的统计维度与目标表的结构一致时,根据业务场景,对增量数据进行处理(如果结构一致,则合并统计结果),可以包括:①对于求峰值、谷值、均值、数量等简单统计,直接通过将两处统计结果简单计算即可合并;②对于求方差、标准差等较复杂的计算,需提请调用周期相关的源数据表,与本期增量数据合并后,重新计算获取;③对于求排名之类的统计,根据增量统计数据涉及的周期粒度或维度,查找出目标表中与原先排名相关的统计结果,将这批数据与本期增量数据合并,再重新计算获取。具体实施时,hbase数据统计支持增量修复,在统计完成后,可针对增量数据以最小代价重新统计,进一步提高了大数据报表处理的效率。为了便于理解上述实施例如何实施,下面进行一一举例说明。针对上述①举例:原先目标表中数据为基于行业与月份统计平均收入,表中已存有平均收入a与统计人数s,与本期增量数据的平均收入a与统计人数s合并时,直接使用(a+a)/(s+s)即可。针对上述②举例:原先目标表中数据为基于行业统计每个月跳槽人数的方差,本期增量数据合并时,先根据增量数据所涉及的行业,从上一层数据源表中查询出这批行业相关的源数据,重新计算方差。针对上述③举例:先目标表中数据为各企业应届招聘人数排名,则查询出本期增量数据中原排名最低的企业,假设排名为n,则取出目标表中排名为1~n的企业数据,与本期增量数据合并,重新计算排名,再将计算结果更新至目标表。具体实施时,增量统计模块处理后写入的目标表,可以是记录报表信息的报表结果表(数据结果表),也可以是下一轮observer模块监控的统计中间表(数据中间表)。四、最后,介绍上述步骤104。该步骤可以通过图2中的报表模块(即图3中的报表处理单元)实现。具体实施时,报表模块直接从hbase中检索结果表,根据所需周期和维度实时查询数据,生成最终报表。综上,本发明实施例提供的技术方案实现了:1.对hbase中的数据变更进行监控,实时处理增量数据并提请数据统计。2.源数据有延迟时,会在接收到延迟数据后实时逐层汇总并生成新报表。3.hbase数据统计支持增量修复,在统计完成后,可针对增量数据以最小代价重新统计。基于同一发明构思,本发明实施例中还提供了一种基于hbase的大数据报表处理装置,如下面的实施例所述。由于基于hbase的大数据报表处理装置解决问题的原理与基于hbase的大数据报表处理方法相似,因此基于hbase的大数据报表处理装置的实施可以参见基于hbase的大数据报表处理方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图3是本发明实施例中基于hbase的大数据报表处理装置的结构示意图,如图3所示,该装置包括:监控单元01,用于监控hbase数据库中数据源表中的源数据的变化情况和至少一层数据中间表中的中间数据的变化情况;所述hbase数据库包括:数据源表、至少一层数据中间表和数据结果表;第一处理单元02,用于在监控到数据源表中的源数据的变化满足第一预设条件时,根据业务场景,对增量数据进行处理,将处理后的增量数据作为中间数据存储在第一层数据中间表中;第二处理单元03,用于在监控到任意一层数据中间表中的中间数据的变化满足第二预设条件时,根据业务场景,对增量数据进行处理,将处理后的增量数据存储在所述任意一层数据中间表对应的下一层数据中间表中或所述数据结果表中;报表处理单元04,用于根据所述数据源表、至少一层数据中间表和数据结果表中的数据变更情况,处理报表。在一个实施例中,上述第一处理单元具体可以用于:在监控到数据源表中的源数据的变化满足第一预设条件,业务场景为数据统计场景时,将增量数据与若干张维表或配置表进行关联处理,或业务场景为数据分析场景时,将增量数据与存量的历史数据做同比、环比、方差或标准差计算处理,将处理后的增量数据作为中间数据存储在第一层数据中间表中。在一个实施例中,上述第二处理单元具体可以用于:在监控到任意一层数据中间表中的中间数据的变化量大于第一阈值时,或数据变化时间累积达到第二阈值时,核对增量表的统计维度与目标表的结构是否一致;在增量表的统计维度与目标表的结构一致时,根据业务场景,对增量数据进行处理;将处理后的增量数据存储在所述任意一层数据中间表对应的下一层数据中间表中或所述数据结果表中;所述任意一层数据中间表对应的下一层数据中间表或所述数据结果表为所述目标表。在一个实施例中,上述第一处理单元具体可以用于:在监控到数据源表中的源数据发生变化时,将监控结果进行缓存;在监控结果中数据源表的数据变化量大于第三阈值时,或数据变化时间累积达到第四阈值时,根据业务场景,对增量数据进行处理,将处理后的增量数据作为中间数据存储在第一层数据中间表中。本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于hbase的大数据报表处理方法。本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述基于hbase的大数据报表处理方法的计算机程序。本发明实施例提供的技术方案的有益技术效果是:1、报表数据存储在hbase中,支持海量数据存储,读取速度快。2、源数据更新自动检测,触发统计并更新报表,报表实时性高,准确性高。3、报表前置的统计逻辑可以多次复用,逻辑处理更加自由。综上,本发明实施例提供的技术方案提高了大数据报表处理的效率和准确率,降低了成本。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1