CN113986931B - 报表分页的方法、装置、存储介质及计算设备 - Google Patents
报表分页的方法、装置、存储介质及计算设备 Download PDFInfo
- Publication number
- CN113986931B CN113986931B CN202111607905.1A CN202111607905A CN113986931B CN 113986931 B CN113986931 B CN 113986931B CN 202111607905 A CN202111607905 A CN 202111607905A CN 113986931 B CN113986931 B CN 113986931B
- Authority
- CN
- China
- Prior art keywords
- dimension
- data
- level
- index
- index table
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开一种报表分页的方法、装置、存储介质及计算设备,该方法包括:获取客户端的查询条件和分组信息,基于查询条件,从数据库中获取符合查询条件的所有目标字段和目标字段的存储地址;基于分组信息确定目标字段对应的数据维度,建立数据维度的维度索引表,维度索引表中的索引值为数据维度对应的目标字段的存储地址;基于维度索引表生成数据报表,根据维度索引表中的索引值确定数据报表的分页信息,以使客户端基于分页信息显示分页的数据报表。本申请解决现有技术中报表分页时计算量极大的技术问题。
Description
技术领域
本申请涉及计算机软件技术领域,具体而言,涉及一种报表分页的方法、装置、存储介质及计算设备。
背景技术
报表的最基本需求就是找出符合条件的数据,并对它们从整体上进行分析。当数据量很大时,这个处理很可能非常耗时。在处理大批量数据时,特别是需要输出的数据也很大时,分页是一种常见的和有效的方法。
通常来讲,对于统计型报表的分页通常有两种需求:一是分页需要的总计和总行数的信息,以便显示总结果和计算总页数;二是统计型报表的分组会有根据维度的小计,或者是有层次关系的维度在不同层次上的小计。现有的分页报表,无论是小计、总行数、还是维度上的聚合计算,皆基于报表的全部数据。如果在聚合计算时,有部分数据没有获取,那么与之相关的聚合计算的结果就会出现错误。
由于现有的大多数报表分页的方法,是对符合条件的数据进行全量统计并保存统计结果,再根据统计结果进行分页,但这种方式计算量极大,容易造成内存暴涨,从而导致服务不稳定。
针对上述现有技术中报表分页时计算量极大的技术问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种报表分页的方法、装置、存储介质及计算设备,以至少解决现有技术中报表分页时计算量极大的技术问题。
根据本申请实施例的一个方面,提供了一种报表分页的方法,该方法包括:
获取客户端的查询条件和分组信息,基于查询条件,从数据库中获取符合查询条件的所有目标字段和目标字段的存储地址;
基于分组信息确定目标字段对应的数据维度,建立数据维度的维度索引表,维度索引表中的索引值为数据维度对应的目标字段的存储地址;
基于维度索引表生成数据报表,根据维度索引表中的索引值确定数据报表的分页信息,以使客户端基于分页信息显示分页的数据报表。
在上述任一实施例的基础上,基于分组信息确定目标字段对应的数据维度,建立数据维度的维度索引表,包括:
根据分组信息确定数据维度所属级次N,N是大于等于1的整数;
根据数据维度所属级次N,为每个级次的数据维度分别建立对应的维度索引表。
在上述任一实施例的基础上,根据数据维度所属级次N,为每个级次的数据维度分别建立对应的维度索引表,包括:
获取任一数据维度所属级次N;
当N为最低级次时,维度索引表中的索引值为该数据维度对应的目标字段的存储地址的地址索引表;
当N非最低级次时,维度索引表中的索引值为属于该数据维度的多个N+1级数据维度对应的维度索引表。
在上述任一实施例的基础上,地址索引表为倒排索引表。
在上述任一实施例的基础上,维度索引表为哈希HASH表。
在上述任一实施例的基础上,根据维度索引表中的索引值确定数据报表的分页信息,包括:
基于每个维度索引表中的索引值获取所述数据报表中的全部目标字段的存储地址的总数,基于存储地址总数和用户端设定的每页显示数量,确定数据报表的分页信息。
在上述任一实施例的基础上,基于维度索引表生成数据报表,包括:
获取查询条件中的统计要求,根据每个维度索引表中的目标字段的存储地址从数据库中获取对应的目标数据,根据统计要求对所述目标数据进行处理得到统计结果;
基于统计结果与维度索引表生成数据报表。
根据本申请实施例的另一个方面,提供了一种报表分页的装置,该装置包括:
获取模块,用于获取客户端的查询条件和分组信息,基于查询条件,从数据库中获取符合查询条件的所有目标字段和目标字段的存储地址;
建立模块,用于基于分组信息确定目标字段对应的数据维度,建立数据维度的维度索引表,维度索引表中的索引值为数据维度对应的目标字段的存储地址;
生成模块,用于基于维度索引表生成数据报表,根据维度索引表中的索引值确定数据报表的分页信息,以使客户端基于分页信息显示分页的数据报表。
根据本申请实施例的另一个方面,提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述任一实施例所述的方法。
根据本申请实施例的另一个方面,提供了一种计算设备,包括处理器,处理器用于运行程序,其中,程序运行时执行上述任一实施例所述的方法。
在本申请实施例中,可以获取客户端的查询条件和分组信息,基于查询条件可以从数据库中获取符合查询条件的所有目标字段和目标字段的存储地址,然后基于分组信息确定目标字段对应的数据维度,建立数据维度的维度索引表,维度索引表中的索引值为数据维度对应的目标字段的存储地址;基于维度索引表生成数据报表,根据维度索引表中的索引值确定数据报表的分页信息,以使客户端基于分页信息显示分页的数据报表,本申请可以基于维度索引表中的存储地址,来计算分页信息,从而无需获取全部存储数据来计算分页信息,因此可以大幅减少分页时的计算量,进而解决了现有技术中报表分页时计算量极大的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种报表分页的方法的计算机终端(或移动设备)的硬件结构框图;
图2是根据本申请实施例的一种报表分页的方法的流程图;
图3a是根据本申请实施例的一种报表结构的示意图;
图3b是根据本申请实施例的一种地址索引表的示意图;
图4是根据本申请实施例的地址索引表的处理流程图;
图5是根据本申请实施例的一种报表分页的装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本申请实施例,还提供了一种报表分页的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种报表分页的方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的报表分页的确定方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的报表分页的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
此处,需要说明的是,在一些可选实施例中,上述图1所示的计算机设备(或移动设备)可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备(或移动设备)中的部件的类型。
本申请在上述运行环境下运行如图2所示的一种报表分页的方法。图2是根据本申请实施例的报表分页的方法的流程图,该方法可应用于图1所示的计算机终端。
参见图2所示,报表分页的方法可以包括:
步骤S201:获取客户端的查询条件和分组信息,基于查询条件,从数据库中获取符合查询条件的所有目标字段和目标字段的存储地址;
在一种可选的方案中,计算机终端可以作为提供数据报表的应用服务端,可以为客户端提供数据服务。客户端可以通过如电脑、手机等终端设备在与计算机终端交互。
在一种可选的方案中,用户可以通过客户端发送的数据报表的查询需求,客户端可以将查询需求中的查询条件和分组信息提取并发送到计算机终端。其中,查询条件可以是用户需要的数据报表具体数据信息,例如数据类型、数据内容、统计需求等,分组信息可以是根据用户的查询条件制定的数据报表的结构以及相应的数据维度级次,从而可以用于构建数据报表。
计算机终端在收到客户端发送的查询条件和分组信息之后,可以基于查询条件,从数据库的全部字段中获取符合查询条件的部分字段,即目标字段,从而得到目标字段的存储地址。数据库中数据会设有对应的字段,这些对应的字段和数据所在的磁盘的存储地址的对应关系会保存在数据库中。基于字段可以查到数据的存储地址,从而到该存储地址中获取具体数据内容。
步骤S202:基于分组信息确定目标字段对应的数据维度,建立数据维度的维度索引表,维度索引表中的索引值为数据维度对应的目标字段的存储地址;
在一种可选的方案中,基于分组信息确定目标字段对应的数据维度,建立数据维度的维度索引表时,可以先根据分组信息确定数据维度所属级次N,N是大于等于1的整数,级次N可以是分组信息中根据为数据报表制定的结构定义的数据维度的层次。例如,在报表结构的最上层的数据维度的级次为一级(N=1),即最高级次,依次递增,最底层的数据维度为N级,即最低级次。
举例来讲,一个分组信息中包括省级、市级两个级次的数据,则可以将所有符合查询条件的目标字段以省为单位进行分类,得到多个一级数据维度,即不同省级中的目标字段;然后每个一级数据维度中以市为单位进行分类,得到多个二级数据维度,即不同市级中的目标字段。
确定数据维度的级次N后,再根据数据维度所属级次N,为每个级次的数据维度分别建立对应的维度索引表。
在一种可选的方案中,可以获取任一数据维度所属级次N,判断N是否为最小值,其中N=1为最高级次,N的数值大小与级次高低成反比。当N为最低级次时,维度索引表中的索引值为该数据维度对应的目标字段的存储地址的地址索引表;当N非最低级次时,维度索引表中的索引值为属于该数据维度的多个N+1级数据维度对应的维度索引表。
参见图3a,当N为最低级次时(如三级数据维度),维度索引表中的索引值为该数据维度对应的目标字段的存储地址的地址索引表,其中包括地址1、地址2、地址3等;当N非最低级次时(如二级数据维度),维度索引表中的索引值为属于该数据维度的多个N+1级数据维度,即多个三级数据维度对应的维度索引表。
在一种可选的方案中,上述地址索引表为倒排索引表,其索引值为目标字段的存储地址。参见图3b,普通的地址索引表中直接保存字段的存储地址,例如地址1、地址2、地址3、地址4。当采用倒排索引的方式制作地址索引表时,倒排索引表存储的非首位地址都是前一位地址的差值,例如地址1、差值1(即地址2与地址1的差值)、差值2(即地址3与地址2的差值)、差值3(即地址4与地址3的差值)。通过存储地址差值,可以减少数据量,节省存储空间,并且提高技术效率。
在一种可选的方案中,维度索引表为哈希HASH表,其索引值为目标字段的存储地址,或者,还可以嵌套其他低级的维度索引表作为索引值。如图3a所示,一级数据维度的维度索引表中的索引值KEY都是二级数据维度的维度索引表。
步骤S203:基于维度索引表生成数据报表,根据维度索引表中的索引值确定数据报表的分页信息,以使客户端基于分页信息显示分页的数据报表。
在一种可选的方案中,由于维度索引表中包含了不同级次的维度数据,从而可以基于不同的维度索引表生成数据报表。索引表结构如图3a所示,假设索引表30包括三个级次,其中包括一级数据维度表31-索引值K1、一级数据维度表32-索引值K2、一级数据维度表33-索引值K3。一级数据维度表31中还包括二级数据维度表311-索引值K11和二级数据维度表312-索引值K12。二级数据维度表311中还包括三级数据维度表3111-索引值K111和二级数据维度表3112-索引值K112。三级数据维度表3111中包括地址索引表31111,其中包括地址1、地址2、地址3等目标字段的存储地址。其他三级数据维度表中的内容与地址索引表31111类似,图中省略。其中每个级次的数据维度表为HASH表,内部的地址索引表为倒排索引表。
本实施例充分利用基于内存存储的HASH 结构优势,按维度的级次顺序嵌套HASH表,对数据进行分组和排序,嵌套的HASH表中形成联合索引。
这其实是一个嵌套的 HASH 结构,可以表达成:
public interface Tree Map {
List < Entry >nodes;
int size;
int resultSize;
List<Listener > listeners;
}
public class Entry {
String key;
Object value;
}
在不是叶子节点的时候,索引值(value)是Map类型的,从而形成HASH嵌套的结构。nodes是当前节点的元素,result size是当前对象嵌套在 HASH 表中的分组数(可以直接作为最终结果的一条记录)。listeners是当前对象的祖先,当前对象增加/删除一个子节点时,会通知其祖先更新它的数据。由此可见,图3a所示的数据结构,只对数据分组,并不导致额外过多的空间开销。
在一种可选的方案中,根据维度索引表中的索引值确定数据报表的分页信息,可以包括:基于每个维度索引表中的索引值获取所述数据报表中的全部目标字段的存储地址的总数,基于存储地址总数和用户端设定的每页显示数量,确定数据报表的分页信息。例如,通过获取每个数据维度表中的地址数量,计算数据报表中全部的地址数量为100个,再基于客户端的每页显示的数量要求,假设每页可容纳10个,得到分页结果就是分10页。
在一种可选的方案中,基于维度索引表生成数据报表,具体可以获取查询条件中的统计要求,根据每个维度索引表中的目标字段的存储地址从数据库中获取对应的目标数据,根据统计要求对目标数据进行计算得到统计结果,然后基于统计结果与维度索引表生成数据报表。数据报表中可以分页显示用户查询的数据内容以及统计结果。
在一种可选的方案中,在根据图3b的结构导出图3a的结构时,可以在内存中根据查询条件和分组信息建立所查询的数据的分组和排序结构,其中对于任一个倒排索引的具体处理过程可以如图4所示,其中包括:
步骤S401、遍历符合查询条件的目标字段,转步骤S402;
步骤S402、判断是否有更多目标字段,若是,则转步骤S403;若否,则结束;
步骤S403、设置目标字段的上下文为一级的HASH表,转步骤S404;
步骤S404、判断当前维度是否为级次最低的维度,若是,则转步骤S405;若否,则转步骤S406;
步骤S405、判断上下文是否有当前维度的目标字段,若是,则转步骤S407;若否,则转步骤S408;
步骤S406、判断上下文是否有当前维度的目标字段,若是,则转步骤S410;若否,则转步骤S411;
步骤S407、从上下文获取当前维度对应的倒排索引表,转步骤S409;
步骤S408、为当前维度创建一个新的倒排索引表,转步骤S409;
步骤S409、将当前倒排索引表更新到HASH表中,转步骤S402;
步骤S410、从上下文获取当前维度对应的HASH表,转步骤S412;
步骤S411、为当前维度创建一个新的HASH表,转步骤S412;
步骤S412、设置上下文为上一级的HASH表,转步骤S402。
建立起图3a所示的按照维度的顺序嵌套并排序的结构后,就可以根据分页信息获取分页需要的数据并进行统计计算。
在一种可选的方案中,计算的具体过程可以包括:
首先可以根据查询的一级数据维度找到它的地址索引表(如倒排索引表),按地址索引表中的索引值的顺序加载目标字段对应的数据;再根据一级数据维度的结果大小(result size)计算在一级数据维度的起始节点;然后深入到下一级次的数据维度,即二级数据维度,检查从起始位置到当前位置的分组数( result size之和);重复上面操作,直到最后一级数据维度。根据当前HASH 表的总result size对比分页的结束行数,找出最后一个分组,后面的节点不再加载;根据查询语句指定的函数;计算最后的聚合结果。
在本申请实施例中,通过获取客户端的查询条件和分组信息,基于查询条件可以从数据库中获取符合查询条件的所有目标字段和目标字段的存储地址,然后基于分组信息确定目标字段对应的数据维度,建立数据维度的维度索引表,维度索引表中的索引值为数据维度对应的目标字段的存储地址;基于维度索引表生成数据报表,根据维度索引表中的索引值确定数据报表的分页信息,以使客户端基于分页信息显示分页的数据报表,本申请可以基于维度索引表中的存储地址,来计算分页信息,从而无需获取全部存储数据来计算分页信息。因此可以大幅减少分页时的计算量,进而解决了现有技术中报表分页时计算量极大的技术问题。
相比于传统的分页和统计都是基于全部数据内容进行计算的,本申请通过只取部分数据,以及针对这部分数据进行聚合计算从而实现真正的分页,而不是在过滤出全部的数据后,对这些数据进行全量聚合计算,因此可以大幅减少计算量,提高处理效率。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的报表分页的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
实施例2
根据本申请实施例,还提供了一种用于实施上述报表分页的方法的报表分页的装置,该装置以软件或硬件方式实现于图1所述的计算机终端。
如图5所示,该报表分页的装置500包括:获取模块501,建立模块502以及生成模块503。其中:
获取模块501,用于获取客户端的查询条件和分组信息,基于查询条件,从数据库中获取符合所述查询条件的所有目标字段和目标字段的存储地址;
建立模块502,用于基于分组信息确定目标字段对应的数据维度,建立数据维度的维度索引表,维度索引表中的索引值为数据维度对应的目标字段的存储地址;
生成模块503,用于基于维度索引表生成数据报表,根据维度索引表中的索引值确定数据报表的分页信息,以使客户端基于分页信息显示分页的数据报表。
此处,需要说明的是,上述获取模块501,建立模块502以及生成模块503对应于实施例1中的步骤S201至步骤S203,上述三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。
可选地,基于分组信息确定目标字段对应的数据维度,建立数据维度的维度索引表,包括:
根据分组信息确定数据维度所属级次N,N大于等于1的整数;
根据数据维度所属级次N,为每个级次的数据维度分别建立对应的维度索引表。
可选地,根据数据维度所属级次N,为每个级次的数据维度分别建立对应的维度索引表,包括:
获取任一数据维度所属级次N;
当N为最低级次时,维度索引表中的索引值为该数据维度对应的目标字段的存储地址的地址索引表;
当N非最低级次时,维度索引表中的索引值为属于该数据维度的多个N+1级数据维度对应的维度索引表。
可选地,地址索引表为倒排索引表。
可选地,维度索引表为哈希HASH表。
可选地,根据维度索引表中的索引值确定数据报表的分页信息,包括:
基于每个维度索引表中的索引值获取所述数据报表中的全部目标字段的存储地址的总数,基于存储地址总数和用户端设定的每页显示数量,确定数据报表的分页信息。
可选地,基于维度索引表生成数据报表,包括:
获取查询条件中的统计要求,根据每个维度索引表中的目标字段的存储地址从数据库中获取对应的目标数据,根据统计要求对所述目标数据进行处理得到统计结果;
基于统计结果与维度索引表生成数据报表。
实施例3
本申请的实施例可以提供一种计算设备,该计算设备可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算设备也可以替换为移动终端等终端设备。可选地,在本实施例中,上述计算机设备可以实现上述报表分页的方法。
可选地,在本实施例中,上述计算设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述计算设备包括一个或多个处理器、存储器、以及传输装置。其中,存储器可用于存储软件程序以及模块,如本申请实施例中的报表分页的方法和装置对应的程序指令/模块。处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的报表分页的方法。
可选地,存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算设备120。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
在本实施例中,上述计算设备中的处理器运行存储的程序代码时可以执行以下方法步骤:获取客户端的查询条件和分组信息,基于查询条件,从数据库中获取符合查询条件的所有目标字段和目标字段的存储地址;基于分组信息确定目标字段对应的数据维度,建立数据维度的维度索引表,维度索引表中的索引值为数据维度对应的目标字段的存储地址;基于维度索引表生成数据报表,根据维度索引表中的索引值确定数据报表的分页信息,以使客户端基于分页信息显示分页的数据报表。
进一步地,在本实施例中,上述计算设备中的处理器运行存储的程序代码时可以执行实施例1中所列举的任一方法步骤,囿于篇幅不再赘述。
实施例4
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述报表分页的方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取客户端的查询条件和分组信息,基于查询条件,从数据库中获取符合查询条件的所有目标字段和目标字段的存储地址;基于分组信息确定目标字段对应的数据维度,建立数据维度的维度索引表,维度索引表中的索引值为数据维度对应的目标字段的存储地址;基于维度索引表生成数据报表,根据维度索引表中的索引值确定数据报表的分页信息,以使客户端基于分页信息显示分页的数据报表。
进一步地,在本实施例中,存储介质被设置为存储用于执行实施例1中所列举的任一方法步骤的程序代码,囿于篇幅不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (5)
1.一种报表分页的方法,其特征在于,该方法包括:
获取客户端的查询条件和分组信息,基于查询条件,从数据库中获取符合所述查询条件的所有目标字段和目标字段的存储地址;
基于分组信息确定目标字段对应的数据维度,建立数据维度的维度索引表,所述维度索引表中的索引值为数据维度对应的目标字段的存储地址;
获取查询条件中的统计要求,根据每个维度索引表中的目标字段的存储地址从数据库中获取对应的目标数据,根据统计要求对所述目标数据进行处理得到统计结果,基于统计结果与维度索引表生成数据报表,根据维度索引表中的索引值确定数据报表的分页信息,以使客户端基于分页信息显示分页的数据报表:
其中,根据统计要求对所述目标数据进行处理得到统计结果,包括:
获取任一数据维度所属级次N,当N为最低级次时,维度索引表中的索引值为该数据维度对应的目标字段的存储地址的地址索引表;当N非最低级次时,维度索引表中的索引值为属于该数据维度的多个N+1级数据维度对应的维度索引表;
根据查询的一级数据维度找到对应的地址索引表,按照该地址索引表中的索引值的顺序加载目标字段对应的数据;再根据一级数据维度的结果大小result size,计算在一级数据维度的起始节点;查找下一级次的数据维度,检查从起始节点到当前位置的分组数,所述分组数为当前级次数据维度的结果大小result size之和;以此类推,逐级向下查询每一级数据维度的分组数,直到最后一级数据维度,得到当前维度索引表的总分组数,基于总分组数对比分页的结束行数,确定最后一个分组,根据查询条件中指定的函数,计算统计结果;
其中,基于分组信息确定目标字段对应的数据维度,建立数据维度的维度索引表,包括:根据分组信息确定数据维度所属级次N,N是大于或等于1的整数,级次N是分组信息中根据为数据报表制定的结构定义的数据维度的层次,在报表结构的最上层的数据维度的级次为一级,即N=1时为最高级次,依次递增,最底层的数据维度为N级,即最低级次;
其中,维度索引表中包含不同级次的维度数据,基于不同的维度索引表生成数据报表,维度索引表包括三个级次,其中包括一级数据维度表-索引值K1、一级数据维度表-索引值K2、一级数据维度表-索引值K3,一级数据维度表中还包括二级数据维度表-索引值K11和二级数据维度表-索引值K12,二级数据维度表中还包括三级数据维度表-索引值和二级数据维度表-索引值K112,三级数据维度表中包括地址索引表,其中包括目标字段的存储地址,其中每个级次的数据维度表为HASH表,内部的地址索引表为倒排索引表,基于内存存储的HASH结构,按维度的级次顺序嵌套HASH表,对数据进行分组和排序,在嵌套的HASH表中形成联合索引。
2.根据权利要求1所述的方法,其特征在于,根据维度索引表中的索引值确定数据报表的分页信息,包括:
基于每个维度索引表中的索引值获取所述数据报表中的全部目标字段的存储地址的总数,基于存储地址总数和用户端设定的每页显示数量,确定数据报表的分页信息。
3.一种报表分页的装置,其特征在于,该装置包括:
获取模块,用于获取客户端的查询条件和分组信息,基于查询条件,从数据库中获取符合所述查询条件的所有目标字段和目标字段的存储地址;
建立模块,用于基于分组信息确定目标字段对应的数据维度,建立数据维度的维度索引表,所述维度索引表中的索引值为数据维度对应的目标字段的存储地址;
生成模块,用于获取查询条件中的统计要求,根据每个维度索引表中的目标字段的存储地址从数据库中获取对应的目标数据,根据统计要求对所述目标数据进行处理得到统计结果,基于统计结果与维度索引表生成数据报表,根据维度索引表中的索引值确定数据报表的分页信息,以使客户端基于分页信息显示分页的数据报表;其中,根据统计要求对所述目标数据进行处理得到统计结果,包括:
获取任一数据维度所属级次N,当N为最低级次时,维度索引表中的索引值为该数据维度对应的目标字段的存储地址的地址索引表;当N非最低级次时,维度索引表中的索引值为属于该数据维度的多个N+1级数据维度对应的维度索引表;
根据查询的一级数据维度找到对应的地址索引表,按照该地址索引表中的索引值的顺序加载目标字段对应的数据;再根据一级数据维度的结果大小result size计算在一级数据维度的起始节点;查找下一级次的数据维度,检查从起始节点到当前位置的分组数,所述分组数为当前级次数据维度的结果大小result size之和;以此类推,逐级向下查询每一级数据维度的分组数,直到最后一级数据维度,得到当前维度索引表的总分组数,基于总分组数对比分页的结束行数,确定最后一个分组,根据查询条件中指定的函数,计算统计结果;
其中,基于分组信息确定目标字段对应的数据维度,建立数据维度的维度索引表,包括:根据分组信息确定数据维度所属级次N,N是大于或等于1的整数,级次N是分组信息中根据为数据报表制定的结构定义的数据维度的层次,在报表结构的最上层的数据维度的级次为一级,即N=1时为最高级次,依次递增,最底层的数据维度为N级,即最低级次;
其中,维度索引表中包含不同级次的维度数据,基于不同的维度索引表生成数据报表,维度索引表包括三个级次,其中包括一级数据维度表-索引值K1、一级数据维度表-索引值K2、一级数据维度表-索引值K3,一级数据维度表中还包括二级数据维度表-索引值K11和二级数据维度表-索引值K12,二级数据维度表中还包括三级数据维度表-索引值和二级数据维度表-索引值K112,三级数据维度表中包括地址索引表,其中包括目标字段的存储地址,其中每个级次的数据维度表为HASH表,内部的地址索引表为倒排索引表,基于内存存储的HASH结构,按维度的级次顺序嵌套HASH表,对数据进行分组和排序,在嵌套的HASH表中形成联合索引。
4.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如权利要求1-2任一项所述的方法。
5.一种计算设备,包括处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行如权利要求1-2任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111607905.1A CN113986931B (zh) | 2021-12-27 | 2021-12-27 | 报表分页的方法、装置、存储介质及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111607905.1A CN113986931B (zh) | 2021-12-27 | 2021-12-27 | 报表分页的方法、装置、存储介质及计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113986931A CN113986931A (zh) | 2022-01-28 |
CN113986931B true CN113986931B (zh) | 2022-10-11 |
Family
ID=79734436
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111607905.1A Active CN113986931B (zh) | 2021-12-27 | 2021-12-27 | 报表分页的方法、装置、存储介质及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113986931B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115129724A (zh) * | 2022-08-29 | 2022-09-30 | 畅捷通信息技术股份有限公司 | 一种统计型报表分页方法、***、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111858581A (zh) * | 2020-06-08 | 2020-10-30 | 远光软件股份有限公司 | 一种分页查询的方法、装置、存储介质和电子设备 |
CN112131220A (zh) * | 2020-09-15 | 2020-12-25 | 北京奇艺世纪科技有限公司 | 数据报表处理方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9465831B2 (en) * | 2014-07-18 | 2016-10-11 | Wipro Limited | System and method for optimizing storage of multi-dimensional data in data storage |
CN111797091A (zh) * | 2019-10-18 | 2020-10-20 | 北京沃东天骏信息技术有限公司 | 数据库中数据查询的方法、装置、电子设备和存储介质 |
CN112818013B (zh) * | 2021-01-27 | 2023-07-21 | 北京百度网讯科技有限公司 | 时序数据库查询优化方法、装置、设备以及存储介质 |
CN113297458A (zh) * | 2021-05-31 | 2021-08-24 | 中国建设银行股份有限公司 | 一种分页查询方法、装置和设备 |
-
2021
- 2021-12-27 CN CN202111607905.1A patent/CN113986931B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111858581A (zh) * | 2020-06-08 | 2020-10-30 | 远光软件股份有限公司 | 一种分页查询的方法、装置、存储介质和电子设备 |
CN112131220A (zh) * | 2020-09-15 | 2020-12-25 | 北京奇艺世纪科技有限公司 | 数据报表处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113986931A (zh) | 2022-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103703467B (zh) | 存储数据的方法和装置 | |
CN108769111A (zh) | 一种服务器连接方法、计算机可读存储介质及终端设备 | |
CN103514201B (zh) | 一种非关系型数据库的数据查询方法和装置 | |
CN106326475B (zh) | 一种高效的静态哈希表实现方法及*** | |
CN104809130A (zh) | 数据查询的方法、设备及*** | |
CN109086456B (zh) | 数据索引方法及装置 | |
CN107562743B (zh) | 数据存储方法和装置、数据查找请求的处理方法和装置 | |
CN110032603A (zh) | 一种对关系网络图中的节点进行聚类的方法及装置 | |
CN113986931B (zh) | 报表分页的方法、装置、存储介质及计算设备 | |
CN112286927A (zh) | 查询用户数据的方法、装置及存储介质 | |
CN115292344A (zh) | 数据字典构建方法、装置、电子设备及存储介质 | |
CN116521956A (zh) | 一种图数据库查询方法、装置、电子设备及存储介质 | |
CN111858607A (zh) | 数据处理方法、装置、电子设备和计算机可读介质 | |
CN103117864A (zh) | 一种子网合并的方法及装置 | |
CN110855812A (zh) | 基于ip地址的定位方法、装置和设备 | |
CN110209720A (zh) | 榜单数据的管理方法及装置 | |
CN108376054B (zh) | 一种对标识数据进行索引的处理方法及装置 | |
CN108345699A (zh) | 获取多媒体数据的方法、装置及存储介质 | |
CN105634999A (zh) | 一种介质访问控制地址的老化方法及装置 | |
CN111881110B (zh) | 数据迁移方法及装置 | |
CN110874385B (zh) | 数据处理方法、装置和*** | |
CN113487250B (zh) | 项目需求拆分方法、装置以及存储介质 | |
CN114117192A (zh) | 一种对象查询方法、装置、服务器和存储介质 | |
CN111506654B (zh) | 用于数据路由的数据分区方法 | |
CN110751204A (zh) | 数据融合的方法及装置、存储介质和电子装置 |
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 |