一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据报表生成方法、装置、计算机设备及存储介质与流程

2022-11-19 12:25:52 来源:中国专利 TAG:


1.本发明涉及大数据技术领域,尤其涉及一种数据报表生成方法、装置、计算机设备及存储介质。


背景技术:

2.企业中,随着业务数据量的不同增加,一般将业务数据生成对应的报表,以报表的形式呈现出对应业务数据,一个好的业务报表能够良好的反映近几个月的业绩及指标的走势,对后续的战略发展决策起到关键作用。现有技术中,生成报表的业务数据一般储存在关系型数据库中,通过对关系型数据库中的数据进行搜索查询,生成对应的业务报表,但在使用关系型数据库储存业务数据时,随着业务数据量的不断增多,增加了数据结构存储的复杂性,当进行大批量数据查询时,由于数据的复杂性,使查询性能低下,降低了报表的生成效率,报表长时间的生成过程将消耗大量资源,因此,如何提高报表生成效率,成为亟待解决的问题。


技术实现要素:

3.基于此,有必要针对上述技术问题,提供一种数据报表生成方法、装置、计算机设备及存储介质,以解决报表生成效率较低的问题。
4.第一方面,提供一种数据报表生成方法,所述方法包括:
5.根据接收到的报表生成的请求信息,获取所述请求信息所要查询数据的数据来源,检测所述数据来源对应的数据库是否为预设来源数据库;
6.在检测到所述数据来源对应的数据库为所述预设来源数据库时,将所述所要查询数据从所述预设来源数据库同步至所述预设引擎对应的服务节点中存储;
7.根据所述请求信息中所述所要查询数据的数据量,匹配所述预设引擎中的查询方式作为目标查询方式,通过所述目标查询方式,将所述所要查询数据从所述预设引擎对应的服务节点中中导出,生成所述所要查询数据对应的报表。
8.第二方面,提供一种数据报表生成装置,所述装置包括:
9.检测模块,用于根据接收到的报表生成的请求信息,获取所述请求信息所要查询数据的数据来源,检测所述数据来源对应的数据库是否为预设来源数据库;
10.同步模块,用于在检测到所述数据来源对应的数据库为所述预设来源数据库时,将所述所要查询数据从所述预设来源数据库同步至所述预设引擎对应的服务节点中存储;
11.报表生成模块,用于根据所述请求信息中所述所要查询数据的数据量,匹配所述预设引擎中的查询方式作为目标查询方式,通过所述目标查询方式,将所述所要查询数据从所述预设引擎对应的服务节点中导出,生成所述所要查询数据对应的报表。
12.第三方面,本发明实施例提供一种计算机设备,所述计算机设备包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的数据报表生成方法。
等仅用于区分描述,而不能理解为指示或暗示相对重要性。
28.在本发明说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本发明的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
29.应理解,以下实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
30.为了说明本发明的技术方案,下面通过具体实施例来进行说明。
31.本发明一实施例提供的一种数据报表生成方法,可应用在如图1的应用环境中,其中,客户端与服务端进行通信。其中,客户端包括但不限于掌上电脑、桌上型计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本、个人数字助理(personal digital assistant,pda)等计算机设备。服务端可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
32.参见图2,是本发明一实施例提供的一种数据报表生成方法的流程示意图,上述数据报表生成方法可以应用于图1中的服务端,上述服务端连接相应的客户端。如图2所示,该种数据报表生成方法可以包括以下步骤。
33.s201:根据接收到的报表生成的请求信息,获取请求信息所要查询数据的数据来源,检测数据来源对应的数据库是否为预设来源数据库。
34.在步骤s201中,根据接收到的报表生成的请求信息,获取请求信息所要查询数据的数据来源,请求信息中包括所要查询数据的数据来源,检测数据来源对应的数据库是否为预设来源数据库。
35.本实施例中,接收到的报表生成的请求信息包括查询数据的数据来源、数据库名称等,其中,报表生成的请求信息可以是用户触发的用于生成报表的指令信息,也可以是客户端按照预设时间或者满足预设条件时自动生成的指令信息。根据数据来源获得查询数据的存储地址,从而检测出查询数据将对应的数据库是否为预设来源数据库。检测数据来源时,可以通过检测数据来源对应的api接口、sdk接口、shell脚本、python脚本等方式,检测查询数据将对应的数据库是否为预设来源数据库。
36.其中,预设来源数据库是基于hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为mapreduce任务进行运行,通过类sql语句快速实现简单的mapreduce统计,不必开发专门的mapreduce应用,十分适合数据仓库的统计分析。预设来源数据库在服务器里,即服务器划出一片独立的存储空间,用于存储数据。
37.s202:在检测到数据来源对应的数据库为预设来源数据库时,将所要查询数据从预设来源数据库同步至预设引擎对应的服务节点中存储。
38.在步骤s202中,当检测到数据来源对应的数据库为预设来源数据库时,将查询数据从预设来源数据库同步至预设引擎对应的服务节点中存储,其中预设引擎是分布式集群
搜索引擎,包括多个服务节点。
39.本实施例中,当检测到数据来源对应的数据库为预设来源数据库时,将所要查询数据从预设来源数据库同步至预设引擎对应的服务节点中存储,预设引擎为分布式集群,包括多个服务节点,预设引擎不同于其他数据库,可以实现信息的快捷搜索。预设引擎可以在短时间内存储、搜索和分析大量的数据,因此多被用于复杂搜索场景。将预设来源数据库同步至预设引擎对应的服务节点中存储可以实现数据的。
40.需要说明的是,预设引擎集群方式使用的是主从模型,集群不需要依赖任务外部组件(例如zookeeper、hdfs等)。主从模式可以简化系统设计,主节点负责维护集群信息,并通过心跳机制来确认集群成员是否还在集群系统中。如果主节点宕机,就需要进行选举,集群一般采用奇数节点数,这样可以保证在选举主节点时不会发生脑裂的情况。因此,预设引擎集群至少存在主节点与数据节点,如果集群节点资源充足,还可将冗余节点设置成协调节点。为了保证在分布式环境下的可用性,同时也为了扩大存储空间,预设引擎会对数据进行切分,同时每一个分片会根据初始的索引设置保存多个副本,总分片数等于节点数与分片数的乘积,然后各个分片均匀地分布在各个集群节点中。
41.可选地,在检测到数据来源对应的数据库为预设来源数据库时,将所要查询数据从预设来源数据库同步至预设引擎对应的服务节点中存储,包括:
42.创建预设来源数据库与预设引擎对应的服务节点的映射表;
43.根据映射表,将所要查询数据从预设来源数据库中同步至预设引擎对应的服务节点中存储。
44.本实施例中,创建预设来源数据库与预设引擎对应的服务节点的映射表,其中,映射表中表明预设引擎集群的服务节点地址、端口名称及对应的索引信息、文档信息,进而实现建立预设来源数据库与预设引擎集群之间数据传输通道。
45.需要说明的是,映射表还可以指定预设来源数据库中的主键字段映射到预设引擎集群中id标识,主键字段能唯一地标识映射表中的每一行的字段。预设引擎集群中id标识是一个字符串,当它与_index(文档存储的地方)以及_type(文档代表的对象种类)组合时,可以代表预设引擎集群中一个特定的文档,即预设引擎集群中的文档可以通过id标识唯一确定,不同的文档具有唯一的id标识。当完成映射表的创建后,即可以实现与预设引擎集群的数据同步通道。
46.s203:根据请求信息中所要查询数据的数据量,匹配预设引擎中的查询方式作为目标查询方式,通过目标查询方式,将所要查询数据从预设引擎中对应的服务节点中导出,生成所要查询数据对应的报表。
47.在步骤s203中,请求信息所要查询数据的数据量不同时,在预设引擎中的查询方式不同,基于不同的查询方式进行查询,以便可以更快速得到对应的所要查询数据,生成所要查询数据对应的数据报表。
48.本实施例中,当确定目标查询方式后,将所要查询数据的查询请求写在json格式里面,然后进行相关的查询,预设引擎提供了restful api方式来访问并使用json格式,支持match查询、multi_match查询、term查询、range查询以及bool查询等。其中,预设引擎它不需要将数据按列和行进行排序,而是存储整个文档。文档是数据条目或传统数据库中的行。它存储这些文档,并通过建立索引来搜索其内容。它创建一个反向索引,该索引是映射
到文档的术语的排序字典。可伸缩性方面是因为文档可以分散在不同的块中。预设引擎为包含多个数据节点的主节点内的每个索引组织数据。这些数据节点有助于在多个硬件设备上扩展日期,并且还由于副本节点的缘故,预设引擎提供了弹性功能,
49.需要说明的是,通过预设引擎进行查询时,查询时包括dsl(domain specific language,特定领域)语言查询语句等,可以为逻辑查询信息中的部分查询语句,能够单独在es(elasticsearch,搜索和分析引擎)集群中执行查询功能。查询结果合并策略可以从逻辑查询信息中获取,查询结果合并策略包括对查询结果进行交集、并集和差集等,对应于逻辑查询信息中的must,should,must_not等关键字。
50.其中,基于所要查询数据进行查询时,当接收到json格式查询语句后,使用解析器将json格式查询语句中的条件json字符串转换为包含有es查询对象querybuilder的dsl查询语句的逻辑查询信息,在执行查询时,会将dsl查询语句转换为多个dsl查询语句的物理查询信息。查询构建对象包括布尔查询构建对象、值查询构建对象、范围查询构建对象和in查询构建对象等。
51.使用解析器将json格式查询语句进行map(映射)处理,获取json格式查询语句中的元素-值对以及元素-值对之间的逻辑关系;将第一个元素作为root元素,根据元素-值对以及逻辑关系生成es系统的查询构建对象。判断是否有逻辑索引名称,如果有,则根据逻辑关系构建带有逻辑索引信息的灵活别名布尔查询构建对象。逻辑关系包括与、或和非逻辑关系中的一种或多种。
52.需要说明的是,查询索引时,可以设置索引管理器,设置索引管理器用于配置有集群策略、分区策略、配置关联(join)字段名称、配置逻辑索引名称alias等。例如,集群策略:如按日期划分,奇数天的索引在集群a,偶数天的索引在集群b,分区策略:如每周生成一个索引,只查询8周内的索引,配置关联(join)字段名称:例如索引a的pin字段与索引b的user_pin字段关联。fields属性是一个数组,通常第一个字段作为关联属性,其余的字段作为额外的查询属性。
53.可选地,根据请求信息所要查询数据的数据量,匹配预设引擎中的查询方式作为目标查询方式,通过目标查询方式,将所要查询数据从预设引擎中对应的服务节点中导出,生成所要查询数据对应的报表,包括:
54.当所要查询数据的数据量小于预设阈值时,利用预设引擎中的分页查询方式,将所要查询数据导出,生成所要查询数据对应的报表;
55.当所要查询数据的数据量大于预设阈值时,利用预设引擎中的游标查询方式,将所要查询数据导出,生成所要查询数据对应的报表。
56.本实施例中,在预设引擎中的查询方式包括分页查询方式与游标查询方式,当所要查询数据的数据量小于预设阈值时,利用预设引擎中的分页查询方式,将所要查询数据导出,生成所要查询数据对应的报表,当所要查询数据的数据量大于预设阈值时,利用预设引擎中的游标查询方式,将所要查询数据导出,生成所要查询数据对应的报表。
57.可选地,当所要查询数据的数据量小于预设阈值时,利用预设引擎中的分页查询方式,将所要查询数据导出,生成所要查询数据对应的报表,包括:
58.根据接收到的所要查询数据的分页查询命令,获取分页查询的起始行数以及分页查询中每一页中的数据量,得到分页查询的查询结果;
59.根据所述分页查询的查询结果,将所要查询数据依次导出,生成所要查询数据对应的报表。
60.本实施例中,根据接收到的所要查询数据的分页查询命令,获取分页查询的起始行数以及分页查询中每一页中的数据量,得到分页查询的查询结果。其中,分页查询的起始行数与分页查询中每一页中的数据量为分页查询所需的两个参数,页查询的起始行数表征从哪一行开始查询数据,分页查询中每一页中的数据量表征分页查询的分页大小,这两个参数的初始值一般是前端传递过来的。
61.需要说明的是,预设引擎中可以记录本次分页查询的起始行数与分页查询中每一页中的数据量,并在本次分页查询执行完成时,确定本次分页查询的起始行数与分页查询中每一页中的数据量并记录,在进行下次分页查询前从记录数据中获取本次分页查询的起始行数与分页查询中每一页中的数据量但本领域技术人员应该可以理解,获取本次分页查询的起始行数与分页查询中每一页中的数据量的方式不限于此。
62.需要说明的是,一般起始行行号为0或者1,例如,对于mysql数据库,行号下标从0开始计数,所以该起始行行号为0;
63.可选地,当所要查询数据的数据量大于预设阈值时,利用预设引擎中的游标查询方式,将所要查询数据导出,生成所要查询数据对应的报表,包括:
64.根据预设的导出阈值,利用预设引擎中的游标查询方式,将所要查询数据每次以导出阈值的数据量,写入至预设文件中,得到写入文件;
65.将写入文件上传至文件容器平台,生成所要查询数据对应的报表链接,基于报表链接的下载结果,生成所要查询数据对应的报表。
66.本实施例中,根据预设的导出阈值,利用预设引擎中的游标查询方式,将所要查询数据每次以导出阈值的数据量,写入至预设文件中,得到写入文件,当通过游标查询时,fetch每次从预设引擎中读取数据,可以一次读一条或n条。当读取1条时,游标的偏移相应的增加1;当读取n条时,游标的偏移相应的增加n。例如,fetch语句从预设引擎中读取数据,每读取一条,游标的偏移相应增加1,直到读取到导出阈值为止,游标中存在flag为1的标记,尚未完成对全部所要查询数据的读取,则找到挂起的查询环境,继续执行查询语句,获取下一批所要查询数据,重试fetch语句。由于游标登记了nsql_ctx的缓存地址,即sql查询语句在虚拟机的入口,可以由fetch重启快速查询。
67.需要说明的是,读取所要查询数据的查询结果后若偏移量等于导出阈值,则结束所要查询数据的读取,其中,指导出阈值可以是需要读取所要查询数据的总数量,导出阈值可以由用户设定。
68.本实施例中,每当游标根据索引读取所要查询数据后,对游标的偏移量和导出阈值进行对比,若当游标的偏移量等于所要查询数据的导出阈值时,游标可以读取到足够数量的所要查询数据,此时可以结束所要查询数据的读取,若游标的偏移量小于所要查询数据的导出阈值,游标尚未读取到足够数量的所要查询数据,且flag为1,则游标可以继续根据登记索引读取所要查询数据,若游标的偏移量小于所要查询数据的导出阈值,游标尚未读取到足够数量的所要查询数据,且flag为0,则游标无法再获取到新的所要查询数据,那么游标读取完所有所要查询数据后结束所要查询数据的读取。
69.需要说明的时,当通过游标查询的方式查询到对应所要查询数据的查询结果后,
写入至预设文件中,得到写入文件,将写入文件上传至文件容器平台,生成所要查询数据对应的报表链接,基于报表链接的下载结果,生成所要查询数据对应的报表。其中,文件容器是指与预设引擎的服务节点基于网络进行数据同步的用于存储数据的容器,例如本地同步盘和云服务器等。
70.另一实施例中,当需要将实时数据导出时,可以预先设置对应的获取频次,例如,当设置每10分钟获取一次时,若一次获取的时间为11点10分到11点20分产生的数据,若下一次的获取时间为11点30分,则需要获取将11点20分到11点30分产生的数据。获取时,首先将11点20分到11点30分产生的数据进行排序处理,排序处理时,按照正序进行排序,即,按照数据产生的时间进行排序,分别获取到对应的数据,将获取到的数据同步至预设引擎的服务节点中。
71.需要说明的是,当基于正序,获取数据时时,若存在数据获取失败时,可以对获取失败的数据进行标记,当下一次获取数据时,可以在上一次获取失败的时间直接再次获取,防止对数据的重复获取。例如,当获取10点12分的数据失败时。记录这个失败时间点,即10点12分。下次任务就从10点12分到下次任务时间进行获取。
72.根据接收到的报表生成的请求信息,获取请求信息所要查询数据的数据来源,检测数据来源对应的数据库是否为预设来源数据库,在检测到数据来源对应的数据库为预设来源数据库时,将所要查询数据从预设来源数据库同步至预设引擎对应的服务节点中存储,根据请求信息所要查询数据的数据量,匹配预设引擎中的查询方式作为目标查询方式,通过目标查询方式,将所要查询数据从预设引擎对应的服务节点中导出,生成所要查询数据对应的报表,通过将所要查询数据同步至预设引擎中,提高了大批量数据的查询,从而提高了大批量数据对应报表的生成效率。
73.参见图3,是本发明一实施例提供的一种数据报表生成方法的流程示意图,如图3,该数据报表生成方法可以包括以下步骤:
74.s301:根据接收到的报表生成的请求信息,获取请求信息所要查询数据的数据来源,检测数据来源对应的数据库是否为预设来源数据库;
75.其中,上述步骤s301与上述步骤s201的内容相同,可参考上述步骤s201的描述,在此不再赘述。
76.s302:在检测数据来源对应的数据库不是预设来源数据库存储的数据库时,将所要查询数据同步至本地数据库;
77.s303:通过调度平台,将所要查询数据对应的数据库从本地数据库中同步至预设来源数据库中进行存储;
78.本实施例中,在检测数据来源对应的数据库不是预设来源数据库时,将所要查询数据同步至本地数据库,通过调度平台,将所要查询数据对应的数据库从本地数据库中同步至预设来源数据库中进行存储。在同步至本地数据库时,对所要查询数据进行标注同步标签,在保存同步数据时,需要考虑的问题是该所要查询数据的标签是否是失败标签。具体而言,首先,将同步数据保存在本地数据库中,接着,判断保存的同步数据的标签是否为失败标签,如果否,保存结束,如果是,在保存结束之后,可以对所要查询数据的用户发送信息。
79.例如,当所要查询数据需要同步到本地数据库时,从服务器端提取出对应的所要
查询数据,同步至本地数据库中,若存在异常情况下(网络通讯不正常时),本地数据库没有完全同步至本地数据库中,可以对所要查询数据标记同步失败标签,当所要查询数据完全同步至本地数据库中时,可以将失败标签修改为成功标签。
80.将本地数据库中的数据同步至预设来源数据库中,同步时,预设来源数据库与数据源的映射关系,是预设来源数据库与数据源一一对应,每一个数据源有且仅一个对应的预设来源数据库,每个预设来源数据库只接收一个数据源同步的数据。本实施例中,服务器中的预设来源数据库数量比数据源数量多,便于服务器又获取到其他数据源时,直接将又获取到的数据源与增加的预设来源数据库建立映射关系。可以数据源的硬件设备的id为对应的目标预设来源数据库进行命名。
81.在同步数据时,分别将目标预设来源数据库中的数据加载到预设引擎服务节点。目标预设来源数据库中的多个子数据库分别与数据源建立有对应的关系,在同步的时候,将目标hive库中的数据同步到预设引擎服务节点,而每个目标预设来源数据库中的数据是具有一定的规律性的,这样就减小数据同步的查找数据的时间,就非常迅速地同步到预设引擎服务节点。
82.需要说明的是,由于所要查询数据可能具有不同的来源地、不同的数据格式、或不同排版样式,当选定好目标数据后,优选还对所要查询数据进行预处理,以使得所要查询数据符合预设规则。对所要查询数据进行预处理可以是将所要查询数据转换成指定数据格式的数据。对所要查询数据行预处理还可以具体包括以下步骤:对目标数据进行逐行读取,并判断每行数据是否符合预设规则;当判断出具有不符合预设规则的行数据时,输出数据编辑提示信息;接收对不符合预设规则的行数据的编辑处理,重复判断步骤,直到每行数据符合预设规则。预设规则可以根据实际使用需求进行制定,例如,数据格式要求、每行数据遵循的规则(每行包含几列,每列是数字还是文本等)。
83.需要说明的是,本实施例的预设来源数据库是建立在预设来源数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据,同时也是一个被组织成一组拥有正式描述性的表格,该形式的表格作用的实质是装载着数据项的特殊集体,这些表格中的数据能以许多不同的方式被存取或重新召集而不需要重新组织数据库表格,每个表格包含用行或列表示的一个或更多的数据种类。本实施例数据库表格的表结构包括:表名称、库名称、表中包括哪些字段、各字段的描述信息等。sqoop是一款开源的工具,主要用于在hadoop与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如:mysql,oracle,postgres等)中的数据导进到hadoop的hdfs中,也可以将hdfs的数据导进到关系型数据库中。所有的预设来源数据库均使用同样的sqoop脚本进行规范整理,在每个目标预设来源数据库中配置预配置的表结构,服务器读取目标预设来源数据库中的数据,根据预设的脚本指令,将各子数据库中的数据配置到表结构中,将子数据库中的数据进行定义与标记,便于后续在同步至预设引擎服务节点方便查询与调用。规范整理的方法包括:将数据按照同样的顺序规则存放,或根据不同的数据类型添加不同的标记。
84.s304:根据请求信息中所要查询数据的数据量,匹配预设引擎中的查询方式作为目标查询方式,通过目标查询方式,将所要查询数据从预设引擎对应的服务节点中导出,生成所要查询数据对应的报表。
85.其中,上述步骤s304与上述步骤s203的内容相同,可参考上述步骤s203的描述,在此不再赘述。
86.参见图4,是本发明一实施例提供的一种数据报表生成方法的流程示意图,如图4,该数据报表生成方法可以包括以下步骤:
87.s401:根据接收到的报表生成的请求信息,获取请求信息所要查询数据的数据来源,检测数据来源对应的数据库是否为预设来源数据库;
88.s402:在检测到数据来源对应的数据库为预设来源数据库时,将所要查询数据从预设来源数据库同步至预设引擎对应的服务节点中存储;
89.其中,上述步骤s401至步骤s402与上述步骤s201至步骤s202的内容相同,可参考上述步骤s201至步骤s202的描述,在此不再赘述。
90.s403:在预设引擎对应的服务节点中检测同步的所要查询数据是否异常;
91.s404:在同步的所要查询数据异常时,根据预设的指令,对所要查询数据中的异常数据进行删除处理,在预设引擎对应的服务节点中存储正常的所要查询数据。
92.本实施例中,在预设引擎对应的服务节点中检测同步的所要查询数据是否异常,检测是否为异常时,可以将同步中在预设引擎的所要查询数据与预设来源数据库中的所要查询数据进行对比,当对比结果不同时,认为预设引擎中存在异常数据,删除对应的异常数据,删除时,可以根据预设的删除指令进行删除,例如,可以设置当存在异常数据时,删除异常数据对应的数据表中的所有数据,或者设置当存在异常数据时,删除以异常数据相关爱你的数据等。
93.s405:根据请求信息中所要查询数据的数据量,匹配预设引擎中的查询方式作为目标查询方式,通过目标查询方式,将所要查询数据从预设引擎对应的服务节点中导出,生成所要查询数据对应的报表。
94.其中,上述步骤s405与上述步骤s203的内容相同,可参考上述步骤s203的描述,在此不再赘述。
95.请参阅图5,图5是本发明实施例提供的一种数据报表生成装置的结构示意图。本实施例中该计算机设备包括的各单元用于执行图2至图4对应的实施例中的各步骤。具体请参阅图2至图4以及图2至图4所对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。参见图5,数据报表生成50包括:检测模块51,同步模块52,报表生成模块53。
96.检测模块51,用于根据接收到的报表生成的请求信息,获取请求信息所要查询数据的数据来源,检测数据来源对应的数据库是否为预设来源数据库。
97.同步模块52,用于在检测到数据来源对应的数据库为预设来源数据库时,则从预设来源数据库中,将所要查询数据同步至预设引擎对应的服务节点中存储。
98.报表生成模块53,用于根据请求信息中所要查询数据的数据量,匹配预设引擎中的查询方式作为目标查询方式,通过目标查询方式,将所要查询数据从预设引擎对应的服务节点中导出,生成所要查询数据对应的报表。
99.可选的是,上述同步模块52包括:
100.创建映射表单元,用于创建预设来源数据库与预设引擎对应的服务节点的映射表。
101.存储单元,用于根据映射表,将所要查询数据从预设来源数据库中同步预设引擎对应的服务节点中存储。
102.可选的是,上述报表生成模块53包括:
103.分页查询单元,用于当所要查询数据的数据量小于预设阈值时,利用预设引擎中的分页查询方式,将所要查询数据导出,生成所要查询数据对应的报表。
104.游标查询单元,用于当所要查询数据的数据量大于预设阈值时,利用预设引擎中的游标查询方式,将所要查询数据导出,生成所要查询数据对应的报表。
105.可选的是,上述分页查询单元包括:
106.获取子单元,用于根据接收到的所要查询数据的分页查询命令,获取分页查询的起始行数以及分页查询中每一页中的数据量,得到分页查询的查询结果;
107.导出子单元,用于根据分页查询的查询结果,将所要查询数据依次导出,生成所要查询数据对应的报表。
108.可选的是,上述游标查询单元包括:
109.写入子单元,用于根据预设的导出阈值,利用预设引擎中的游标查询方式,将所要查询数据每次以导出阈值的数据量,写入至预设文件中,得到写入文件;
110.上传子单元,用于将写入文件上传至文件容器平台,生成所要查询数据对应的报表链接,基于报表链接的下载结果,生成所要查询数据对应的报表。
111.可选的是,上述生成装置还包括:
112.本地数据库同步模块,用于在检测数据来源对应的数据库不是预设来源数据库时,将所要查询数据同步至本地数据库。
113.调度模块,用于通过调度平台,将所要查询数据对应的数据库从本地数据库中同步至预设来源数据库中进行存储。
114.可选的是,上述生成装置还包括:
115.检测模块,用于在预设引擎对应的服务节点中检测同步的所要查询数据是否异常。
116.删除模块,用于在同步的所要查询数据异常时,根据预设的指令,对所要查询数据中的异常数据进行删除处理,在预设引擎对应的服务节点中存储正常的所要查询数据。
117.需要说明的是,上述单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
118.图6是本发明实施例提供的一种计算机设备的结构示意图。如图6所示,该实施例的计算机设备包括:至少一个处理器(图6中仅示出一个)、存储器以及存储在存储器中并可在至少一个处理器上运行的计算机程序,处理器执行计算机程序时实现上述任意各个的数据报表生成方法实施例中的步骤。
119.该计算机设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,图6仅仅是计算机设备的举例,并不构成对计算机设备的限定,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括网络接口、显示屏和输入装置等。
120.所称处理器可以是cpu,该处理器还可以是其他通用处理器、数字信号处理器
(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
121.存储器包括可读存储介质、内存储器等,其中,内存储器可以是计算机设备的内存,内存储器为可读存储介质中的操作系统和计算机可读指令的运行提供环境。可读存储介质可以是计算机设备的硬盘,在另一些实施例中也可以是计算机设备的外部存储设备,例如,计算机设备上配备的插接式硬盘、智能存储卡(smart media card,smc)、安全数字(secure digital,sd)卡、闪存卡(flash card)等。进一步地,存储器还可以既包括计算机设备的内部存储单元也包括外部存储设备。存储器用于存储操作系统、应用程序、引导装载程序(bootloader)、数据以及其他程序等,该其他程序如计算机程序的程序代码等。存储器还可以用于暂时地存储已经输出或者将要输出的数据。
122.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质至少可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、计算机存储器、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、电载波信号、电信信号以及软件分发介质。例如u盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
123.本发明实现上述实施例方法中的全部或部分流程,也可以通过一种计算机程序产品来完成,当计算机程序产品在计算机设备上运行时,使得计算机设备执行时实现可实现上述方法实施例中的步骤。
124.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
125.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出
本发明的范围。
126.在本发明所提供的实施例中,应该理解到,所揭露的装置/计算机设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/计算机设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
127.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
128.以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献