[发明专利]一种基于树搜索的交叉表头生成方法在审
申请号: | 201711392534.3 | 申请日: | 2017-12-21 |
公开(公告)号: | CN110019224A | 公开(公告)日: | 2019-07-16 |
发明(设计)人: | 崔新洲;赵文浩 | 申请(专利权)人: | 天津数观科技有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22 |
代理公司: | 天津诺德知识产权代理事务所(特殊普通合伙) 12213 | 代理人: | 栾志超 |
地址: | 300300 天津市滨海新区华苑产*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 表头 规则应用 结构变换 树搜索 节点关联关系 时间复杂度 表头数据 内存占用 内容填充 数据分析 原始数据 查询 树结构 数组 维度 存储 保存 申请 交换 | ||
一种基于树搜索的交叉表头生成方法,先查询维度的原始数据;再对查询的信息进行结构变换和规则应用;最后生成表头数据;所述结构变换和规则应用的步骤包括生成中间树。本申请的有益效果是:用中间树结构做交换,代替数组操作,降低表头生成过程的时间复杂度和存储用量,提高了表头生成的效率;降低内存占用,能够保存节点关联关系等相关数据,用于交叉表内容填充及后续其他数据分析。
技术领域
本申请属于数据处理技术领域,具体地说,涉及一种基于树搜索的交叉表头生成方法。
背景技术
交叉表是将多个维度作为表头按照设定规则分布在横/纵两个方向,并将相应数据填充到表头交叉点的一种报表展现形式,交叉表生成过程中需要对相同表头进行合并,在表头合并生成过程中需要将度量名称填入表头的指定位置。现有的表头合并过程采用数组操作,需要频繁计算合并规则和计算表头单元格数量,造成了表头生成过程复杂的问题;且对于交叉表头,具有相同父级并且内容相同的表头,在二维数组中由于需要保持数组长度对齐,需要申请内存来存储这些相同的内容,所以存储用量非常大,造成资源浪费。在需要额外插入指定表头的场景中(例如,在指定的位置插入度量名称),由于需要重新计算插入内容后的数组宽度,从而需要重新申请更大块的内存,并将旧数组内存按规则复制到新数组中,复制过程需要通过映射关系计算写入位置,造成内存资源的浪费。
发明内容
有鉴于此,本申请所要解决的技术问题是提供了一种基于树搜索的交叉表头生成方法,能够用中间树结构做交换,代替数组操作,降低表头生成过程的时间复杂度和存储用量,提高了表头生成的效率。
为了解决上述技术问题,本申请公开了一种基于树搜索的交叉表头生成方法,并采用以下技术方案来实现。
一种基于树搜索的交叉表头生成方法,先查询维度的原始数据;再对查询的信息进行结构变换和规则应用;最后生成表头数据;所述结构变换和规则应用的步骤包括生成中间树。
进一步的,所述中间树内保存节点关联关系、层级高度和/或子节点数量。
进一步的,生成所述中间树时,将在目标表头中存在且在所述原始数据中不存在的节点插入到所述中间树中。
进一步的,所述查询维度的原始数据包括两个步骤,分别为获取横表头原始数据和去除所述横表头中的重复行。
进一步的,所述生成表头数据包括两个步骤,分别为将所述中间树的结构转换为横表头二维数组和将所述二维数组的数据填充进所述表头的单元格。
更进一步的,生成所述表头数据时,根据所述单元格内数据的引用是否相同来判断是否需要合并单元格,将相同引用的单元格进行合并。
与现有技术相比,本申请可以获得包括以下技术效果:用中间树结构做交换,代替数组操作,降低表头生成过程的时间复杂度和存储用量,提高了表头生成的效率;降低内存占用,能够保存节点关联关系等相关数据,用于交叉表内容填充及后续其他数据分析(例如单元格数据钻取、子表生成等)。
当然,实施本申请的任一产品必不一定需要同时达到以上所述的所有技术效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请一个实施例的交叉表头生成过程示意图。
图2是本申请一个具体实施例的交叉表头生成过程示意图。
图3是本申请一个具体实施例的中间树结构示意图。
图4是本申请一个具体实施例的插入度量节点示意图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津数观科技有限公司,未经天津数观科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711392534.3/2.html,转载请声明来源钻瓜专利网。