一种基于大数据技术的报表查询方法及系统与流程

文档序号:33399909发布日期:2023-03-08 15:56阅读:50来源:国知局
1.本发明涉及大数据
技术领域
:,具体而言,涉及一种基于大数据技术的报表查询方法及系统。
背景技术
::2.目前,报表系统大多基于大数据平台进行接入、转换、计算等处理方式来进行报表数据的对接与出具,但大数据平台如hadoop数据处理过于集中,且etl平台计算资源具有一定限制,导致很多事业群大量的基于大数据平台的日报生成时间延迟严重,报表出具时效性低。所以对报表的接入形式与出具方式需要提出新的方法,来满足日报等报表的查询、出具的时效。技术实现要素:3.本发明的目的在于提供一种基于大数据技术的报表查询方法及系统,其通过kafka消息系统获取报表元数据后对元数据进行清洗、修复等处理,并按预设规则进行转换和存储于数据库的主服务;通过canal模拟数据库的从服务向数据库的主服务发送数据同步请求,并通过消息中间件对数据库主服务返回的同步信息进行监听而将高质量数据同步到搜索引擎中,当用户查询数据时,直接通过搜索引擎向用户返回数据,替代了传统的基于大数据集中、直接地查询数据库的高延迟的查询方式,使得报表的查询、出具更具时效性,提高了报表查询到效率。4.本发明的实施例是这样实现的:5.第一方面,本技术实施例提供一种基于大数据技术的报表查询方法,包括以下步骤:6.通过kafka消息系统获取报表元数据;7.对所述报表元数据进行清洗和修复;8.根据预设的转换规则对清洗和修复后的元数据进行转换,并存储到数据库中;9.将存储于数据库中的元数据同步到搜索引擎中;10.根据用户的查询指令从所述搜索引擎中获取元数据并返回给用户。11.在本发明的一些实施例中,所述对所述报表元数据进行清洗和修复的步骤具体包括:12.对元数据进行对象识别和划分;13.对元数据进行数据一致性检查;以及14.对元数据中缺失的数据进行填充。15.在本发明的一些实施例中,所述根据预设的转换规则对清洗和修复后的元数据进行转换的步骤具体包括:16.对数据进行汇总处理;17.将低层次的数据对象映射到高层次;18.将元数据投射到预设规格范围内;19.根据已有的数据属性构造新的数据属性。20.在本发明的一些实施例中,所述将存储于数据库中的元数据同步到搜索引擎中的步骤具体包括:21.通过canal模拟数据库的从服务;22.向数据库的主服务发送数据同步请求,并将数据库主服务返回的同步信息发送到消息中间件;23.监听消息中间件的同步信息,并根据同步信息将数据同步到搜索引擎中。24.第二方面,本技术实施例提供一种基于大数据技术的报表查询系统,其包括:25.数据获取模块,用于通过kafka消息系统获取报表元数据;26.数据清洗和修复模块,用于对所述报表元数据进行清洗和修复;27.数据转换模块,用于根据预设的转换规则对清洗和修复后的元数据进行转换,并存储到数据库中;28.数据同步模块,用于将存储于数据库中的元数据同步到搜索引擎中;29.数据查询模块,用于根据用户的查询指令从所述搜索引擎中获取元数据并返回给用户。30.在本发明的一些实施例中,所述数据清洗和修复模块具体包括:31.对元数据进行对象识别和划分的识别子模块;32.对元数据进行数据一致性检查的清除子模块;以及33.对元数据中缺失的数据进行填充的填充子模块。34.在本发明的一些实施例中,所述数据转换模块具体包括:35.合计子模块,用于对数据进行汇总处理;36.映射子模块,用于将低层次的数据对象映射到高层次;37.规格化子模块,用于将元数据投射到预设规格范围内;38.构造子模块,用于根据已有的数据属性构造新的数据属性。39.在本发明的一些实施例中,所述数据同步模块具体包括:40.模拟子模块,用于通过canal模拟数据库的从服务;41.发送子模块,用于向数据库的主服务发送数据同步请求,并将数据库主服务返回的同步信息发送到消息中间件;42.同步子模块,用于监听消息中间件的同步信息,并根据同步信息将数据同步到搜索引擎中。43.第三方面,本技术实施例提供一种电子设备,其包括存储器,用于存储一个或多个程序;处理器,当上述一个或多个程序被上述处理器执行时,实现如上述第一方面中任一项上述的方法。44.第四方面,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面中任一项上述的方法。45.相对于现有技术,本发明的实施例至少具有如下优点或有益效果:46.本发明的实施例提出了一种基于大数据技术的报表查询方法,其通过kafka消息系统获取报表元数据后对元数据进行清洗、修复等处理,并按预设规则进行转换,得到高质量的数据并存储于数据库的主服务,减少需要的存储空间;且通过canal模拟数据库的从服务向数据库的主服务发送数据同步请求,并通过消息中间件对数据库主服务返回的同步信息进行监听而将高质量数据同步到搜索引擎中,当用户查询数据时,直接通过搜索引擎向用户返回数据,替代了传统的基于大数据集中、直接地查询数据库的高延迟的查询方式,使得报表的查询、出具更具时效性,提高了报表查询到效率。附图说明47.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。48.图1为本发明一种基于大数据技术的报表查询方法一实施例的流程图;49.图2为本发明实施例中对所述报表元数据进行清洗和修复的步骤的具体流程图;50.图3为本发明实施例中根据预设的转换规则对清洗和修复后的元数据进行转换,并存储到数据库中的步骤的具体流程图;51.图4为本发明实施例中将存储于数据库中的元数据同步到搜索引擎中的步骤的具体流程图;52.图5为本技术实施例提供的基于大数据技术的报表查询方法整体数据处理的具体流程图;53.图6为本发明一种基于大数据技术的报表查询系统一实施例的结构框图;54.图7为本发明实施例提供的一种电子设备的结构框图。55.图标:1、数据获取模块;2、数据清洗和修复模块;3、数据转换模块;4、数据同步模块;5、数据查询模块;6、处理器;7、存储器;8、数据总线。具体实施方式56.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。57.实施例158.请参阅图1-4,本技术实施例提供了一种基于大数据技术的报表查询方法,其通过kafka消息系统获取报表元数据后对元数据进行清洗、修复等处理,并按预设规则进行转换和存储于数据库的主服务;通过canal模拟数据库的从服务向数据库的主服务发送数据同步请求,并通过消息中间件对数据库主服务返回的同步信息进行监听而将高质量数据同步到搜索引擎中,当用户查询数据时,直接通过搜索引擎向用户返回数据,替代了传统的基于大数据集中、直接地查询数据库的高延迟的查询方式,使得报表的查询、出具更具时效性,提高了报表查询到效率。59.该基于大数据技术的报表查询方法包括以下步骤:60.步骤s101:通过kafka消息系统获取报表元数据。61.上述步骤中,可以采用kafka消息系统作为实时数据输入源,事业群的各种业务将报表元数据采用报表编码加以区分后发送至kafka,其中报表编码可以根据报表的类型、日期等分别对不同的报表进行编码以便识别;kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理生产者(如各事业群中的财务报表数据生产)和消费者(如查询数据的用户)在系统中的所有动作流数据,提高数据的并行处理能力。62.步骤s102:对所述报表元数据进行清洗和修复。63.其中,如图2所示,上述步骤s102:对所述报表元数据进行清洗和修复的步骤具体包括:64.步骤s1021:对元数据进行对象识别和划分;65.步骤s1022:对元数据进行数据一致性检查;以及66.步骤s1023:对元数据中缺失的数据进行填充。67.上述步骤中,在通过kafka消息系统收集到报表元数据后,基于mapreduce和hyracks等大数据技术对报表元数据存在的数据质量问题进行清洗、修复。主要包括三个步骤:1.对象识别,读取报表元数据后,对属于同一报表的元数据对象进行识别,将同一报表对象的数据输出到同一结果集合中,采用对象划分模型进行实体结果划分。2.数据不一致检查,配置每张报表的cfd规则,检查数据集中违反规则的属性,对违规数据进行清除,减少需要的存储空间,其中,cfd规则可以通过条件函数依赖(conditionalfunctionaldependencies,简称cfd)实现,cfd通过将语义上关联的数据绑定能很好的捕获数据的一致性。3.对缺失数据进行填充,使用朴素贝叶斯算法的分类结果作为em算法(即期望最大化expectationmaximization算法)的初始使用范围,根据配置进行公式计算含有缺失值的元素在取值范围内待填充的概率,取最大概率值对元数据中缺失的部分进行数据填充。通过上述三个步骤可以对数据进行有效的清洗和修复,提高了数据的质量。68.步骤s103:根据预设的转换规则对清洗和修复后的元数据进行转换,并存储到数据库中。69.相应地,请参阅图3,上述步骤s103:根据预设的转换规则对清洗和修复后的元数据进行转换,并存储到数据库中的步骤具体包括:70.步骤s1031:对数据进行汇总处理;71.步骤s1032:将低层次的数据对象映射到高层次;72.步骤s1033:将元数据投射到预设规格范围内;73.步骤s1034:根据已有的数据属性构造新的数据属性。74.上述步骤中,可以定义报表行、列组合等计算规则来预设数据转换规则,且规则是可以根据需求通过配置的方式灵活实现的,例如对数据某些列进行汇总操作的规则,用更抽象的概念来取代低层次或数据层的数据对象,将低层次的数据映射到高层次从而提高数据处理能力,还可以将有关属性数据按比例投射到特定的小范围之中,如将工资收入属性值映射到0到1范围内,进一步的可以根据已有属性集构造新的属性,以帮助数据处理过程等等;最后,将上述经过清洗和恢复、按计算规则处理好的数据写入到关系型数据库如mysql中进行保存。75.步骤s104:将存储于数据库中的元数据同步到搜索引擎中。76.数据经过处理后存入数据库或磁盘中,如果按传统方式直接查询数据库数据或磁盘,进行报表数据读取和展示,随着报表数据日益扩大,此种方式报表查询效率将会越来越低,已不能很好支持报表的数据查询。77.相应地,请参阅图4,上述步骤s104:将存储于数据库中的元数据同步到搜索引擎中的步骤具体包括:78.步骤s1041:通过canal模拟数据库的从服务;79.步骤s1042:向数据库的主服务发送数据同步请求,并将数据库主服务返回的同步信息发送到消息中间件;80.步骤s1043:监听消息中间件的同步信息,并根据同步信息将数据同步到搜索引擎中。81.上述步骤中,具体可以使用alibaba开源的中间件canal伪装成数据库的从服务,如mysqlslave,通过中间件canal模拟mysqlslave来与数据库的主服务mysqlmaster按的两者交互协议进行通信,如通过向mysqlmaster发送dump协议来发送报表数据获取请求,但这里并不直接获取存储于mysqlmaster的报表数据,而是在mysqlmaster收到的dump请求后,根据请求的方式和内容,mysqlmaster以事件形式记录请求对mysql数据库执行的所有操作,并写入一个binlog文件,binlog是记录所有数据库表结构变更(例如create、altertable…)以及表数据修改(insert、update、delete…)等操作的二进制日志。82.然后数据库主服务mysqlmaster返回包括binlog的同步信息,把同步信息推给canal进行解析,解析完成后将其中序列化后的binlog信息发送到消息中间件rabbitmq,通过监听消息中间件rabbitmq的消息,当有消息需要处理时,取出消息解析后获取binlog中的数据库操作信息,根据数据库操作信息将数据库中的报表数据同步(如复制)至搜索引擎如elasticsearch中,以供用户快速查询到数据。本技术实施例提供的基于大数据技术的报表查询方法整体数据处理的具体流程图可如图5所示。83.步骤s105:根据用户的查询指令从所述搜索引擎中获取元数据并返回给用户。84.上述步骤中,使用的搜索引擎elasticsearch是一个分布式、高扩展、高实时的搜索与数据分析引擎,它能很方便的使大量数据具有搜索、分析和探索的能力。通过搜索引擎elasticsearch获取、分析用户的查询指令,然后从elasticsearch中快速搜索到相应的报表数据,并将报表查询的结果导出到统一的页面,从而帮助前端开发人员无需重复开发前端数据展示页面,运营人员可以跟据报表日期以及报表内容关键字等从elasticsearch中快速进行报表的查询,替代了传统的基于大数据集中、直接地查询数据库的高延迟的查询方式,使得报表的查询、出具的更具时效性,提高了报表查询到效率。85.需要说明的是,本发明实施例中未具体展开说明的技术内容,可以通过现有的相关技术实现,属于现有技术,在本发明实施例中不再赘述。86.实施例287.相应地,请参阅图5,本技术实施例提供了一种基于大数据技术的报表查询系统,其包括:88.数据获取模块1,用于通过kafka消息系统获取报表元数据;数据清洗和修复模块2,用于对所述报表元数据进行清洗和修复;数据转换模块3,用于根据预设的转换规则对清洗和修复后的元数据进行转换,并存储到数据库中;数据同步模块4,用于将存储于数据库中的元数据同步到搜索引擎中;数据查询模块5,用于根据用户的查询指令从所述搜索引擎中获取元数据并返回给用户。89.其中,所述数据清洗和修复模块2具体包括:对元数据进行对象识别和划分的识别子模块;对元数据进行数据一致性检查的清除子模块;以及对元数据中缺失的数据进行填充的填充子模块。90.所述数据转换模块3具体包括:合计子模块,用于对数据进行汇总处理;映射子模块,用于将低层次的数据对象映射到高层次;规格化子模块,用于将元数据投射到预设规格范围内;构造子模块,用于根据已有的数据属性构造新的数据属性。91.所述数据同步模块4具体包括:模拟子模块,用于通过canal模拟数据库的从服务;发送子模块,用于向数据库的主服务发送数据同步请求,并将数据库主服务返回的同步信息发送到消息中间件;同步子模块,用于监听消息中间件的同步信息,并根据同步信息将数据同步到搜索引擎中。92.上述系统具体实现过程请参照实施例1中提供的一种基于大数据技术的报表查询方法,在此不再赘述。93.实施例394.请参阅图7,本技术实施例提供了一种电子设备,该电子设备包括至少一个处理器6、至少一个存储器7和数据总线8;其中:处理器6与存储器7通过数据总线8完成相互间的通信;存储器7存储有可被处理器6执行的程序指令,处理器6调用程序指令以执行一种基于大数据技术的报表查询方法。例如实现:95.通过kafka消息系统获取报表元数据;对所述报表元数据进行清洗和修复;根据预设的转换规则对清洗和修复后的元数据进行转换,并存储到数据库中;将存储于数据库中的元数据同步到搜索引擎中;根据用户的查询指令从所述搜索引擎中获取元数据并返回给用户。96.其中,存储器7可以是但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。97.处理器6可以是一种集成电路芯片,具有信号处理能力。该处理器6可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。98.可以理解,图7所示的结构仅为示意,电子设备还可包括比图7中所示更多或者更少的组件,或者具有与图7所示不同的配置。图7中所示的各组件可以采用硬件、软件或其组合实现。99.实施例4100.本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器6执行时实现一种基于大数据技术的报表查询方法。例如实现:101.通过kafka消息系统获取报表元数据;对所述报表元数据进行清洗和修复;根据预设的转换规则对清洗和修复后的元数据进行转换,并存储到数据库中;将存储于数据库中的元数据同步到搜索引擎中;根据用户的查询指令从所述搜索引擎中获取元数据并返回给用户。102.在本技术所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。103.另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。104.对于本领域技术人员而言,显然本技术不限于上述示范性实施例的细节,而且在不背离本技术的精神或基本特征的情况下,能够以其它的具体形式实现本技术。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本技术的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本技术内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1