掌桥专利:专业的专利平台
掌桥专利
首页

报表数据查询方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 11:42:32


报表数据查询方法、装置、电子设备及存储介质

技术领域

本发明涉及数据处理领域,尤其涉及一种报表数据查询方法、装置、电子设备及计算机可读存储介质。

背景技术

可视化报表编辑系统是一种支持可视化报表分析的无代码开发平台,通过组件配置和鼠标拖拽,用户可以根据业务需要,通过鼠标拖拽报表组件和对报表组件进行属性配置,对报表配置数据源,对动态数据组件配置维度和指标集以及相应的过滤器,由系统在后台根据动态数据组件的配置自动转化成查询语句,在报表预览和查看的时候,执行所有动态转化的查询语句,返回查询结果并填充到诸如柱状图、雷达图、转换图之类的动态数据组件,从而完成报表数据的图形化多维度展现。

一个复杂的报表通常含有多个动态数据组件,而一个动态数据组件也可能需要查询多个查询语句,通常复杂的报表会一次性查询20条查询语句甚至更多,因此在报表数据查询时往往会需要多条查询语句执行,这样导致在利用查询语句向源数据库查询报表数据时的延迟会非常大,甚至会导致报表数据查询响应超时,严重影响用户体验。

发明内容

本发明提供一种报表数据查询方法、装置、电子设备及计算机可读存储介质,其主要目的在于提高报表数据查询的速度。

为实现上述目的,本发明提供的一种报表数据查询方法,包括:

响应于报表数据的查询请求,生成所述报表数据的查询标识及查询对象;

根据所述查询标识及查询对象,生成对应的初始查询语句,并根据所述初始查询语句中的查询指标,将所述初始查询语句进行合并,得到合并查询语句;

根据所述合并查询语句,采用并发线程执行的方式向预设数据库查询报表数据,得到所述合并查询语句的合并查询结果;

将所述合并查询结果进行分解,得到对应初始查询语句的查询结果。

可选地,所述响应于报表数据的查询请求,生成所述报表数据的查询标识及查询对象,包括:

识别所述查询请求的报表数据查询类型及查询时间,根据所述报表数据查询类型及查询时间,建立所述报表数据的查询标识;

获取所述查询请求中报表查询指标及查询条件,根据所述报表查询指标及查询条件,建立所述报表数据的查询对象。

可选地,所述根据所述查询标识及查询对象,生成对应的初始查询语句,包括:

根据所述查询标识,生成查询语句的id,并将所述查询对象转换为查询语句的查询参数;

根据所述id和所述查询参数,生成对应的初始查询语句。

可选地,所述根据所述初始查询语句中的查询指标,将所述初始查询语句进行合并,得到合并查询语句,包括:

获取所述查询指标对应的查询条件;

将所述查询条件及查询指标一致的初始查询语句进行语句合并,得到合并查询语句。

可选地,所述根据所述合并查询语句,采用并发线程执行的方式向预设数据库查询报表数据之前,还包括:

判断所述合并查询语句的数量是否超过预设阈值;

若所述合并查询语句的数量未超过预设阈值,则根据所述合并查询语句,采用并发线程执行的方式向预设数据库查询报表数据;

若所述合并查询语句的数量超过预设阈值,对所述合并查询语句进行分批处理,根据分批处理后的所述合并查询语句,采用并发线程执行的方式向预设数据库查询报表数据。

可选地,所述根据合并查询语句,采用并发线程执行的方式向预设数据库查询报表数据,得到所述合并查询语句的合并查询结果,包括:

对所述合并查询语句进行解析,生成查询节点,将所述数据库中报表数据组件的查询对象与所述查询节点进行匹配;

根据匹配成功的所述查询节点和查询对象,构建报表数据的查询逻辑树,对所述查询逻辑树进行逻辑优化,得到优化查询逻辑树;

根据所述优化查询逻辑树,采用并发线程执行的方式执行所述报表数据的查询,得到所述合并查询语句的合并查询结果。

可选地,所述将所述合并查询结果进行分解,得到对应初始查询语句的查询结果,包括:

对所述初始查询语句中的查询指标进行数量统计,得到对应初始查询语句的查询指标数量;

获取所述合并查询结果对应的执行查询语句;

根据所述查询指标数量和所述执行查询语句,执行所述合并查询结果的分解,得到对应初始查询语句的查询结果。

为了解决上述问题,本发明还提供一种报表数据查询装置,所述装置包括:

生成模块,用于响应于报表数据的查询请求,生成所述报表数据的查询标识及查询对象;

合并模块,用于根据所述查询标识及查询对象,生成对应的初始查询语句,并根据所述初始查询语句中的查询指标,将所述初始查询语句进行合并,得到合并查询语句;

查询模块,用于根据所述合并查询语句,采用并发线程执行的方式向预设数据库查询报表数据,得到所述合并查询语句的合并查询结果;

分解模块,用于将所述合并查询结果进行分解,得到对应初始查询语句的查询结果。

为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:

至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以实现上述所述的报表数据查询方法。

为了解决上述问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个计算机程序,所述至少一个计算机程序被电子设备中的处理器执行以实现上述所述的报表数据查询方法。

本发明实施例首先基于报表数据的查询标识及查询对象,生成对应的初始查询语句,并根据所述初始查询语句中的查询指标,将所述初始查询语句进行合并,得到合并查询语句,以将具有相同查询对象的查询语句进行合并,减少查询语句与数据库的交互次数,提高报表数据查询的速度;其次,本发明采用并发线程的查询方式向数据库进行报表数据查询,可以减少报表数据查询的响应时间,优化报表数据的查询性能。因此,本发明提出的一种报表数据查询方法、装置、电子设备以及存储介质可以提高报表数据查询的速度。

附图说明

图1为本发明一实施例提供的报表数据查询方法的流程示意图;

图2为本发明第一实施例中图1提供的报表数据查询方法其中一个步骤的详细流程示意图;

图3为本发明一实施例提供的报表数据查询装置的模块示意图;

图4为本发明一实施例提供的实现报表数据查询方法的电子设备的内部结构示意图;

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本申请实施例提供一种报表数据查询方法。所述报表数据查询方法的执行主体包括但不限于服务端、终端等能够被配置为执行本申请实施例提供的该方法的电子设备中的至少一种。换言之,所述报表数据查询方法可以由安装在终端设备或服务端设备的软件或硬件来执行,所述软件可以是区块链平台。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。

参照图1所示,为本发明一实施例提供的报表数据查询方法的流程示意图。在本发明实施例中,所述报表数据查询方法包括:

S1、响应于报表数据的查询请求,生成所述报表数据的查询标识及查询对象。

本发明实施例中,所述报表数据是指需要展示在前端页面中的数据,其包括:统计指标、图表以及数据列表,所述统计指标如银行按业务类型统计定期存款、活期存款、理财、信托等资产余额数据,所述图表例如按时间或地区统计各资产余额,并以折线图展示资产余额随时间变化趋势,所述数据列表如以数据表格的形式展示资产余额的折线图(数据列表支持按表列排序)。进一步地,所述查询请求基于不同用户需求生成,比如用户A的需求为:查询近一年内华南地区钢材价格的报表数据。

本发明的其中一个可选实施例中,参阅图2所示,所述S1包括:

S20、识别所述查询请求的报表数据查询类型及查询时间,根据所述报表数据查询类型及查询时间,建立所述报表数据的查询标识;

S21、获取所述查询请求中报表查询指标及查询条件,根据所述报表查询指标及查询条件,建立所述报表数据的查询对象。

其中,所述查询标识用于表征所述查询请求的唯一性,所述查询对象用于转换为查询报表数据的语句的内存对象,所述报表查询指标是指具体需要查询的报表数据(如资产余额),所述查询条件是指所述查询指标需要遵循的查询规则,包括:筛选条件、分页条件、下拉条件以及排序条件等。例如对于“获取近一年内华南地区钢材价格的报表数据”的查询请求,其报表数据查询类型可以为“钢材价格查询”,查询指标可以为“钢材价格”,查询条件可以为“近一年内和华南地区”。

S2、根据所述查询标识及查询对象,生成对应的初始查询语句,并根据所述初始查询语句中的查询指标,将所述初始查询语句进行合并,得到合并查询语句。

本发明的其中一个实施例中,所述根据所述查询标识及查询对象,生成对应的初始查询语句,包括:根据所述查询标识,生成查询语句的id,利用预设的对象转换程序将所述查询对象转换为查询语句的查询参数,根据所述id和所述查询参数,生成对应的初始查询语句。可选的,所述预设的对象转换程序通过Java语言编译。

应该了解,在向数据库查询数据时是基于查询语句(SQL)实现,因此,本发明实施例通过所述初始查询语句,以保障后续报表数据的正常查询。

进一步地,有上述S1可知,在生成的所述初始查询语句中都会存在查询指标,即待查询的报表数据,例如初始查询语句Q1:select sum(a.c1)x1,sum(a.c2)x2 from a;初始查询语句Q2:select sum(a.c2)x2,sum(a.c3)x3 from a,则可以得到所述Q1的查询指标为x1和x2,所述Q2的查询指标为x2和x3。因此,本发明根据所述初始查询语句中的查询指标,将所述初始查询语句进行合并,以减少后续向数据库查询的次数,提高报表数据的查询性能。

详细地,所述根据所述初始查询语句中的查询指标,将所述初始查询语句进行合并,得到合并查询语句,包括:获取所述查询指标对应的查询条件,将所述查询条件及查询指标一致的初始查询语句进行语句合并,得到合并查询语句。如上述Q1和Q2的查询条件均从“a”中获取,则对Q1和Q2合并生成Q3:select sum(a.c1)x1,sum(a.c2)x2,sum(a.c3)x3from a,则可以修改查询语句Q1对应查询对象中的查询指标列表(如[S1,S2])添加[S3],形成新的查询指标列表[S1,S2,S3],并同时标记查询语句Q2对应的查询对象无需执行,以如{Q1:[Q2…]}的map键值对形式记录在内存中,其中修改后的Q1表示被合并到需要执行的的查询语句标识,修改后的Q2表示被合并后无需执行的查询语句标识。

S3、根据所述合并查询语句,采用并发线程执行的方式向预设数据库查询报表数据,得到所述合并查询语句的合并查询结果。

本发明实施例中,所述根据所述合并查询语句,采用并发线程执行的方式向预设数据库查询报表数据之前,还包括:判断所述合并查询语句的数量是否超过预设阈值,若所述合并查询语句的数量未超过预设阈值,则根据所述合并查询语句,采用并发线程执行的方式向预设数据库查询报表数据;若所述合并查询语句的数量超过预设阈值,对所述合并查询语句进行分批处理,根据分批处理后的所述合并查询语句,采用并发线程执行的方式向预设数据库查询报表数据。

其中,所述分批处理是指采用分批次返回合并查询语句的查询结果的方式,以确保所述合并查询语句的数量满足预设阈值,使得数据库能够及时响应当前合并查询语句的查询,如所述预设阈值为10,则设置每次合并查询语句向数据库查询的数量最多执行9条查询语句并返回。需要说明的是,在执行分批次返回合并查询语句的查询结果过程中,返回给前端页面的数据结果报文中增加一个标识,以表示还剩余报表数据结果需要前端页面获取。

基于判断所述合并查询语句的数量是否超过预设阈值,以选取相应的查询方式执行报表数据的查询,可以进一步保障报表数据的查询性能。

进一步地,本发明实施例中,所述并发线程执行是基于合并查询语句的数量,开辟相对应的线程数量,即每条线程运行一条合并查询语句,以减少数据库的响应时间,所述预设数据库包括MySQL、HBASE以及DB等数据库。

详细地,所述根据合并查询语句,采用并发线程执行的方式向预设数据库查询报表数据,得到所述合并查询语句的合并查询结果,包括:利用calcite框架对所述合并查询语句进行解析,生成查询节点,将所述数据库中报表数据组件的查询对象与所述查询节点进行匹配,根据匹配成功的所述查询节点和查询对象,构建报表数据的查询逻辑树,利用所述calcite框架中的优化器对所述查询逻辑树进行逻辑优化,得到优化查询逻辑树,根据所述优化查询逻辑树,采用并发线程执行的方式执行所述报表数据的查询,得到所述合并查询语句的合并查询结果。

其中,所述calcite框架用于优化每个查询语句查询性能,提高查询速度,及支持多种数据库的sql查询,所述查询节点用于表征对应报表数据的查询条件,所述报表数据组件是指预先在数据库内存中配置有相应查询对象的组件,包括:统计指标列表、维度列表,过滤器列表、排序器列表、分页器,数据源列表等报表数据信息,所述查询逻辑树用于表征对应报表数据的查询节点顺序。

进一步地,为保障所述合并查询结果的隐私性和安全性,所述合并查询结果还可存储于一区块链节点中。

S4、将所述合并查询结果进行分解,得到对应初始查询语句的查询结果。

应该了解,在所述合并查询结果相对应的是合并查询语句,并不是初始查询语句中的查询结果,因此,本发明实施例通过将所述合并查询结果进行分解,以生成所述初始查询语句对应的查询结果。

本发明实施例中,所述将所述合并查询结果进行分解,得到对应初始查询语句的查询结果,包括:对所述初始查询语句中的查询指标进行数量统计,得到对应初始查询语句的查询指标数量,获取所述合并查询结果对应的执行查询语句,根据所述查询指标数量和所述执行查询语句,执行所述合并查询结果的分解,得到对应初始查询语句的查询结果。

示例性地,所述初始查询语句为上述Q1和Q2,所述合并查询语句为Q3,Q3的查询结果为[S1,S2,S3],其中,所述Q3的执行查询语句为Q1,Q2为无需执行的查询语句,对所述初始查询语句进行查询指标的数量统计为:S1数量为1,S2数量为2,S3数量为1。由于Q2为无需执行的查询语句,因此Q2的查询结果直接从Q3进行提取,得到Q2的查询结果[S2,S3],进一步地,由于Q1作为执行查询语句,因此利用查询指标数量对Q2提取的查询指标依次递减,若递减后的查询指标为0,则将Q3对应的查询结果中的查询指标删除,若递减后的查询指标不为0,则将Q3对应的查询结果中的查询指标保留作为Q1的查询结果,即[S1:1-0=1,S2:2-1=1,S3:1-1=0],生成Q1的查询结果为[S1,S2]。

本发明实施例首先基于报表数据的查询标识及查询对象,生成对应的初始查询语句,并根据所述初始查询语句中的查询指标,将所述初始查询语句进行合并,得到合并查询语句,以将具有相同查询对象的查询语句进行合并,减少查询语句与数据库的交互次数,提高报表数据查询的速度;其次,本发明采用并发线程的查询方式向数据库进行报表数据查询,可以减少报表数据查询的响应时间,优化报表数据的查询性能。因此,本发明提出的一种报表数据查询方法可以提高报表数据查询的速度。

如图3所示,是本发明报表数据查询装置的功能模块图。

本发明所述报表数据查询装置100可以安装于电子设备中。根据实现的功能,所述报表数据查询装置可以包括生成模块101、合并模块102、查询模块103以及分解模块104。本发所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。

在本实施例中,关于各模块/单元的功能如下:

所述生成模块101,用于响应于报表数据的查询请求,生成所述报表数据的查询标识及查询对象。

本发明实施例中,所述报表数据是指需要展示在前端页面中的数据,其包括:统计指标、图表以及数据列表,所述统计指标如银行按业务类型统计定期存款、活期存款、理财、信托等资产余额数据,所述图表例如按时间或地区统计各资产余额,并以折线图展示资产余额随时间变化趋势,所述数据列表如以数据表格的形式展示资产余额的折线图(数据列表支持按表列排序)。进一步地,所述查询请求基于不同用户需求生成,比如用户A的需求为:查询近一年内华南地区钢材价格的报表数据。

本发明的其中一个可选实施例中,所述响应于报表数据的查询请求,生成所述报表数据的查询标识及查询对象,所述生成模块101采用下述方式执行:

步骤I、识别所述查询请求的报表数据查询类型及查询时间,根据所述报表数据查询类型及查询时间,建立所述报表数据的查询标识;

步骤II、获取所述查询请求中报表查询指标及查询条件,根据所述报表查询指标及查询条件,建立所述报表数据的查询对象。

其中,所述查询标识用于表征所述查询请求的唯一性,所述查询对象用于转换为查询报表数据的语句的内存对象,所述报表查询指标是指具体需要查询的报表数据(如资产余额),所述查询条件是指所述查询指标需要遵循的查询规则,包括:筛选条件、分页条件、下拉条件以及排序条件等。例如对于“获取近一年内华南地区钢材价格的报表数据”的查询请求,其报表数据查询类型可以为“钢材价格查询”,查询指标可以为“钢材价格”,查询条件可以为“近一年内和华南地区”。

所述合并模块102,用于根据所述查询标识及查询对象,生成对应的初始查询语句,并根据所述初始查询语句中的查询指标,将所述初始查询语句进行合并,得到合并查询语句。

本发明的其中一个实施例中,所述根据所述查询标识及查询对象,生成对应的初始查询语句,所述合并模块102采用下述方式执行:根据所述查询标识,生成查询语句的id,利用预设的对象转换程序将所述查询对象转换为查询语句的查询参数,根据所述id和所述查询参数,生成对应的初始查询语句。可选的,所述预设的对象转换程序通过Java语言编译。

应该了解,在向数据库查询数据时是基于查询语句(SQL)实现,因此,本发明实施例通过所述初始查询语句,以保障后续报表数据的正常查询。

进一步地,有上述S1可知,在生成的所述初始查询语句中都会存在查询指标,即待查询的报表数据,例如初始查询语句Q1:select sum(a.c1)x1,sum(a.c2)x2 from a;初始查询语句Q2:select sum(a.c2)x2,sum(a.c3)x3 from a,则可以得到所述Q1的查询指标为x1和x2,所述Q2的查询指标为x2和x3。因此,本发明根据所述初始查询语句中的查询指标,将所述初始查询语句进行合并,以减少后续向数据库查询的次数,提高报表数据的查询性能。

详细地,所述根据所述初始查询语句中的查询指标,将所述初始查询语句进行合并,得到合并查询语句,所述合并模块102采用下述方式执行:获取所述查询指标对应的查询条件,将所述查询条件及查询指标一致的初始查询语句进行语句合并,得到合并查询语句。如上述Q1和Q2的查询条件均从“a”中获取,则对Q1和Q2合并生成Q3:select sum(a.c1)x1,sum(a.c2)x2,sum(a.c3)x3 from a,则可以修改查询语句Q1对应查询对象中的查询指标列表(如[S1,S2])添加[S3],形成新的查询指标列表[S1,S2,S3],并同时标记查询语句Q2对应的查询对象无需执行,以如{Q1:[Q2…]}的map键值对形式记录在内存中,其中修改后的Q1表示被合并到需要执行的的查询语句标识,修改后的Q2表示被合并后无需执行的查询语句标识。

所述查询模块103,用于根据所述合并查询语句,采用并发线程执行的方式向预设数据库查询报表数据,得到所述合并查询语句的合并查询结果。

本发明实施例中,所述根据所述合并查询语句,采用并发线程执行的方式向预设数据库查询报表数据之前,所述查询模块103还包括:判断所述合并查询语句的数量是否超过预设阈值,若所述合并查询语句的数量未超过预设阈值,则根据所述合并查询语句,采用并发线程执行的方式向预设数据库查询报表数据;若所述合并查询语句的数量超过预设阈值,对所述合并查询语句进行分批处理,根据分批处理后的所述合并查询语句,采用并发线程执行的方式向预设数据库查询报表数据。

其中,所述分批处理是指采用分批次返回合并查询语句的查询结果的方式,以确保所述合并查询语句的数量满足预设阈值,使得数据库能够及时响应当前合并查询语句的查询,如所述预设阈值为10,则设置每次合并查询语句向数据库查询的数量最多执行9条查询语句并返回。需要说明的是,在执行分批次返回合并查询语句的查询结果过程中,返回给前端页面的数据结果报文中增加一个标识,以表示还剩余报表数据结果需要前端页面获取。

基于判断所述合并查询语句的数量是否超过预设阈值,以选取相应的查询方式执行报表数据的查询,可以进一步保障报表数据的查询性能。

进一步地,本发明实施例中,所述并发线程执行是基于合并查询语句的数量,开辟相对应的线程数量,即每条线程运行一条合并查询语句,以减少数据库的响应时间,所述预设数据库包括MySQL、HBASE以及DB等数据库。

详细地,所述根据合并查询语句,采用并发线程执行的方式向预设数据库查询报表数据,得到所述合并查询语句的合并查询结果,所述查询模块103采用下述方式执行:利用calcite框架对所述合并查询语句进行解析,生成查询节点,将所述数据库中报表数据组件的查询对象与所述查询节点进行匹配,根据匹配成功的所述查询节点和查询对象,构建报表数据的查询逻辑树,利用所述calcite框架中的优化器对所述查询逻辑树进行逻辑优化,得到优化查询逻辑树,根据所述优化查询逻辑树,采用并发线程执行的方式执行所述报表数据的查询,得到所述合并查询语句的合并查询结果。

其中,所述calcite框架用于优化每个查询语句查询性能,提高查询速度,及支持多种数据库的sql查询,所述查询节点用于表征对应报表数据的查询条件,所述报表数据组件是指预先在数据库内存中配置有相应查询对象的组件,包括:统计指标列表、维度列表,过滤器列表、排序器列表、分页器,数据源列表等报表数据信息,所述查询逻辑树用于表征对应报表数据的查询节点顺序。

进一步地,为保障所述合并查询结果的隐私性和安全性,所述合并查询结果还可存储于一区块链节点中。

所述分解模块104,用于将所述合并查询结果进行分解,得到对应初始查询语句的查询结果。

应该了解,在所述合并查询结果相对应的是合并查询语句,并不是初始查询语句中的查询结果,因此,本发明实施例通过将所述合并查询结果进行分解,以生成所述初始查询语句对应的查询结果。

本发明实施例中,所述将所述合并查询结果进行分解,得到对应初始查询语句的查询结果,所述分解模块104采用下述方式执行:对所述初始查询语句中的查询指标进行数量统计,得到对应初始查询语句的查询指标数量,获取所述合并查询结果对应的执行查询语句,根据所述查询指标数量和所述执行查询语句,执行所述合并查询结果的分解,得到对应初始查询语句的查询结果。

示例性地,所述初始查询语句为上述Q1和Q2,所述合并查询语句为Q3,Q3的查询结果为[S1,S2,S3],其中,所述Q3的执行查询语句为Q1,Q2为无需执行的查询语句,对所述初始查询语句进行查询指标的数量统计为:S1数量为1,S2数量为2,S3数量为1。由于Q2为无需执行的查询语句,因此Q2的查询结果直接从Q3进行提取,得到Q2的查询结果[S2,S3],进一步地,由于Q1作为执行查询语句,因此利用查询指标数量对Q2提取的查询指标依次递减,若递减后的查询指标为0,则将Q3对应的查询结果中的查询指标删除,若递减后的查询指标不为0,则将Q3对应的查询结果中的查询指标保留作为Q1的查询结果,即[S1:1-0=1,S2:2-1=1,S3:1-1=0],生成Q1的查询结果为[S1,S2]。

本发明实施例首先基于报表数据的查询标识及查询对象,生成对应的初始查询语句,并根据所述初始查询语句中的查询指标,将所述初始查询语句进行合并,得到合并查询语句,以将具有相同查询对象的查询语句进行合并,减少查询语句与数据库的交互次数,提高报表数据查询的速度;其次,本发明采用并发线程的查询方式向数据库进行报表数据查询,可以减少报表数据查询的响应时间,优化报表数据的查询性能。因此,本发明提出的一种报表数据查询装置可以提高报表数据查询的速度。

如图4所示,是本发明实现报表数据查询方法的电子设备的结构示意图。

所述电子设备1可以包括处理器10、存储器11和总线,还可以包括存储在所述存储器11中并可在所述处理器10上运行的计算机程序,如报表数据查询程序12。

其中,所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(SecureDigital,SD)卡、闪存卡(Flash Card)等。进一步地,所述存储器11还可以既包括电子设备1的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如报表数据查询的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。

所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10是所述电子设备的控制核心(Control Unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如执行报表数据查询程序12等),以及调用存储在所述存储器11内的数据,以执行电子设备1的各种功能和处理数据。

所述总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。

图4仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图4示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

例如,尽管未示出,所述电子设备1还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备1还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。

进一步地,所述电子设备1还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该电子设备1与其他电子设备之间建立通信连接。

可选地,该电子设备1还可以包括用户接口,用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。

应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。

所述电子设备1中的所述存储器11存储的报表数据查询程序12是多个计算机程序的组合,在所述处理器10中运行时,可以实现:

响应于报表数据的查询请求,生成所述报表数据的查询标识及查询对象;

根据所述查询标识及查询对象,生成对应的初始查询语句,并根据所述初始查询语句中的查询指标,将所述初始查询语句进行合并,得到合并查询语句;

根据所述合并查询语句,采用并发线程执行的方式向预设数据库查询报表数据,得到所述合并查询语句的合并查询结果;

将所述合并查询结果进行分解,得到对应初始查询语句的查询结果。

具体地,所述处理器10对上述计算机程序的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。

进一步地,所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个非易失性计算机可读取存储介质中。所述计算机可读存储介质可以是易失性的,也可以是非易失性的。例如,所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。

本发明还提供一种计算机可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序在被电子设备的处理器所执行时,可以实现:

响应于报表数据的查询请求,生成所述报表数据的查询标识及查询对象;

根据所述查询标识及查询对象,生成对应的初始查询语句,并根据所述初始查询语句中的查询指标,将所述初始查询语句进行合并,得到合并查询语句;

根据所述合并查询语句,采用并发线程执行的方式向预设数据库查询报表数据,得到所述合并查询语句的合并查询结果;

将所述合并查询结果进行分解,得到对应初始查询语句的查询结果。

在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。

因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。

本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。

此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。

最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

相关技术
  • 报表数据查询方法、装置、电子设备及存储介质
  • 基于多数据源的报表数据查询方法、装置、系统及存储介质
技术分类

06120113023070