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

基于树状结构维度的数据分析方法、系统及存储介质

文献发布时间:2023-06-19 13:29:16


基于树状结构维度的数据分析方法、系统及存储介质

技术领域

本发明属于大数据分析技术领域,尤其涉及一种基于树状结构维度的数据分析方法及系统。

背景技术

随着数据中台的概念日益普及,数据分析的重要性异常凸现。在实际场景中,特别是财务类型的报表分析场景中,常常业务复杂,灵活多变。各种树状结构维度的汇总与过滤,且树形维度会随着业务场景的变化而随时改变,需要支持即席查询,树形维度配置完成保存后即可立即查询;过滤规则多样化带来多种展示方式。

目前业界比较通用的实现方式具有如下缺陷:

1、通过前端不断的点击节点进行下钻,这种方式需要前端支撑,且展现方式不够直观需要前后端多次交互才能完整展示整个树形维度。

2、把一个树形维度按照层级拆分成固定的多个原子维度,然后基于全量原子维度汇总后再做维度上卷(基于大部分数据库支持的with rollup语法)。这种方式需要固定树形维度的层级,如果树形维度层级发生变更就需要同步变更维表和汇总SQL。

3、树形维度过滤规则比较固定,一般只能筛选特定的节点展示或者不展示。

因此,设计出一种技术树状结构的维度分析方法,以支持树形维度节点的动态灵活配置,并支持多个树形维度的汇总及维度上卷,以及支持树形维度的多种过滤效果的展示是目前需要解决的技术问题。

发明内容

本发明的目的是,提供一种基于树状结构维度的数据分析方法及系统,以解决现有技术中在进行树状结构的维度数据分析时,无法进行维度节点的动态灵活配置、不支持多个树形维度的汇总及维度上卷,以及不支持树形维度的多种过滤效果的缺陷。

为解决上述技术问题,本发明的第一方面,提供了一种基于树状结构维度的数据分析方法,该方法包括:

基于商品的统计属性,建立树形维度结构图;

根据所述树形维度结构图,创建涵盖叶子节点信息的规则配置表;

根据所述规则配置表及树形结构图,创建涵盖全部节点信息的树形维度表;

根据所述树形维度表,生成涵盖父节点信息的树形维度桥接表和/或树形维度过滤表;

基于创建的所述规则配置表、和/或树形维度桥接表、和/或树形维度过滤表,进行不同维度的数据分析和汇总。

进一步地,所述规则配置表的创建过程包括:

根据所述树形维度结构图,找到所述叶子节点;

配置所述叶子节点的唯一编码,其中,该唯一编码的值使用UUID表示;

配置所述叶子节点的生成规则,其中,该生成规则需满足通用的SQL语言标准;

初始化所有叶子节点的名称、唯一编码和生成规则,建立所述规则配置表。

进一步地,所述树形维度表的创建过程包括:

根据所述树形维度结构图,遍历所有的节点;

设定各节点的层级等级;

给每一个节点进行编号,并赋予每一个节点唯一编码,其中,该唯一编码的值使用UUID表示;

确定每一个节点所属的父节点的唯一编码;

判断某节点是否属于叶子节点并进行符号标记;

初始化各节点的编号、节点的名称、节点的唯一编码、父节点的唯一编码、叶子节点的符号标记、各节点的层级等级,建立所述树形维度表。

进一步地,根据所述树形维度表中的所有叶子节点以及叶子节点到根节点的路径上的所有节点的关联关系建立所述树形维度桥接表,其中,所述树形维度桥接表中保存有父节点编号、父节点唯一编码、父节点层级等级和叶子节点唯一编码。

进一步地,根据所述树形维度表中的所有叶子节点以及叶子节点到根节点路径上的所有节点的关联关系建立所述树形维度过滤表,其中,所述树形维度过滤表中保存有叶子节点唯一编码以及该路径上的所有父节点的唯一编码组成的编码数组。

进一步地,所述的数据分析和汇总采用两层SQL语言的查询结构进行,所述两层SQL语言的查询结构包括:内层子查询和外层查询。

进一步地,通过所述内层子查询生成的叶子节点唯一编码与所述树形维度桥接表中叶子节点唯一编码进行关联,再按照树形维度桥接表中的父节点编号进行汇总排序,实现维度上卷。

进一步地,通过内层子查询生成的叶子节点唯一编码与所述树形维度过滤表中叶子节点唯一编码进行关联,再通过所述树形维度过滤表的父节点唯一编码数组和所述树形维度桥接表中的层级等级的字段进行组合过滤,实现不同需求的展示效果。

本发明的另一方面,还提供了一种基于树状结构维度的数据分析系统,该系统包括:

树形维度结构图创建模块,用于根据商品的统计属性,建立树形维度结构图;

规则配置表创建模块,用于根据所述树形维度结构图,创建涵盖叶子节点信息的规则配置表;

树形维度表创建模块,用于根据所述规则配置表及树形结构图,创建涵盖全部节点信息的树形维度表;

树形维度桥接表创建模块,用于根据所述树形维度表,生成涵盖父节点编码信息的树形维度桥接表;

树形维度过滤表创建模块,用于根据所述树形维度表,生成涵盖父节点编码数组信息的树形维度过滤表;

数据分析模块,基于创建的所述规则配置表、和/或树形维度表、和/或树形维度桥接表、和/或树形维度过滤表,进行不同类型的数据分析。

本发明的第三方面,还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,其中,计算机程序被处理器运行时执行本发明第一方面所述的方法的步骤。

与现有技术相比,本发明所提供的一种基于树状结构维度的数据分析方法及系统,具有如下技术效果:

1、本发明的数据统计分析基于树状结构模型,建立多种维度表,分析方法灵活多变,可以及时响应分析业务场景的变化,修改树形维表的相关配置后,报表即席查询就能展示最新效果。

2、本发明的方法对维度表的扩展性高,能支持多种定制格式的报表查询。

3、本发明部署方式简单,通过几张定制维表的方式即可实现不同需求的树形报表的展现。

附图说明

图1是本发明实施例的基于树状结构维度的数据分析方法的流程图。

图2是本发明实施例的树形维度结构的示意图。

图3是本发明实施例的基于树状结构维度的数据分析系统的架构图。

具体实施方式

以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。如在说明书及权利要求当中使用了某些词汇来指称特定部件。本领域技术人员应可理解,硬件或软件制造商可能会用不同名词来称呼同一个部件。本说明书及权利要求并不以名称的差异来作为区分部件的方式,而是以部件在功能上的差异来作为区分的准则。说明书后续描述为实施本发明的较佳实施方式,然所述描述乃以说明本发明的一般原则为目的,并非用以限定本发明的范围。本发明的保护范围当视所附权利要求所界定者为准。

下面结合附图和具体实施例对本发明做进一步详细说明。

如图1、图2所示,本发明实例公开了一种基于树状结构维度的数据分析方法,包括如下步骤:

步骤S1,基于商品的统计属性,建立树形维度结构图;

按照商品的统计模式,建立一个具有树形维度的结构图,其中,树形维度为一种多叉树结构形式展示的特殊维度,图1为本发明实施例中的一个树形维度结构图的示意图,该结构图中存在多个节点,比如商品合计为根节点,商品空调、延保空调、商品黑电和延保黑电均为叶子节点,商品空调和延保空调的父节点为空调,商品黑电和延保黑电的父节点为黑电,空调和黑电的父节点为家电小计,家电小计的父节点为实体商品小计,实体商品小计和其它类型小计为同一层级,它们的父节点为合计,合计没有父节点,上层节点和下层节点之间通过箭头指向形成具有关联关系的导向图。需要说明的是,不限于前述所列举的统计模式,不同的统计模式,形成的树形维度结构图不一样,理论上,分支和节点可以无限多。

步骤S2,根据所述树形维度结构图,创建涵盖叶子节点信息的规则配置表;

其中,所述规则配置表的创建过程包括如下:

根据建立的树形维度结构图,找到叶子节点,叶子节点没有与其邻接的下一个子节点;如图1中,叶子节点为四个,名称分别是商品空调、延保空调、商品黑电、延保黑电。

配置所有叶子节点的生成规则,其中,该生成规则需满足通用的SQL语言标准,以方便后续的分析查询;比如,商品黑电的节点规则用SQL描述是:PD_WD_0001=‘黑电’andFNC_WD_0005not in(‘延保黑电’),延保黑电的节点规则用SQL描述是FNC_WD_0005=‘延保黑电’。

配置叶子节点的唯一编码,其中,该唯一编码的值使用UUID表示;叶子节点编码的值使用32位的UUID(Universally Unique Identifier,通用唯一识别码)表示,保证叶子节点编码的唯一性,便于后续查找的精确,每一个名称的叶子节点对应一个唯一的编码和唯一的节点生成规则。

初始化每一个叶子节点所包含的叶子节点名称、叶子节点唯一编码和节点生成规则,依序排列,建立规则配置表,如表1所示。

表1叶子节点的规则配置表

步骤S3,根据所述规则配置表及树形结构图,创建树形维度表。

其中,树形维度表的创建过程包括:

根据树形维度结构图,找到所有节点,包括根节点至叶子节点之间全部的节点;

设定各节点的层级等级,其中,树形维度的收个节点称为根节点,根节点层级等级为最高层级,叶子节点为最低层级,从根节点到叶子节点,等级依次往后设置,用1、2、3…表示,如表2所示,“合计”为1级,“实体商品小计”为2级,“空调”和“黑电”为4级,“商品黑电”和“延保黑电”均为5级。

从根节点开始,按照层级,依次给每一个节点进行编号,下一邻接节点(相当于子节点)的编号保留其上一节点(相当于它们的父节点)编号,同层级的不同节点的编号按序排列,同时,还赋予每一个节点唯一编码,其中,该唯一编码也使用32位的UUID表示;举例来说,根节点的编号固定为0001,同一层的节点按顺序编号从0001到9999生成编号,并以父节点的编号作为前缀用下划线分割,如:“合计”作为父节点的编号为0001,它的首个子节点实体商品小计节点编号为0001_0001,同理,实体商品小计的子节点家电小计对应的节点编号则为0001_0001_0001,而“黑电”和“空调”作为其子节点,其节点编号则可以分别表示为0001_0001_0001_0001和0001_0001_0001_0002。

确定每一个节点所属的父节点的唯一编码;当某节点没有父节点时,如“合计”为根节点,其没有父节点,则用Null来标识,而“实体商品小计”的父节点编码则为“合计”对应的节点编码。

根据是否属于叶子节点进行标记,如不是叶子节点,则用N来表示,若是叶子节点,则用Y来表示,如表2中存在4个叶子节点;

初始化各节点的编号、节点的名称、节点的唯一编码、父节点的唯一编码、叶子节点的标记、节点的层级等级,建立形成如表2所示的树形维度表。

表2树形维度表

树形维度表基本涵盖了某商品统计属性的全部节点信息。

步骤S4,根据所述树形维度表,生成树形维度桥接表和/或树形维度过滤表;

首先,根据树形维度表中的所有叶子节点以及叶子节点到根节点的路径上的所有节点相互间的关联关系建立所述树形维度桥接表,当某两个存在直接的关联时,则说明其中一个为父节点,其中,所述树形维度桥接表中保存有父节点编号、父节点唯一编码、父节点层级等级和叶子节点唯一编码。如表3所示,为本发明实施例中的一个树形维度桥接表的示意表。根节点的“合计”作为“实体商品小计”的父节点,其编号为0001,编码为设置的“合计”编码,层级等级为1,而叶子节点编码存在四个,故在建表时,“合计”作为父节点编号0001有四个,“实体商品小计”和“家电小计”作为父节点的编号也均具有四个,父节点编号分别是0001_0001和0001_0001_0001。从等级最高的根节点作为父节点开始,依序统计出全部的父节点编号及编码,再结合父节点层级等级和对应的叶子节点编码,得到完整的统计表。

表3树形维度桥接表

根据树形维度表中的所有叶子节点以及叶子节点到根节点路径上的所有节点的关联关系建立树形维度过滤表,其中,所述树形维度过滤表中保存有叶子节点唯一编码以及所有父节点的唯一编码组成的编码数组。如表4所示,为本发明实施例中的一个树形维度过滤表的示意表。举例来说,当叶子节点为“商品黑电”时,其到根节点之间的所有路径上的节点有5个,则记录的父节点唯一编码数组包括:“合计”编码、“实体商品小计”编码、“家电小计”编码、“黑电”编码、“商品黑电”编码。

表4树形维度过滤表

步骤S5,基于创建的所述规则配置表、和/或树形维度表、和/或树形维度桥接表、和/或树形维度过滤表,进行不同类型的数据分析。

按照维度建设过程创建特殊节点规则配置表、树形维度表、树形维度桥接表、树形维度过滤表四张维表,并按照示例初始化表数据。完成四张维度表的建设后,通过规则配置表和树形维度桥接表、树形维度过滤表三张表按照下面的样例构建SQL,进行即可进行树形维度的分析汇总,其中树形维度表不参与SQL分析,它是构建树形维度桥接表和树形维度过滤表的基础表,以及最后报表展示时用于将编码转换成名称。为了支持树形维度节点的动态灵活配置,本发明采用两层SQL语言的查询结构,其中内层子查询根据事实表的字段按照叶子节点规则配置表中的规则生成树形维度的叶子节点编码,外层查询则根据内层生成的树形维度的叶子节点编码关联树形维表桥接表或过滤表中的相关数据,比如关联叶子节点唯一编码字段,并按照父节点编号进行汇总排序构建出完整的树形维度。两层SQL语句的表达式的一个样例如下:

其中,FROM关键字后面括号中的查询为内层子查询,括号外面的查询为外层查询。

内层子查询查询事实表数据时,根据叶子节点的规则配置表中配置的叶子节点规则动态生成树形维度的叶子节点唯一编码,并按照新生成的叶子节点唯一编码进行汇总生成新的维度FNC_0016。

根据配置的规则生成树形维度FNC_0016的一个示意性表达式如下:

CASE

WHEN(PD_WD_0001=‘黑电’and FNC_WD_0005not in(‘延保黑电’))THEN

‘商品黑电编码’,

WHEN(FNC_WD_0005=‘延保黑电’)THEN‘延保黑电编码’,

...其它节点配置

ELSE‘其它’

ENDAS FNC_0016

通过内层子查询生成的树形维度FNC_0016关联树形维度桥接表的叶子节点唯一编码,并按照树形维表桥接表中的节点编号进行汇总排序。这样最后统计的结果是,每个父节点的统计值等于所有子节点的累加达到维度上卷的效果,如表4所示。其中,维度的上卷是指由细粒度到粗粒度观察数据的操作或沿着维的层次向上聚合汇总数据。

表4多个属性维度的汇总及维度上卷展示

通过内层子查询生成的树形维度FNC_0016关联树形维度过滤表的叶子节点唯一编码字段,通过树形维度过滤表的父节点唯一编码数组字段和树形维表桥接表的层级等级字段进行组合过滤即可支持如表5、表6、表7的三种过滤效果。

第一种过滤效果:假设基于“黑电”节点过滤的全路径展示,根据“树形维度过滤表”的父节点唯一编码数组字段是否包含“黑电”节点唯一编码进行过滤;

具体表达式如下:ARRAY_CONTAINS(node_cd_array,'210464979185303552')。

表5基于“黑电”节点过滤的全路径展示

第二种过滤效果:假设基于“黑电”节点过滤的上层路径展示,根据“树形维度过滤表”的父节点唯一编码数组字段是否包含“黑电”节点唯一编码和“树形维表桥接表”的层级等级字段小于等于四级节点“黑电”的层级等级进行过滤。

具体表达式如下:ARRAY_CONTAINS(node_cd_array,'210464979185303552')ANDcurrent_level<=4。

表6基于“黑电”节点过滤的上层路径展示

第三种过滤效果:假设基于“黑电”节点过滤的下层路径展示,根据“树形维度过滤表”的父节点唯一编码数组字段是否包含“黑电”节点唯一编码和“树形维表桥接表”的层级等级字段大于等于四级节点“黑电”的层级等级进行过滤;

具体表达式如下:ARRAY_CONTAINS(node_cd_array,'210464979185303552')ANDcurrent_level>=4。

表7基于“黑电”节点过滤的下层路径展示

此外,替代地,上述方法能够通过计算机程序产品,即计算机可读存储介质来实现。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本发明的各个方面的计算机可读程序指令。计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

再请参照图3所示,本发明的另一实施例,还提供了一种基于树状结构维度的数据分析系统,该系统包括:

树形维度结构图创建模块,用于根据商品的统计属性,建立树形维度结构图;树形维度结构图的一个示意如图2所示,其基于商品从不同角度或类型的统计需要建立具有多个分叉树的结构图,当然,本领域技术人员应当能够理解的是,基于不同的统计树形,其树形结构图不同,可以有更多的分支和更多的分叉节点。该方式支持灵活的不固定层级的树形结构分析,理论上可支持无限层级的树形维度结构。

规则配置表创建模块,用于根据所述树形维度结构图,创建涵盖叶子节点信息的规则配置表;规则配置表中主要是涉及叶子节点的相关信息,包括叶子节点名称、叶子节点的唯一编码、叶子节点的生成规则语言。

树形维度表创建模块,用于根据所述规则配置表及树形结构图,创建涵盖全部节点信息的树形维度表;树形维度表涵盖了所有的节点相关信息,包括节点编号、节点的名称、节点的唯一编码、父节点的唯一编码、叶子节点的标记、节点的层级等级,从根节点到叶子节点,按序进行排列,形成完整的数据表格。

树形维度桥接表创建模块,用于根据所述树形维度表,生成涵盖父节点信息的树形维度桥接表;树形维度桥接表保存的是所有叶子节点以及它到根节点路径上所有节点的相对关系,以父节点信息来表示,包括父节点编号、父节点唯一编码、父节点层级等级和叶子节点唯一编码。

树形维度过滤表创建模块,用于根据所述树形维度表,生成涵盖父节点编码的树形维度过滤表;树形维度过滤表保存的也是所有叶子节点的编码及它到根节点路径上的所有节点编码组成的数组形成的关系表。

数据分析模块,基于创建的所述规则配置表、和/或树形维度表、和/或树形维度桥接表、和/或树形维度过滤表,进行不同类型的数据分析。

由于本发明实施例基于树形结构,配置有多种维度表,通过通用SQL语法能够实现多种角度的应用分析和多种树形报表的展现,通过即席查询即可得到不同的展示效果。

值得注意的是,以上所述仅为本发明的较佳实施例,并非因此限定本发明的专利保护范围,本发明还可以对上述各种零部件的构造进行材料和结构的改进,或者是采用技术等同物进行替换。故凡运用本发明的说明书及图示内容所作的等效结构变化,或直接或间接运用于其他相关技术领域均同理皆包含于本发明所涵盖的范围内。

技术分类

06120113693582