一种基于ClickHouse的数据聚合方法以及装置制造方法及图纸

技术编号:33287830 阅读:19 留言:0更新日期:2022-04-30 23:58
本发明专利技术提供了一种基于ClickHouse的数据聚合方法以及装置,该方法包括:获取到数据立方体的维度结构,其中,维度结构包括至少两个维度,每个维度包括至少一个层级,每个层级包括至少一个成员;基于将维度结构中的每个维度的每个层级映射到ClickHouse明细数据底表中的相应字段,根据映射关系创建ClickHouse明细数据底表;向ClickHouse明细数据底表插入数据,并且设置ClickHouse明细数据底表中每个成员的权重;将ClickHouse明细数据底表进行聚合计算,得到聚合结果。解决了现有多层级成员维度的聚合计算方案不支持设置权重以及聚合计算效率低的技术问题。算效率低的技术问题。算效率低的技术问题。

【技术实现步骤摘要】
一种基于ClickHouse的数据聚合方法以及装置


[0001]本专利技术涉及数据处理领域,尤其是涉及一种基于ClickHouse的数据聚合方法以及装置。

技术介绍

[0002]近年,数字化驱动的业务转型是目前大多数企业的普遍需求。使用OLAP数据分析技术,可以帮助管理人员快速、准确地了解财务和运营结果是否达到预计目标,分析识别关键趋势,以此帮助企业快速调整,正确决策,获得更好的经营表现。
[0003]多层级成员维度上的聚合计算是OLAP数据分析产品的必备功能之一。现有的OLAP分析引擎产品有三大类:第一类是以Mondrian为代表的开源的基于关系型数据库的ROLAP产品,该类产品将OLAP数据模型中的多维立方体,维度,成员层级,成员等概念映射到关系型数据库中的星型模型的数据表上,计算时将OLAP分析场景转换成SQL在数据库上执行;第二类是以Kylin为代表的开源的基于Hadoop生态大数据平台的OLAP引擎,Kylin使用了预计算的机制,获取聚合数据前需要触发预计算;第三类是以IBM PA为代表的MOLAP产品,该产品是商业闭源产品。
[0004]现有基于关系型数据库实现的ROLAP引擎,例如Mondrian支持多层级成员维度,在功能上不支持设置维度成员的计算权重;基于Hadoop生态大数据平台的Kylin OLAP分析引擎同样没有提供设置维度成员权重的能力,Kylin平台使用的预计算机制需要计算所有可能的维度组合,会占用很高的内存和磁盘空间资源,此外,预计算机制导致查看到的聚合计算不是最新数据,聚合结果始终有延迟,不能满足实时性要求;基于原生多维度分析即MOLAP引擎的产品,例如IBM PA,虽然提供了多层级加权维度的OLAP聚合能力,但是该平台是商业闭源产品,并且聚合计算效率较低。
[0005]有鉴于此,提出本专利技术。

技术实现思路

[0006]本专利技术提供了一种基于ClickHouse的数据聚合方法以及装置,以解决现有多层级成员维度的聚合计算方案不支持设置权重以及聚合计算效率低的技术问题。
[0007]根据本专利技术的第一方面,提供了一种基于ClickHouse的数据聚合方法,该方法包括:获取到数据立方体的维度结构,其中,维度结构包括至少两个维度,每个维度包括至少一个层级,每个层级包括至少一个成员;基于将维度结构中的每个维度的每个层级映射到ClickHouse明细数据底表中的相应字段,根据映射关系创建ClickHouse明细数据底表;向ClickHouse明细数据底表插入数据,并且设置ClickHouse明细数据底表中每个成员的权重;将ClickHouse明细数据底表进行聚合计算,得到聚合结果。
[0008]进一步地,根据映射关系创建ClickHouse明细数据底表包括:基于映射关系按照预设顺序向二维表中添加与数据立方体中的每个维度的每个层级对应的字段以及度量值字段,其中,每个层级对应一个计算权重字段。
[0009]进一步地,将ClickHouse明细数据底表进行聚合计算包括:基于ClickHouse明细数据底表中第一类型的维度的成员计算得到ClickHouse明细数据底表中的基础聚合数据;基于基础聚合数据计算得到ClickHouse明细数据底表中第二类型的维度中第一层级成员的第一加权聚合值,并且将第一加权聚合值存入预先创建的ClickHouse聚合结果表中;基于第N加权聚合值计算得到ClickHouse明细数据底表中第二类型的维度中第N+1层级成员的第N+1加权聚合值,并将第N+1加权聚合值存入ClickHouse聚合结果表中,其中,N∈[1,M

1],M为ClickHouse明细数据底表中第二类型维度的层级数,N、M均为正整数。
[0010]进一步地,创建ClickHouse聚合结果表包括:按照预设顺序向二维表中添加第二类型的维度的各个层级对应的字段;向二维表中添加度量值字段,度量值字段用于存储各个聚合层级的加权聚合值。
[0011]进一步地,第一类型的维度至少包括如下一项或者多项:年维度、月维度、日维度、物料细分维度、物料大类维度以及科目维度;第二类型的维度为组织维度。
[0012]根据本专利技术的第二方面,提供了一种基于ClickHouse的数据聚合装置,该装置包括:获取单元,用于获取到数据立方体的维度结构,其中,维度结构包括至少两个维度,每个维度包括至少一个层级,每个层级包括至少一个成员;第一创建单元,用于基于将维度结构中的每个维度的每个层级映射到ClickHouse明细数据底表中的相应字段,根据映射关系创建ClickHouse明细数据底表;数据插入单元,用于向ClickHouse明细数据底表插入数据,并且设置ClickHouse明细数据底表中每个成员的权重;计算单元,将ClickHouse明细数据底表进行聚合计算,得到聚合结果。
[0013]进一步地,第一创建单元包括:添加模块,用于基于映射关系按照预设顺序向二维表中添加与数据立方体中的每个维度的每个层级对应的字段以及度量值字段,其中,每个层级对应一个计算权重字段。
[0014]进一步地,计算单元包括:第一计算模块,用于基于ClickHouse明细数据底表中第一类型的维度的成员计算得到明细数据底表中的基础聚合数据;第二计算模块,用于基于基础聚合数据计算得到ClickHouse明细数据底表中第二类型的维度中第一层级成员的第一加权聚合值,并且将第一加权聚合值存入预先创建的ClickHouse聚合结果表中;第三计算模块,用于基于第N加权聚合值计算得到ClickHouse明细数据底表中第二类型的维度中第N+1层级成员的第N+1加权聚合值,并将第N+1加权聚合值存入ClickHouse聚合结果表中,其中,N∈[1,M

1],M为ClickHouse明细数据底表中第二类型维度的层级数,N、M均为正整数。
[0015]进一步地,装置还包括:第二创建单元,用于按照预设顺序向二维表中添加第二类型的维度的各个层级对应的字段,并且向二维表中添加度量值字段,度量值字段用于存储各个聚合层级的加权聚合值。
[0016]进一步地,第一类型的维度至少包括如下一项或者多项:年维度、月维度、日维度、物料细分维度、物料大类维度以及科目维度;第二类型的维度为组织维度。
[0017]根据本专利技术的第三方面,提供了一种计算机设备,包括存储器和处理器,存储器上存储有计算机指令,计算机指令在由处理器执行时导致上述任一项方法被执行。
[0018]根据本专利技术的第四方面,提供了一种非暂时性计算机可读存储介质,其上存储有计算机程序,计算机程序在由处理器执行时导致上述任一项方法被执行。
[0019]本专利技术提供了一种基于ClickHouse的数据聚合方法以及装置,该方法包括:获取到数据立方体的维度结构,其中,维度结构包括至少两个维度,每个维度包括至少一个层级,每个层级包括至少一个成员;基于将维度结构中的每个维度的每个层级映射到ClickHouse明细数据底表中的相应字段,根据本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于ClickHouse的数据聚合方法,其特征在于,所述方法包括:获取到数据立方体的维度结构,其中,所述维度结构包括至少两个维度,每个维度包括至少一个层级,每个层级包括至少一个成员;基于将所述维度结构中的每个维度的每个层级映射到ClickHouse明细数据底表中的相应字段,根据映射关系创建ClickHouse明细数据底表;向所述ClickHouse明细数据底表插入数据,并且设置所述ClickHouse明细数据底表中每个成员的权重;将所述ClickHouse明细数据底表进行聚合计算,得到聚合结果。2.根据权利要求1所述的方法,其特征在于,根据映射关系创建ClickHouse明细数据底表包括:基于映射关系按照预设顺序向二维表中添加与所述数据立方体中的每个维度的每个层级对应的字段以及度量值字段,其中,所述每个层级对应一个计算权重字段。3.根据权利要求1所述的方法,其特征在于,将所述ClickHouse明细数据底表进行聚合计算包括:基于所述ClickHouse明细数据底表中第一类型的维度的成员计算得到所述ClickHouse明细数据底表中的基础聚合数据;基于所述基础聚合数据计算得到所述ClickHouse明细数据底表中第二类型的维度中第一层级成员的第一加权聚合值,并且将所述第一加权聚合值存入预先创建的ClickHouse聚合结果表中;基于第N加权聚合值计算得到所述ClickHouse明细数据底表中第二类型的维度中第N+1层级成员的第N+1加权聚合值,并将第N+1加权聚合值存入所述ClickHouse聚合结果表中,其中,N∈[1,M

1],M为所述ClickHouse明细数据底表中第二类型维度的层级数,N、M均为正整数。4.根据权利要求3所述的方法,其特征在于,创建所述ClickHouse聚合结果表包括:按照预设顺序向二维表中添加所述第二类型的维度的各个层级对应的字段;向所述二维表中添加度量值字段,所述度量值字段用于存储各个聚合层级的加权聚合值。5.根据权利要求3所述的方法,其特征在于,所述第一类型的维度至少包括如下一项或者多项:年维度、月维度、日维度、物料细分维度、物料大类维度以及科目维度;所述第二类型的维度为组织维度。6.一种基于ClickHouse的数据聚合装置,其特征在于,所述装置包括:获取单元,用于获取到数据立方体的维度结构,其中,所述维度结构包括至少两个维度,每个维度包括至少一个层级,每...

【专利技术属性】
技术研发人员:屈恩
申请(专利权)人:北京元年科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1