CN111782658B - 交叉表处理方法、装置、电子设备及存储介质 - Google Patents
交叉表处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111782658B CN111782658B CN202010651178.8A CN202010651178A CN111782658B CN 111782658 B CN111782658 B CN 111782658B CN 202010651178 A CN202010651178 A CN 202010651178A CN 111782658 B CN111782658 B CN 111782658B
- Authority
- CN
- China
- Prior art keywords
- target
- node
- dimension
- leaf node
- tree structure
- 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
- 238000003672 processing method Methods 0.000 title description 13
- 238000000034 method Methods 0.000 claims abstract description 32
- 238000004590 computer program Methods 0.000 claims description 11
- 238000004458 analytical method Methods 0.000 claims description 2
- 238000001514 detection method Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000000630 rising effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000009877 rendering Methods 0.000 description 3
- 238000007405 data analysis Methods 0.000 description 2
- 239000008187 granular material Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 125000006850 spacer group Chemical group 0.000 description 1
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/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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/2264—Multidimensional index structures
-
- 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/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书实施例提供了一种交叉表处理方法、装置、电子设备及存储介质,该方法通过对目标交叉表的表头信息进行解析,确定目标交叉表表头中目标维度对应的树结构,然后,将树结构中维度值为空的叶子节点处挂载的原始数据值提升到目标节点处,目标节点为该叶子节点所在节点分支中距离该叶子节点最近且维度值不为空的节点,实现了在交叉表的中间态维度处挂载原始数据值。
Description
技术领域
本说明书实施例涉及互联网技术领域,尤其涉及一种交叉表处理方法、装置、电子设备及存储介质。
背景技术
数据统计是数据分析的重要环节,全面的数据统计能够有效地提高数据分析的效率,简单明了地呈现出统计结果,降低时间成本。交叉表(Cross Tabulations)是一种常用的分类汇总表格,是将多个维度作为表头按照预设规则分布在横/纵两个方向,并将相应数据填充到表头交叉点单元格的一种报表展现形式。利用交叉表查询数据非常直观明了,被广泛应用于数据统计中。
发明内容
本说明书实施例提供了一种交叉表处理方法、装置、电子设备及存储介质,能够有效地丰富交叉表的数据展现形式。
第一方面,本说明书实施例提供了一种交叉表处理方法,包括:获取目标交叉表的源数据,所述源数据包括所述目标交叉表的表头信息和原始数据值;对所述表头信息中的目标维度进行解析,确定所述目标交叉表表头中所述目标维度对应的树结构,其中,所述目标维度为所述目标交叉表的行维度和/或列维度;将所述树结构中目标叶子节点对应的原始数据值提升到所述目标叶子节点所在节点分支中的目标节点处,其中,所述目标叶子节点为维度值为空的叶子节点,所述目标节点为所述节点分支中距离所述目标叶子节点最近且维度值不为空的节点。
第二方面,本说明书实施例提供了一种交叉表处理装置,包括:获取模块,用于获取目标交叉表的源数据,所述源数据包括所述目标交叉表的表头信息和原始数据值;解析模块,用于对所述表头信息中的目标维度进行解析,确定所述目标交叉表表头中所述目标维度对应的树结构,其中,所述目标维度为所述目标交叉表的行维度和/或列维度;提升模块,用于将所述树结构中目标叶子节点对应的原始数据值提升到所述目标叶子节点所在节点分支中的目标节点处,其中,所述目标叶子节点为维度值为空的叶子节点,所述目标节点为所述节点分支中距离所述目标叶子节点最近且维度值不为空的节点。
第三方面,本说明书实施例提供了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述第一方面提供的交叉表处理方法的步骤。
第四方面,本说明书实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面提供的交叉表处理方法的步骤。
本说明书一个实施例提供的交叉表处理方法,通过对目标交叉表的表头信息进行解析,确定目标交叉表表头中目标维度对应的树结构,然后,将树结构中维度值为空的叶子节点处挂载的原始数据值提升到目标节点处,目标节点为该叶子节点所在节点分支中距离该叶子节点最近且维度值不为空的节点,实现了在中间态维度处挂载原始数据值,有效地丰富了交叉表的数据展现形式。这样用户在单独查询目标交叉表中相应目标节点维度值时,就可以很方便地查找到该维度值处挂载的源数据值,提高用户体验。
附图说明
图1为本说明书实施例第一方面提供的一种交叉表处理方法的流程图;
图2为本说明书实施例第一方面提供的一种示例性目标交叉表的示意图;
图3为本说明书实施例第一方面提供的一种示例性树结构的示意图;
图4为本说明书实施例第一方面提供的一种示例性提升示意图;
图5为本说明书实施例第一方面提供的一种示例性赋值示意图;
图6为本说明书实施例第一方面提供的一种示例性提升效果示意图;
图7为本说明书实施例第二方面提供的一种交叉表处理装置的模块框图;
图8为本说明书实施例第三方面提供的一种电子设备的结构示意图。
具体实施方式
现有交叉表的表头结构中,中间节点(非叶子节点)都是汇总节点,也就是小计/总计的意思,没有原始数据值。小计/总计在树形模式下的数据data获取正常是通过配置是否开启小计开关来做动态计算的;如果没有开启开关,默认是data=[],也就是什么都不显示。
例如,在一种应用场景中,需要利用交叉表统计国内每个省份下每个城市的交易量、利润、环比前一年的上涨率等,交叉表的行维度中第一级行维度为省份,第二级行维度为城市,第一级行维度的某个维度值为广东,广东对应的第二级行维度的维度值包括:广州、深圳、珠海等,交叉表的列维度的维度值包括交易量、利润、环比前一年的上涨率等。这样输入查询条件为广东-珠海,行查询出来的值就是唯一的,但是只输入“广东”,查询出来是广东省下面所有城市的交易量、利润、环比前一年的上涨率等的值,无法用单个数据源表述。或者是,预先配置小计/总计开关,得到一个汇总值,然而在一些场景下,对于一些数值如上述的环比前一年的上涨率无法通过单纯的汇总得到。
因此,为了进一步丰富交叉表的展现形式,方便用户查询,本说明书实施例提供了一种交叉表处理方法,先对目标交叉表的表头信息进行解析,确定目标交叉表表头中目标维度对应的树结构,目标维度为目标交叉表的行维度和/或列维度;然后,将树结构中目标叶子节点对应的原始数据值提升到目标叶子节点所在节点分支中的目标节点处,其中,目标叶子节点为维度值为空的叶子节点,目标节点为上述节点分支中距离目标叶子节点最近且维度值不为空的节点。这样就可以完成对表头结构的提升,实现在交叉表的中间态维度处挂载原始数据值,有效地丰富了交叉表的数据展现形式。待完成对表头结构进行提升后,就可以进一步对提升后的目标交叉表进行渲染。此后,用户在单独查询目标交叉表中相应目标节点维度值时,就可以很方便地查找到该维度值处挂载的原始数据值,无需先查找到相应叶子节点的原始数据值后再另外占用资源去计算,有利于减少资源占用,节省用户时间,提高用户体验。
举例来讲,在一种应用场景中,本说明书实施例提供的交叉表处理方法可以应用于安装于用户终端上的客户端,例如,客户端可以是浏览器或者是第三方应用软件。客户端在接收到服务器端发送的目标交叉表的源数据后,可以先执行上述交叉表处理方法进行表头结构的提升,再对提升后的目标交叉表进行渲染。
为了更好的理解本说明书实施例提供的技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。本说明书实施例中,术语“多个”表示“两个以上”,即包括两个或大于两个的情况;术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
第一方面,图1示出了本说明书实施例提供的一种交叉表处理方法的流程图。请参阅图1,所述方法可以至少包括以下步骤S100至步骤S104。
步骤S100,获取目标交叉表的源数据,源数据包括目标交叉表的表头信息和原始数据值。
本说明书实施例中,目标交叉表为具有多层表头的交叉表。源数据是指目标交叉表中行列交叉出的单元格中的数据。
其中,表头信息包括行表头信息以及列表头信息。行表头信息包括行表头中各个层级的维度值以及各层级维度值之间的索引关系。列表头信息包括列表头中各个层级的维度值以及各层级维度值之间的索引关系。原始数据值即为需要填充到行列交叉出的单元格中的数据值。
需要说明的是,目标交叉表的源数据可以是由后端即服务器获取到要以交叉表形式展示的原始数据值时,根据交叉表的设计规则以及原始数据值进行配置。由于按照交叉表的设计规则,表头信息中中间维度无法挂载原始数据值,且表头信息对应的树结构中每个节点分支的层级高度都相等,因此,若原始数据值中存在需要挂载在中间维度处的值时,则需要对表头信息进行配置,在该中间维度所属的节点分支中配置一个的维度值为空的叶子节点,先将需要挂载在中间维度处的原始数据值挂载在该叶子节点处,从而将配置好的源数据发送给前端即客户端进行渲染,客户端接收到目标交叉表的源数据后,再通过本说明书实施例提供的步骤S100至步骤S104的处理流程,通过表头结构的提升,将相应原始数据值挂载到该中间维度处。
举例来讲,在一种应用场景中,后端获取到要以交叉表形式展示的原始数据值时,配置了图2所示的目标交叉表结构,并将该目标交叉表的源数据发送到前端进行渲染,其源数据包含的其中一段数据如下,每条数据均通过key-value组成:
{
"MENU_LVL_1":"重点关注",
"MENU_LVL_2":"",
"CATEGORY":"消费信贷",
"INDICATOR_LVL_1":"",
"INDICATOR_LVL_2":"",
"INDICATOR_LVL_3":"",
"TIME_GRANULE":"年度",
"TIME_GRANULE_DETAIL":"2017年",
"INDICATOR_VALUE":7897,
"INDICATOR_VALUE_TONGBI":null,
"INDICATOR_VALUE_HUANBI":null
}
其中(
"MENU_LVL_1":"重点关注",
"MENU_LVL_2":"",
"CATEGORY":"消费信贷",
"INDICATOR_LVL_1":"",
"INDICATOR_LVL_2":"",
"INDICATOR_LVL_3":"",
)
这些数据代表行维度以及行维度下的维度值。其中,第一级行维度的key为:MENU_LVL_1,维度值为:重点关注,下一级行维度的key为:MENU_LVL_2,维度值为空,再下一级行维度的key为:CATEGORY,维度值为:消费信贷,而"消费信贷"下面三级行维度的key依次为:INDICATOR_LVL_1、INDICATOR_LVL_1和INDICATOR_LVL_3,维度值均为空。这样呈现出来的报表结构会如图2所示,一些行维度的维度值是空的,表中列维度的维度值未示出,可以依次分别为利润、利润同比;第一季度销售量、销售量环比;以及第二季度销售量、销售量环比。其中,“7897”这行原始数据值挂载在key为INDICATOR_LVL_3,维度值为空的这一级行维度下。
步骤S102,对表头信息中的目标维度进行解析,确定目标交叉表表头中所述目标维度对应的树结构。
作为一种实施方式,可以从表头信息中获取目标维度下各个层级包括的维度值以及相邻层级之间维度值的索引关系;然后根据各个层级包括的维度值以及相邻层级之间维度值的索引关系,确定目标维度对应的树结构。
其中,目标维度可以是目标交叉表的行维度和/或列维度。本说明书实施例中,以目标维度为行维度为例进行说明。当然,在本说明书其他实施例中,目标维度还可以是列维度,或者,也可以既包括行维度,又包括列维度。可以理解的是,对列维度进行表头结构提升的过程与行维度类似,可以参照行维度的表头结构提升过程。
对表头信息中的行维度进行解析,根据行表头中各个层级包括的维度值以及相邻层级之间维度值的索引关系,就可以得到行维度对应的树结构。表头信息中的每一个维度值均为树结构中的一个节点,且树结构中每一个分支的层数相同。
以图2所示的目标交叉表结构为例,其行维度对应的树结构如图3所示,该树结构的层级高度为6,其中,空矩形框表示该节点的维度值为空。
步骤S104,将树结构中目标叶子节点对应的原始数据值提升到目标叶子节点所在节点分支中的目标节点处,其中,目标叶子节点为维度值为空的叶子节点,目标节点为该节点分支中距离该目标叶子节点最近且维度值不为空的节点。
交叉表的叶子节点处均挂载有原始数据值,如图2中的“7897”等,若叶子节点的维度值为空,则可以通过将叶子节点挂载的原始数据值沿该叶子节点所在的节点分支往上提升,直到遇到维度值不为空的节点为止。可以理解的是,叶子节点所在节点分支是指树结构中与该叶子节点具有索引关系的分支。例如,如图3所示,叶子节点F1所在的节点分支,为A→B→C→D1→E1→F1,叶子节点F2所在的节点分支,为A→B→C→D2→E2→F2。同一节点分支中,两个节点之间间隔层级数越多则这两个节点之间的距离也就越远,如节点F2与节点A之间的距离大于节点F2与节点C之间的距离。
举例来讲,图3所示的树结构中,叶子节点F1、F2和F3的维度值均为空,则这三个叶子节点均为目标叶子节点。叶子节点F1所在的节点分支中,距离最近且维度值不为空的节点为“消费信贷”,叶子节点F2所在的节点分支中,距离最近且维度值不为空的节点为“第一个指标”,叶子节点F3所在的节点分支中,距离最近且维度值不为空的节点为“第二个指标”。因此,可以将叶子节点F1处挂载的原始数据值提升到节点“消费信贷”处,即将上述原本属于"INDICATOR_LVL_3"的原始数据值"INDICATOR_VALUE":7897提升到"CATEGORY":"消费信贷"处;将叶子节点F2处挂载的原始数据值提升到节点“第一个指标”处;将叶子节点F3处挂载的原始数据值提升到节点“第二个指标”处,如图4所示。也就是说,将叶子节点F1处挂载的原始数据值赋值到节点“消费信贷”对应的行,将叶子节点F2处挂载的原始数据值赋值到节点“第一个指标”对应的行,将叶子节点F3处挂载的原始数据值赋值到节点“第二个指标”对应的行,如图5所示。
这样就可以实现在作为中间节点存在于交叉表中的“消费信贷”维度、“第一个指标”维度以及“第二个指标”维度挂载相应的原始数据值,而不是仅限于依赖小计或总计等汇总方式去统计得到作为中间节点的维度值对应的数据值,或者是,在查询出“消费信贷”、“第一个指标”维度以及“第二个指标”时,只能查询出各自对应的叶子节点处挂载的原始数据值,需要再占用资源去重新计算得到需要的数据值。有效地方便了用户对于“消费信贷”、“第一个指标”以及“第二个指标”等类似中间节点数据值的查询,提高用户体验。
可以理解的是,在执行上述步骤S104之前,可以先检测步骤S102确定的树结构中是否存在维度值为空的叶子节点,若是,则表示目标交叉表中存在可以提升的叶子节点,从而执行上述将树结构中目标叶子节点对应的原始数据值提升到目标叶子节点所在的节点分支中的目标节点处的步骤,若否,则结束本次处理流程,可以进一步对目标交叉表进行渲染。
作为一种实施方式,上述将树结构中目标叶子节点对应的原始数据值提升到目标叶子节点所在节点分支中的目标节点处的过程可以包括:自上而下依次遍历树结构中第一层到第N-1层中的节点,其中,针对第一层到第N-2层中的节点,检测当前节点的下层节点维度值是否均为空,若是,则将下层节点中的叶子节点作为目标叶子节点,将该目标叶子节点的原始数据值赋值到相应目标节点处,并跳过对当前节点的下层节点的遍历;若否,则检测当前节点的维度值是否为空,若是,则将当前节点的下层节点依次向上提升一个层级,若否,则继续遍历下一个节点,针对第N-1层中的节点,检测当前节点是否存在维度值为空的叶子节点,若是,则将该叶子节点作为目标叶子节点,将目标叶子节点的原始数据值赋值到相应目标节点处。
其中,N为大于或等于3的正整数如4、5或6等,表示步骤S102所确定的树结构的层级高度,当前节点的下层节点是指树结构中位于当前节点以下层级的所有节点。以图3示出的树结构为例,若当前节点为位于第三层级的节点C“消费信贷”,则当前节点的下层节点包括第四层级、第五层级以及第六层级包含的所有节点;若当前节点为位于第四层级的节点D1,则当前节点的下层节点包括节点E1和节点F1。
按照上述实施过程,对于图3示出的树结构,自上而下依次遍历,先将节点A“重点关注”作为当前节点,其下层节点不满足维度值均为空的条件,且节点A本身的维度值不为空,则继续遍历到节点B;节点B的下层节点也不满足维度值均为空的条件,但节点B本身的维度值为空,则将其下层节点依次向上提升一个层级,即隐藏节点B;接着,遍历到节点C,节点C的下层节点也不满足维度值均为空的条件,且节点C本身的维度值不为空,则继续遍历到节点D1;节点D1的下层节点满足维度值均为空的条件,则将叶子节点F1的原始数据值赋值到距离叶子节点F1最近且维度值不为空的节点C“消费信贷”处,且不再遍历该节点分支下的节点E1;接着,遍历到节点D2,节点D2的下层节点也不满足维度值均为空的条件,且节点D2本身的维度值不为空,则继续遍历到位于倒数第二层的节点E2,节点E2存在维度值为空的叶子节点F2,则将叶子节点F2的原始数据值赋值到距离叶子节点F2最近且维度值不为空的节点D2“第一个指标”处;接着,遍历到同样位于倒数第二层的节点E3,节点E2也存在维度值为空的叶子节点F3,则将叶子节点F3的原始数据值赋值到距离叶子节点F3最近且维度值不为空的节点E3“第二个指标”处,从而完成遍历,实现对该目标交叉表表头结构的提升。
进一步地,执行完步骤S104以后,目标叶子节点处的原始数据值已经挂载到了相应目标节点处,且目标叶子节点本身的维度值也是空的,因此,可以隐藏目标叶子节点对应的单元格数据,以便于渲染出清晰明了的交叉表。例如,将上述示例中,隐藏叶子节点F1、F2和F3对应的单元格数据即图5所示的虚线框所在的行,得到图6所示的报表形式(表中列维度的维度值未示出)。
综上所述,本说明书实施例提供的交叉表处理方法,通过将目标叶子节点对应的原始数据值提升到其所在节点分支中距离最近且维度值不为空的节点,使得交叉表中的中间节点也能够挂载原始数据值,有效地丰富了交叉表的数据展现形式。这样用户就可以在完成提升后的目标交叉表中查询到目标节点对应的原始数据值,无需先查询得到该目标节点的所有子节点的原始数据值后,再另外占用资源去根据这些原始数据值计算该目标节点的数据值,方便用户查询,且有利于减少资源占用,节省用户时间,提高用户体验。例如,在前述应用场景中,经过本说明书实施例提供的交叉表处理方法完成表头结构提升后,用户只需输入“广东”就可以查询出广东省的交易量、利润、环比前一年的上涨率等的值,无需先查询出广东省下面所有城市的交易量、利润、环比前一年的上涨率等的值,再另外占用资源去统计广东省的交易量、利润、环比前一年的上涨率等。
另外,本说明书实施例提供的交叉表处理方法可以应用于前端即客户端,相比于后端返回完整表结构,前端只做渲染的方式,后端返回交叉表的源数据,由前端对源数据进行处理,能够控制表的数据结构,不仅能够提高前端的可控性,还能够丰富交叉表的数据展现形式,使得交叉表的数据展现更加灵活。
第二方面,基于与前述第一方面实施例提供的交叉表处理方法同样的发明构思,本说明书实施例还提供了一种交叉表处理装置。如图7所示,该交叉表处理装置70包括:
获取模块71,用于获取目标交叉表的源数据,所述源数据包括所述目标交叉表的表头信息和原始数据值;
解析模块72,用于对所述表头信息中的目标维度进行解析,确定所述目标交叉表表头中所述目标维度对应的树结构,其中,所述目标维度为所述目标交叉表的行维度和/或列维度;
提升模块73,用于将所述树结构中目标叶子节点对应的原始数据值提升到所述目标叶子节点所在节点分支中的目标节点处,其中,所述目标叶子节点为维度值为空的叶子节点,所述目标节点为所述节点分支中距离所述目标叶子节点最近且维度值不为空的节点。
在一种可选的实施例中,上述交叉表处理装置70还包括:检测模块,用于检测所述树结构中是否存在维度值为空的叶子节点,若是,则执行所述将所述树结构中目标叶子节点对应的原始数据值提升到所述目标叶子节点所在节点分支中的目标节点处的步骤。
在一种可选的实施例中,上述提升模块73包括:第一提升子模块731,用于自上而下依次遍历树结构中第一层到第N-1层中的节点,针对其中第一层到第N-2层中的节点,检测当前节点的下层节点维度值是否均为空,若是,则将下层节点中叶子节点的原始数据值赋值到相应目标节点处,并跳过对所述当前节点的下层节点的遍历;若否,则检测所述当前节点的维度值是否为空,若是,则将所述当前节点的下层节点依次向上提升一个层级;第二提升子模块732,用于针对所述第N-1层中的节点,检测当前节点是否存在维度值为空的叶子节点,若是,则将该叶子节点的原始数据值赋值到相应目标节点处,其中,N为所述树结构的层级高度。
在一种可选的实施例中,上述交叉表处理装置70还包括:
隐藏模块74,用于隐藏所述目标叶子节点对应的单元格数据。
在一种可选的实施例中,上述解析模块72用于:从所述表头信息中获取目标维度下各个层级包括的维度值以及相邻层级之间维度值的索引关系;根据所述各个层级包括的维度值以及相邻层级之间维度值的索引关系,确定所述目标维度对应的树结构。
需要说明的是,本说明书实施例所提供的交叉表处理装置70,其中各个模块执行操作的具体方式已经在上述第一方面提供的方法实施例中进行了详细描述,具体实施过程可以参照上述第一方面提供的方法实施例,此处将不做详细阐述说明。
第三方面,基于与前述实施例提供的交叉表处理方法同样的发明构思,本说明书实施例还提供了一种电子设备。如图8所示,该电子设备包括存储器804、一个或多个处理器802及存储在存储器804上并可在处理器802上运行的计算机程序,处理器802执行该程序时实现前文第一方面提供的交叉表处理方法的任一实施例的步骤。
其中,在图8中,总线架构(用总线800来代表),总线800可以包括任意数量的互联的总线和桥,总线800将包括由处理器802代表的一个或多个处理器和存储器804代表的存储器的各种电路链接在一起。总线800还可以将诸如***设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口805在总线800和接收器801和发送器803之间提供接口。接收器801和发送器803可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器802负责管理总线800和通常的处理,而存储器804可以被用于存储处理器802在执行操作时所使用的数据。
可以理解的是,图8所示的结构仅为示意,本说明书实施例提供的电子设备还可包括比图8中所示更多或者更少的组件,或者具有与图8所示不同的配置。图8中所示的各组件可以采用硬件、软件或其组合实现。
第四方面,基于与前述实施例中提供的交叉表处理方法同样的发明构思,本说明书实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文第一方面提供的交叉表处理方法的任一实施例的步骤。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书是参照根据本说明书实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本说明书的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本说明书范围的所有变更和修改。
显然,本领域的技术人员可以对本说明书进行各种改动和变型而不脱离本说明书的精神和范围。这样,倘若本说明书的这些修改和变型属于本说明书权利要求及其等同技术的范围之内,则本说明书也意图包含这些改动和变型在内。
Claims (12)
1.一种交叉表处理方法,包括:
获取目标交叉表的源数据,所述源数据包括所述目标交叉表的表头信息和原始数据值;
对所述表头信息中的目标维度进行解析,确定所述目标交叉表表头中所述目标维度对应的树结构,其中,所述目标维度为所述目标交叉表的行维度和/或列维度;
将所述树结构中目标叶子节点对应的原始数据值提升到所述目标叶子节点所在节点分支中的目标节点处,其中,所述目标叶子节点为维度值为空的叶子节点,所述目标节点为所述节点分支中距离所述目标叶子节点最近且维度值不为空的节点。
2.根据权利要求1所述的方法,所述将所述树结构中目标叶子节点对应的原始数据值提升到所述目标叶子节点所在节点分支中的目标节点处之前,还包括:
检测所述树结构中是否存在维度值为空的叶子节点,若是,则执行所述将所述树结构中目标叶子节点对应的原始数据值提升到所述目标叶子节点所在节点分支中的目标节点处的步骤。
3.根据权利要求1所述的方法,所述将所述树结构中目标叶子节点对应的原始数据值提升到所述目标叶子节点所在节点分支中的目标节点处,包括:
自上而下依次遍历树结构中第一层到第N-1层中的节点,针对其中第一层到第N-2层中的节点,检测当前节点的下层节点维度值是否均为空,若是,则将下层节点中叶子节点的原始数据值赋值到相应目标节点处,并跳过对所述当前节点的下层节点的遍历;若否,则检测所述当前节点的维度值是否为空,若是,则将所述当前节点的下层节点依次向上提升一个层级;
针对所述第N-1层中的节点,检测当前节点是否存在维度值为空的叶子节点,若是,则将该叶子节点的原始数据值赋值到相应目标节点处,其中,N为所述树结构的层级高度。
4.根据权利要求1所述的方法,所述将所述树结构中目标叶子节点对应的原始数据值提升到所述目标叶子节点所在节点分支中的目标节点处之后,还包括:
隐藏所述目标叶子节点对应的单元格数据。
5.根据权利要求1所述的方法,所述对所述表头信息中的目标维度进行解析,确定所述目标交叉表表头中所述目标维度对应的树结构,包括:
从所述表头信息中获取目标维度下各个层级包括的维度值以及相邻层级之间维度值的索引关系;
根据所述各个层级包括的维度值以及相邻层级之间维度值的索引关系,确定所述目标维度对应的树结构。
6.一种交叉表处理装置,包括:
获取模块,用于获取目标交叉表的源数据,所述源数据包括所述目标交叉表的表头信息和原始数据值;
解析模块,用于对所述表头信息中的目标维度进行解析,确定所述目标交叉表表头中所述目标维度对应的树结构,其中,所述目标维度为所述目标交叉表的行维度和/或列维度;
提升模块,用于将所述树结构中目标叶子节点对应的原始数据值提升到所述目标叶子节点所在节点分支中的目标节点处,其中,所述目标叶子节点为维度值为空的叶子节点,所述目标节点为所述节点分支中距离所述目标叶子节点最近且维度值不为空的节点。
7.根据权利要求6所述的装置,还包括:
检测模块,用于检测所述树结构中是否存在维度值为空的叶子节点,若是,则执行所述将所述树结构中目标叶子节点对应的原始数据值提升到所述目标叶子节点所在节点分支中的目标节点处的步骤。
8.根据权利要求6所述的装置,所述提升模块包括:
第一提升子模块,用于自上而下依次遍历树结构中第一层到第N-1层中的节点,针对其中第一层到第N-2层中的节点,检测当前节点的下层节点维度值是否均为空,若是,则将下层节点中叶子节点的原始数据值赋值到相应目标节点处,并跳过对所述当前节点的下层节点的遍历;若否,则检测所述当前节点的维度值是否为空,若是,则将所述当前节点的下层节点依次向上提升一个层级;
第二提升子模块,用于针对所述第N-1层中的节点,检测当前节点是否存在维度值为空的叶子节点,若是,则将该叶子节点的原始数据值赋值到相应目标节点处,其中,N为所述树结构的层级高度。
9.根据权利要求6所述的装置,还包括:
隐藏模块,用于隐藏所述目标叶子节点对应的单元格数据。
10.根据权利要求6所述的装置,所述解析模块用于:
从所述表头信息中获取目标维度下各个层级包括的维度值以及相邻层级之间维度值的索引关系;
根据所述各个层级包括的维度值以及相邻层级之间维度值的索引关系,确定所述目标维度对应的树结构。
11.一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1-5中任一项所述方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现权利要求1-5中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010651178.8A CN111782658B (zh) | 2020-07-08 | 2020-07-08 | 交叉表处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010651178.8A CN111782658B (zh) | 2020-07-08 | 2020-07-08 | 交叉表处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111782658A CN111782658A (zh) | 2020-10-16 |
CN111782658B true CN111782658B (zh) | 2024-06-18 |
Family
ID=72758406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010651178.8A Active CN111782658B (zh) | 2020-07-08 | 2020-07-08 | 交叉表处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111782658B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113704259A (zh) * | 2021-08-24 | 2021-11-26 | 北京仁科互动网络技术有限公司 | 数据汇总方法、装置、电子设备、存储介质及程序产品 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103561019A (zh) * | 2013-10-30 | 2014-02-05 | 上海斐讯数据通信技术有限公司 | 一种针对tr069数据访问方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100507869C (zh) * | 2006-10-10 | 2009-07-01 | 国际商业机器公司 | 基于关系模型分析***性能采样数据的方法和设备 |
US8381095B1 (en) * | 2011-11-07 | 2013-02-19 | International Business Machines Corporation | Automated document revision markup and change control |
CN108009193A (zh) * | 2017-10-19 | 2018-05-08 | 东软集团股份有限公司 | 数据分析方法及装置、存储介质、电子设备 |
CN110019224A (zh) * | 2017-12-21 | 2019-07-16 | 天津数观科技有限公司 | 一种基于树搜索的交叉表头生成方法 |
CN108647340B (zh) * | 2018-05-14 | 2021-06-08 | 浪潮通用软件有限公司 | 一种基于动态交叉表的多维数据实时分析方法 |
CN108874894A (zh) * | 2018-05-21 | 2018-11-23 | 平安科技(深圳)有限公司 | 交叉表导出方法、装置、计算机设备和存储介质 |
CN109635011B (zh) * | 2018-10-31 | 2022-05-03 | 北京辰森世纪科技股份有限公司 | 基于业务元数据的多级表头报表处理方法、装置及设备 |
CN110427604B (zh) * | 2019-08-15 | 2022-12-06 | 北京明略软件***有限公司 | 表格整合方法和装置 |
-
2020
- 2020-07-08 CN CN202010651178.8A patent/CN111782658B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103561019A (zh) * | 2013-10-30 | 2014-02-05 | 上海斐讯数据通信技术有限公司 | 一种针对tr069数据访问方法 |
Non-Patent Citations (1)
Title |
---|
一种基于单元空间划分的快速防火墙包分类算法;程玉柱;王伟平;王建新;;工程科学与技术;20180711(04);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111782658A (zh) | 2020-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9870382B2 (en) | Data encoding and corresponding data structure | |
US20160328445A1 (en) | Data Query Method and Apparatus | |
CN112527848B (zh) | 基于多数据源的报表数据查询方法、装置、***及存储介质 | |
CN113986933A (zh) | 物化视图的创建方法、装置、存储介质及电子设备 | |
US20070067327A1 (en) | Performing recursive database operators | |
US10235100B2 (en) | Optimizing column based database table compression | |
US20190095481A1 (en) | Generating a query | |
CN111782658B (zh) | 交叉表处理方法、装置、电子设备及存储介质 | |
CN106547805A (zh) | 优化数据库索引的方法和装置 | |
CN114547097A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN114547069A (zh) | 数据查询方法、装置、电子设备以及存储介质 | |
US20140379727A1 (en) | Database management method and information processing apparatus | |
CN116127154A (zh) | 知识标签推荐方法、装置、电子设备及存储介质 | |
CN113990068B (zh) | 交通数据的处理方法、装置、设备以及存储介质 | |
CN115328917A (zh) | 一种查询方法、装置、设备及存储介质 | |
CN115080607A (zh) | 一种结构化查询语句的优化方法、装置、设备及存储介质 | |
CN113014674B (zh) | 服务依赖关系图的绘制方法及装置 | |
CN108537654B (zh) | 客户关系网络图的渲染方法、装置、终端设备及介质 | |
US20220405792A1 (en) | Method and apparatus for processing commodity information, device and storage medium | |
CN115827930B (zh) | 一种图数据库的数据查询优化方法、***和装置 | |
CN113076317B (zh) | 基于大数据的数据处理方法、装置、设备及可读存储介质 | |
US20230068947A1 (en) | Systems and methods for processing inter-dependent data for risk modelling and analysis | |
CN118210805A (zh) | 一种数据整合处理方法和装置 | |
CN107085571A (zh) | 一种校验规则的执行方法和装置 | |
CN117056350A (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 |