首页> 中国专利> Cube立方体的增量式构建方法、构建装置和构建系统

Cube立方体的增量式构建方法、构建装置和构建系统

摘要

本申请提供了一种Cube立方体的增量式构建方法、构建装置和构建系统,该方法包括:获取目标起始时间、目标终止时间以及数据库中的Cube分片的起始时间和终止时间;确定第一目标Cube分片的起始时间是否满足第一预设条件,确定第一目标Cube分片的终止时间是否满足第二预设条件,第一目标Cube分片为Cube分片中的任意一个;在第一目标Cube分片的起始时间满足第一预设条件且第一目标Cube分片的终止时间满足第二预设条件的情况下,在数据库中将第一目标Cube分片删除,并按照第一目标Cube分片的起始时间和终止时间构建第二目标Cube分片,以存储待存储数据集。该方法解决了现有技术中无法重新构建已被合并的Cube片段的问题。

著录项

  • 公开/公告号CN115934710A

    专利类型发明专利

  • 公开/公告日2023-04-07

    原文格式PDF

  • 申请/专利权人 中国邮政储蓄银行股份有限公司;

    申请/专利号CN202211460619.1

  • 申请日2022-11-17

  • 分类号G06F16/22(2019.01);G06F16/27(2019.01);G06F16/2458(2019.01);

  • 代理机构北京康信知识产权代理有限责任公司 11240;

  • 代理人王晓玲

  • 地址 100032 北京市西城区金融大街3号

  • 入库时间 2023-06-19 19:13:14

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-04-25

    实质审查的生效 IPC(主分类):G06F16/22 专利申请号:2022114606191 申请日:20221117

    实质审查的生效

  • 2023-04-07

    公开

    发明专利申请公布

说明书

技术领域

本申请涉及多维数据分析领域,具体而言,涉及一种Cube立方体的增量式构建方法、构建装置、计算机可读存储介质和构建系统。

背景技术

在大数据分析领域,基于Kylin分析型数据仓库构建Cube是一种常用的解决方案。Kylin针对按自然周期分区存储和增长的星型模型/雪花模型数据集,提供了按相应自然周期构建CubeSegment的方法,称为增量式构建Cube。同时,Kylin会合并一些连续的CubeSegment以提高存储效率、减少跨片查询。然而,这种方式有以下两个缺点:

增量构建和自然周期有关,但合并和自然周期无关,合并只和个数有关,导致合并的一些CubeSegment不规整,部分场景反而增加了跨片查询。例如,按天增量构建Cube,可能出现本月靠前的某些天级别CubeSegment被合并进了上个月中,对本月进行分析查询时则会出现跨CubeSegment查询情况。

当需要重新构建某自然周期的CubeSegment,而其已被合并时,则直接报错,无法构建。

发明内容

本申请的主要目的在于提供一种Cube立方体的增量式构建方法、构建装置、计算机可读存储介质和构建系统,以解决现有技术中无法重新构建已被合并的Cube片段的问题。

根据本申请实施例的一个方面,提供了一种Cube立方体的增量式构建方法,所述Cube立方体为数据库中用于存储数据的数据结构,所述Cube立方体包括多个Cube分片,所述Cube分片的边界用起始时间和终止时间标记,一个所述Cube分片用于存储一个时间区间的数据集,所述方法包括:获取目标起始时间、目标终止时间以及所述数据库中的所述Cube分片的所述起始时间和所述终止时间,所述目标起始时间为待存储数据集对应的所述时间区间的起点,所述目标终止时间为所述待存储数据集对应的所述时间区间的终点;确定第一目标Cube分片的所述起始时间是否满足第一预设条件,确定所述第一目标Cube分片的所述终止时间是否满足第二预设条件,所述第一预设条件为所述第一目标Cube分片的所述起始时间小于或者等于所述目标起始时间,所述第二预设条件为所述第一目标Cube分片的所述终止时间大于或者等于所述目标终止时间,所述第一目标Cube分片为所述Cube分片中的任意一个;在所述第一目标Cube分片的所述起始时间满足第一预设条件且所述第一目标Cube分片的所述终止时间满足第二预设条件的情况下,在所述数据库中将所述第一目标Cube分片删除,并按照所述第一目标Cube分片的所述起始时间和所述终止时间构建第二目标Cube分片,以存储所述待存储数据集。

可选地,在所述数据库中将所述第一目标Cube分片删除,并按照所述第一目标Cube分片的所述起始时间和所述终止时间构建第二目标Cube分片,以存储所述待存储数据集之后,所述方法还包括:获取所述数据库中所述Cube分片的所述起始时间和所述终止时间;第一获取步骤,从第三目标Cube分片的所述起始时间和所述终止时间中,获取第一目标时间和第二目标时间,所述第三目标Cube分片为所述Cube分片中的任意一个,所述第一目标时间为所述第三目标Cube分片的所述起始时间对应的月,所述第二目标时间为所述第三目标Cube分片的所述终止时间对应的月;第一确定步骤,在所述第一目标时间与所述第二目标时间不相同的情况下,确定所述第三目标Cube分片需要被拆分;第二确定步骤,在所述第一目标时间与所述第二目标时间相同的情况下,确定所述第三目标Cube分片不需要被拆分;依次执行所述第一获取步骤、所述第一确定步骤和所述第二确定步骤至少一次,直至完成所有述Cube分片的确定工作,得到多个需要被拆分的所述Cube分片和多个不需要被拆分的所述Cube分片。

可选地,在依次执行所述第一获取步骤、所述第一确定步骤和所述第二确定步骤至少一次,直至完成所有述Cube分片的确定工作,得到多个需要被拆分的所述Cube分片和多个不需要被拆分的所述Cube分片之后,所述方法还包括:在不需要被拆分的所述Cube分片中,确定多个Cube分片集合,一个所述Cube分片集合包括所述起始时间对应的月相同的所述Cube分片;第二获取步骤,获取目标Cube分片集合,所述目标Cube分片集合为所述Cube分片集合中的任意一个;排序步骤,按照所述Cube分片的所述起始时间对应的日从小到大的顺序对所述目标Cube分片集合中的所述Cube分片进行排序;第三确定步骤,根据排序后的所述目标Cube分片集合中的所述Cube分片的所述起始时间和所述终止时间,确定多组待合并的所述Cube分片,每组待合并的所述Cube分片中任意相邻两个所述Cube分片中前一个所述Cube分片的所述终止时间与后一个所述Cube分片的所述起始时间相同;依次执行所述第二获取步骤、所述排序步骤和所述第三确定步骤至少一次,直至完成所有所述Cube分片集合的确定工作,得到多组待合并的所述Cube分片;将每组待合并的所述Cube分片中的所有的所述Cube分片进行合并,得到合并Cube分片并存储到所述数据库中,一组待合并的所述Cube分片与一个所述合并Cube分片对应。

可选地,在依次执行所述第一获取步骤、所述第一确定步骤和所述第二确定步骤至少一次,直至完成所有述Cube分片的确定工作,得到多个需要被拆分的所述Cube分片和多个不需要被拆分的所述Cube分片之后,所述方法还包括:第三获取步骤,获取第三目标时间、第四目标时间、第五目标时间和第六目标时间,所述第三目标时间为第四目标Cube分片的所述起始时间对应的月,所述第四目标时间为所述第四目标Cube分片的所述终止时间对应的月,所述第五目标时间为所述第四目标Cube分片的所述起始时间对应的日,所述第六目标时间为所述第四目标Cube分片的所述终止时间对应的日,所述第四目标Cube分片为需要拆分的所述Cube分片中的任意一个;第四确定步骤,根据所述第三目标时间、所述第四目标时间、所述第五目标时间和所述第六目标时间,确定拆分Cube分片的所述起始时间和终止时间,所述拆分Cube分片为所述第四目标Cube分片拆分后的所述Cube分片,所述拆分Cube分片的所述起始时间对应的月与所述终止时间对应的月相同且任意两个所述拆分Cube分片的所述起始时间对应的月不同;拆分步骤,根据所述拆分Cube分片的所述起始时间和终止时间对所述第四目标Cube分片进行拆分;依次执行所述第三获取步骤、所述第四确定步骤和所述拆分步骤至少一次,直至完成所有需要拆分的所述Cube分片的拆分工作。

可选地,根据所述拆分Cube分片的所述起始时间和终止时间对所述第四目标Cube分片进行拆分,包括:将所述第四目标Cube分片从所述数据库中删除;在所述数据库中按照所述拆分Cube分片的所述起始时间和所述终止时间构建所述拆分Cube分片。

可选地,根据所述第三目标时间、所述第四目标时间、所述第五目标时间和所述第六目标时间,确定拆分Cube分片的所述起始时间和终止时间,包括:在所述第三目标时间与所述第四目标时间的差值等于1的情况下,根据所述第三目标时间、所述第四目标时间、所述第五目标时间和所述第六目标时间,确定两个所述拆分Cube分片的所述起始时间和终止时间;在所述第三目标时间与所述第四目标时间的差值大于1的情况下,根据所述第三目标时间、所述第四目标时间、所述第五目标时间和所述第六目标时间,确定多个所述拆分Cube分片的所述起始时间和终止时间。

可选地,基于所述第一目标Cube分片的所述起始时间不满足第一预设条件或所述第一目标Cube分片的所述终止时间不满足第二预设条件的情况,在确定第一目标Cube分片的所述起始时间是否满足第一预设条件,确定所述第一目标Cube分片的所述终止时间是否满足第二预设条件之后,所述方法还包括:在所述数据库中按照所述目标起始时间和所述目标终止时间构建所述第二目标Cube分片,以存储所述待存储数据集。

根据本申请实施例的另一个方面,还提供了一种Cube立方体的增量式构建装置,所述Cube立方体为数据库中用于存储数据的数据结构,所述Cube立方体包括多个Cube分片,所述Cube分片的边界用起始时间和终止时间标记,一个所述Cube分片用于存储一个时间区间的数据集,所述装置包括:获取单元,用于获取目标起始时间、目标终止时间以及所述数据库中的所述Cube分片的所述起始时间和所述终止时间,所述目标起始时间为待存储数据集对应的所述时间区间的起点,所述目标终止时间为所述待存储数据集对应的所述时间区间的终点;确定单元,用于确定第一目标Cube分片的所述起始时间是否满足第一预设条件,确定所述第一目标Cube分片的所述终止时间是否满足第二预设条件,所述第一预设条件为所述第一目标Cube分片的所述起始时间小于或者等于所述目标起始时间,所述第二预设条件为所述第一目标Cube分片的所述终止时间大于或者等于所述目标终止时间,所述第一目标Cube分片为所述Cube分片中的任意一个;构建单元,用于在所述第一目标Cube分片的所述起始时间满足第一预设条件且所述第一目标Cube分片的所述终止时间满足第二预设条件的情况下,在所述数据库中将所述第一目标Cube分片删除,并按照所述第一目标Cube分片的所述起始时间和所述终止时间构建第二目标Cube分片,以存储所述待存储数据集。

根据本申请实施例的再一个方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,所述程序被处理器执行时,所述处理器执行任意一种所述的Cube立方体的增量式构建方法。

根据本申请实施例的又一个方面,还提供了一种Cube立方体的增量式构建系统,包括:一个或多个处理器,存储器以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行任意一种所述的Cube立方体的增量式构建方法。

上述Cube立方体的增量式构建方法,上述Cube立方体为数据库中用于存储数据的数据结构,上述Cube立方体包括多个Cube分片,上述Cube分片的边界用起始时间和终止时间标记,一个上述Cube分片用于存储一个时间区间的数据集,首先,获取目标起始时间、目标终止时间以及上述数据库中的上述Cube分片的上述起始时间和上述终止时间,上述目标起始时间为待存储数据集对应的上述时间区间的起点,上述目标终止时间为上述待存储数据集对应的上述时间区间的终点;然后,确定第一目标Cube分片的上述起始时间是否满足第一预设条件,确定上述第一目标Cube分片的上述终止时间是否满足第二预设条件,上述第一预设条件为上述第一目标Cube分片的上述起始时间小于或者等于上述目标起始时间,上述第二预设条件为上述第一目标Cube分片的上述终止时间大于或者等于上述目标终止时间,上述第一目标Cube分片为上述Cube分片中的任意一个;最后,在上述第一目标Cube分片的上述起始时间满足第一预设条件且上述第一目标Cube分片的上述终止时间满足第二预设条件的情况下,在上述数据库中将上述第一目标Cube分片删除,并按照上述第一目标Cube分片的上述起始时间和上述终止时间构建第二目标Cube分片,以存储上述待存储数据集。该方法首先确定待存储数据集对应的时间区间以及数据库中已经存在的Cube分片的起止时间,然后,确定数据库中是否存在起止时间包含该待存储数据集对应的时间区间的Cube分片,若存在则以该Cube分片的起止时间重新构建第二目标Cube分片,以存储待存储数据集,该方法解决了现有技术中无法重新构建已被合并的Cube片段的问题。

附图说明

构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1示出了根据本申请的一种实施例的Cube立方体的增量式构建方法的流程图;

图2示出了根据本申请的一种具体实施例的Cube立方体的增量式构建方法的流程图;

图3示出了根据本申请的一种实施例的Cube立方体的增量式构建装置的示意图;

图4示出了根据本申请的一种具体实施例的Cube立方体的增量式构建系统的示意图。

具体实施方式

应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

应该理解的是,当元件(诸如层、膜、区域、或衬底)描述为在另一元件“上”时,该元件可直接在该另一元件上,或者也可存在中间元件。而且,在说明书以及权利要求书中,当描述有元件“连接”至另一元件时,该元件可“直接连接”至该另一元件,或者通过第三元件“连接”至该另一元件。

为了便于描述,以下对本申请实施例涉及的部分名词或术语进行说明:

Kylin:本申请的Kylin指的是Apache Kylin而非Kylin操作系统,是一个分析型数据仓库,提供Hadoop之上的OLAP(多维联机分析)能力,其主要思想是“空间换时间”,针对星型/雪花模型的源数据集,通过预计算将所有维度的组合情况,进行度量统计,形成多维数据立方体。

Cube立方体:多维数据立方体,由维度构建出来的多维空间数据模型,包含了所有要统计分析的度量基础数据,所有的聚合数据查询操作都在其上进行。

Cube构建:从源数据集到Cube数据物理生成的计算过程。针对源数据集的变化情况,Kylin提供了全量构建和增量构建两种方式。其中全量构建,一次性读取加载源数据集全部数据,进行计算;增量构建,则支持按自然周期分区存储的源数据集,按自然周期分次构建,每次读取加载源数据集对应自然周期分区的数据,进行计算。

Cube分片(CubeSegment):多维数据立方体分片,增量构建场景下,每次构建生成的Cube。其边界按增量构建时选择的自然周期起止时间标记,遵循左闭右开即包含起始时间数据而不包含截止时间数据的原则。并且,同一个Cube立方体中,各个Cube分片不能有边界相交的情况。

REST Server:是Kylin内部提供RESTful API接口的服务模块,RESTful API接口供外部应用程序调用,本申请主要利用这些接口的组合,实现对Kylin元数据信息的分析,Cube的构建、合并、重构建,以及构建任务的状态查询等操作。

Hive:以Hadoop为基础的数据仓库,存储Kylin数据源,通常是星型/雪花模型的数据集,上述待存储数据集存储在Hive中。

HBase:以Hadoop为基础的列式数据库,存储Kylin的Cube立方体和Kylin的元数据信息。

正如背景技术中所说的,现有技术中无法重新构建已被合并的Cube片段,为了解决上述问题,本申请的一种典型的实施方式中,提供了一种Cube立方体的增量式构建方法、构建装置、计算机可读存储介质和构建系统。

根据本申请的实施例,提供了一种Cube立方体的增量式构建方法。

其中,上述Cube立方体为数据库中用于存储数据的数据结构,上述Cube立方体包括多个Cube分片,上述Cube分片的边界用起始时间和终止时间标记,一个上述Cube分片用于存储一个时间区间的数据集。

图1是根据本申请实施例的Cube立方体的增量式构建方法的流程图。如图1所示,该方法包括以下步骤:

步骤S101,获取目标起始时间、目标终止时间以及上述数据库中的上述Cube分片的上述起始时间和上述终止时间,上述目标起始时间为待存储数据集对应的上述时间区间的起点,上述目标终止时间为上述待存储数据集对应的上述时间区间的终点;

其中,目标起始时间和目标终止时间分别是是本次为了存储待存储数据集需要重构的Cube分片的起始时间和终止时间,如图2所示,获取数据库的Cube分片列表,遍历该Cube分片列表,解析每个Cube分片的边界,得到每个Cube分片的起始时间和终止时间。

步骤S102,确定第一目标Cube分片的上述起始时间是否满足第一预设条件,确定上述第一目标Cube分片的上述终止时间是否满足第二预设条件,上述第一预设条件为上述第一目标Cube分片的上述起始时间小于或者等于上述目标起始时间,上述第二预设条件为上述第一目标Cube分片的上述终止时间大于或者等于上述目标终止时间,上述第一目标Cube分片为上述Cube分片中的任意一个;

其中,如图2所示,在遍历该Cube分片列表的同时,确定数据库中的每个Cube分片的起始时间是否小于或者等于目标起始时间,确定每个Cube分片的终止时间是否大于或者等于目标终止时间,以确定数据库中已存在的Cube分片中是否存在起止时间包含本次需要重构的Cube分片的起止时间的Cube分片,即确定本次需要重构的Cube分片是否被合并。

为了在本次需要重构的Cube分片没有被合并的情况下直接构建Cube分片,基于上述第一目标Cube分片的上述起始时间不满足第一预设条件或上述第一目标Cube分片的上述终止时间不满足第二预设条件的情况,在一种可选的实施方式中,在上述步骤S102之后,上述方法还包括:

步骤S201,在上述数据库中按照上述目标起始时间和上述目标终止时间构建上述第二目标Cube分片,以存储上述待存储数据集。

上述实施方式中,若数据库中已存在的Cube分片中不存在起止时间包含本次需要重构的Cube分片的起止时间的Cube分片,即确定本次需要重构的Cube分片没有被合并,此时,在数据库中按照目标起始时间和目标终止时间构建第二目标Cube分片,以存储待存储数据集。

需要说明的是,如图2所示,在构建第二目标Cube分片时,循环检测构建任务的执行状态,等待任务正常结束。

步骤S103,在上述第一目标Cube分片的上述起始时间满足第一预设条件且上述第一目标Cube分片的上述终止时间满足第二预设条件的情况下,在上述数据库中将上述第一目标Cube分片删除,并按照上述第一目标Cube分片的上述起始时间和上述终止时间构建第二目标Cube分片,以存储上述待存储数据集。

其中,如图2所示,在遍历该Cube分片列表时,确定数据库中存在起止时间包含本次需要重构的Cube分片的起止时间的Cube分片,即确定本次需要重构的Cube分片已经被合并,此时,跳出遍历,在数据库中按照起止时间包含本次需要重构的Cube分片的起止时间的Cube分片的起始时间和终止时间构建第二目标Cube分片,以存储待存储数据集。

为了确定数据库中已存的Cube分片的起止时间是否跨自然周期,在一种可选的实施方式中,在上述步骤S103之后,上述方法还包括:

步骤S301,获取上述数据库中上述Cube分片的上述起始时间和上述终止时间;

步骤S302,第一获取步骤,从第三目标Cube分片的上述起始时间和上述终止时间中,获取第一目标时间和第二目标时间,上述第三目标Cube分片为上述Cube分片中的任意一个,上述第一目标时间为上述第三目标Cube分片的上述起始时间对应的月,上述第二目标时间为上述第三目标Cube分片的上述终止时间对应的月;

步骤S303,第一确定步骤,在上述第一目标时间与上述第二目标时间不相同的情况下,确定上述第三目标Cube分片需要被拆分;

步骤S304,第二确定步骤,在上述第一目标时间与上述第二目标时间相同的情况下,确定上述第三目标Cube分片不需要被拆分;

步骤S305,依次执行上述第一获取步骤、上述第一确定步骤和上述第二确定步骤至少一次,直至完成所有述Cube分片的确定工作,得到多个需要被拆分的上述Cube分片和多个不需要被拆分的上述Cube分片。

上述实施方式中,在确定数据库中已存的Cube分片的起止时间是否跨自然周期时,如图2所示,此时需要再次获取Cube分片列表,解析所有Cube分片的边界,确定每个Cube分片的起始时间对应的月与终止时间对应的月是否相同,以确定每个Cube分片的起止时间是否跨自然周期,该自然周期为月,例如,在Cube分片的起始时间为5月1日,终止时间为5月22日,确定Cube分片的起止时间没有跨月,此时,确定该Cube分片不需要拆分,在Cube分片的起始时间为5月1日,终止时间为6月22日,确定Cube分片的起止时间是跨自然周期的,此时,确定该Cube分片需要拆分。

需要说明的是,Cube分片的起止时间遵循左闭右开即包含起始时间而不包含截止时间的原则,例如Cube分片的起止时间为[5月1日,6月1日),其中,5月1日为Cube分片的起止时间,6月1日为Cube分片的截止时间,5月31日为Cube分片的上述终止时间,因此,确定该Cube分片的起止时间是否跨月时,需要比较的是5月1日与5月31日是否在同一个月。

为了将数据库中同一自然周期Cube分片合并成一个Cube分片,在一种可选的实施方式中,在上述步骤S305之后,上述方法还包括:

步骤S401,在不需要被拆分的上述Cube分片中,确定多个Cube分片集合,一个上述Cube分片集合包括上述起始时间对应的月相同的上述Cube分片;

步骤S402,第二获取步骤,获取目标Cube分片集合,上述目标Cube分片集合为上述Cube分片集合中的任意一个;

步骤S403,排序步骤,按照上述Cube分片的上述起始时间对应的日从小到大的顺序对上述目标Cube分片集合中的上述Cube分片进行排序;

步骤S404,第三确定步骤,根据排序后的上述目标Cube分片集合中的上述Cube分片的上述起始时间和上述终止时间,确定多组待合并的上述Cube分片,每组待合并的上述Cube分片中任意相邻两个上述Cube分片中前一个上述Cube分片的上述终止时间与后一个上述Cube分片的上述起始时间相同;

步骤S405,依次执行上述第二获取步骤、上述排序步骤和上述第三确定步骤至少一次,直至完成所有上述Cube分片集合的确定工作,得到多组待合并的上述Cube分片;

步骤S406,将每组待合并的上述Cube分片中的所有的上述Cube分片进行合并,得到合并Cube分片并存储到上述数据库中,一组待合并的上述Cube分片与一个上述合并Cube分片对应。

上述实施方式中,首先,确定多个Cube分片集合,一个Cube分片集合中的Cube分片属于同一自然周期,即属于同一个月,然后,将每个Cube分片进行排序,排序后,确定Cube分片集合中任意相邻的两个Cube分片是否是连续的,例如,在前一个Cube分片的起止时间为[5月1日,5月6日),后一个Cube分片的起止时间为[5月6日,5月8日),确定这两个Cube分片可以被合并,在前一个Cube分片的起止时间为[5月1日,5月6日),后一个Cube分片的起止时间为[5月8日,5月9日),确定这两个Cube分片无法合并,由此,确定多组待合并的Cube分片,如图2所示,将每组待合并的Cube分片打包为一个合并任务,并放入合并任务列表,遍历合并任务列表,针对每个合并任务,提交合并任务,并循环检测合并任务的执行状态,等待任务正常结束,直至遍历完成,从而实现形成按自然周期规整的Cube分片列表,提高Kylin使用和运维的效率。

为了对数据库中跨自然周期Cube分片进行拆分,在一种可选的实施方式中,在上述步骤S305之后,上述方法还包括:

步骤S501,第三获取步骤,获取第三目标时间、第四目标时间、第五目标时间和第六目标时间,上述第三目标时间为第四目标Cube分片的上述起始时间对应的月,上述第四目标时间为上述第四目标Cube分片的上述终止时间对应的月,上述第五目标时间为上述第四目标Cube分片的上述起始时间对应的日,上述第六目标时间为上述第四目标Cube分片的上述终止时间对应的日,上述第四目标Cube分片为需要拆分的上述Cube分片中的任意一个;

步骤S502,第四确定步骤,根据上述第三目标时间、上述第四目标时间、上述第五目标时间和上述第六目标时间,确定拆分Cube分片的上述起始时间和终止时间,上述拆分Cube分片为上述第四目标Cube分片拆分后的上述Cube分片,上述拆分Cube分片的上述起始时间对应的月与上述终止时间对应的月相同且任意两个上述拆分Cube分片的上述起始时间对应的月不同;

可选的,本申请对于根据上述第三目标时间、上述第四目标时间、上述第五目标时间和上述第六目标时间,确定拆分Cube分片的上述起始时间和终止时间的具体过程不做限制,任何可行的方式均属均属于本申请的保护范围。

在一种可选的实施方式中,上述步骤S502,包括:

步骤S5021:在上述第三目标时间与上述第四目标时间的差值等于1的情况下,根据上述第三目标时间、上述第四目标时间、上述第五目标时间和上述第六目标时间,确定两个上述拆分Cube分片的上述起始时间和终止时间;

步骤S5022:在上述第三目标时间与上述第四目标时间的差值大于1的情况下,根据上述第三目标时间、上述第四目标时间、上述第五目标时间和上述第六目标时间,确定多个上述拆分Cube分片的上述起始时间和终止时间。

上述实施方式中,在对数据库中跨自然周期Cube分片进行拆分时,若Cube分片跨了两个自然周期,则将Cube分片拆分成两个拆分Cube分片,例如Cube分片的起止时间为[5月20日,6月20日),确定拆分Cube分片的起止时间为[5月20日,6月1日)和[6月1日,6月20日),若Cube分片跨了超过两个自然周期,则将Cube分片拆分成多个拆分Cube分片,例如Cube分片的起止时间为[5月20日,7月20日),确定拆分Cube分片的起止时间为[5月20日,6月1日)、[6月1日,7月1日)和[7月1日,7月20日)。

步骤S503,拆分步骤,根据上述拆分Cube分片的上述起始时间和终止时间对上述第四目标Cube分片进行拆分;

可选的,本申请对于根据上述拆分Cube分片的上述起始时间和终止时间对上述第四目标Cube分片进行拆分的具体过程不做限制,任何可行的方式均属均属于本申请的保护范围。

在一种可选的实施方式中,上述步骤S503,包括:

步骤S5031,将上述第四目标Cube分片从上述数据库中删除;

步骤S5032,在上述数据库中按照上述拆分Cube分片的上述起始时间和上述终止时间构建上述拆分Cube分片。

上述实施方式中,将跨自然周期Cube分片拆分成拆分Cube分片的方法为先删除已存在的跨自然周期的Cube分片,再分别重构拆分Cube分片。

步骤S504,依次执行上述第三获取步骤、上述第四确定步骤和上述拆分步骤至少一次,直至完成所有需要拆分的上述Cube分片的拆分工作。

上述实施方式中,在对数据库中跨自然周期Cube分片进行拆分时,确定每个Cube分片的起始时间和终止时间,其拆分的原则为每个Cube分片拆分后得到的拆分Cube分片必须属于不同的自然周期,即属于不同的月,如图2所示,将拆分后的拆分Cube分片列为对应的重构建任务,并放入重构建任务列表,针对每个重构建任务,先删除已存在的跨自然周期的Cube分片,再分别提交重构建子任务,并循环检测子任务的执行状态,等待所有子任务正常结束,则本次重构建任务整体完成,直至遍历完成,最终形成按自然周期规整的Cube分片列表,减少了跨Cube分片查询,提高Kylin使用和运维的效率。

上述Cube立方体的增量式构建方法,上述Cube立方体为数据库中用于存储数据的数据结构,上述Cube立方体包括多个Cube分片,上述Cube分片的边界用起始时间和终止时间标记,一个上述Cube分片用于存储一个时间区间的数据集,首先,获取目标起始时间、目标终止时间以及上述数据库中的上述Cube分片的上述起始时间和上述终止时间,上述目标起始时间为待存储数据集对应的上述时间区间的起点,上述目标终止时间为上述待存储数据集对应的上述时间区间的终点;然后,确定第一目标Cube分片的上述起始时间是否满足第一预设条件,确定上述第一目标Cube分片的上述终止时间是否满足第二预设条件,上述第一预设条件为上述第一目标Cube分片的上述起始时间小于或者等于上述目标起始时间,上述第二预设条件为上述第一目标Cube分片的上述终止时间大于或者等于上述目标终止时间,上述第一目标Cube分片为上述Cube分片中的任意一个;最后,在上述第一目标Cube分片的上述起始时间满足第一预设条件且上述第一目标Cube分片的上述终止时间满足第二预设条件的情况下,在上述数据库中将上述第一目标Cube分片删除,并按照上述第一目标Cube分片的上述起始时间和上述终止时间构建第二目标Cube分片,以存储上述待存储数据集。该方法首先确定待存储数据集对应的时间区间以及数据库中已经存在的Cube分片的起止时间,然后,确定数据库中是否存在起止时间包含该待存储数据集对应的时间区间的Cube分片,若存在则以该Cube分片的起止时间重新构建第二目标Cube分片,以存储待存储数据集,该方法解决了现有技术中无法重新构建已被合并的Cube片段的问题。

需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请实施例还提供了一种Cube立方体的增量式构建装置,需要说明的是,本申请实施例的Cube立方体的增量式构建装置可以用于执行本申请实施例所提供的用于Cube立方体的增量式构建方法。以下对本申请实施例提供的Cube立方体的增量式构建装置进行介绍。

图3是根据本申请实施例的Cube立方体的增量式构建装置的示意图。如图3所示,该装置包括:

获取单元10,用于获取目标起始时间、目标终止时间以及上述数据库中的上述Cube分片的上述起始时间和上述终止时间,上述目标起始时间为待存储数据集对应的上述时间区间的起点,上述目标终止时间为上述待存储数据集对应的上述时间区间的终点;

其中,目标起始时间和目标终止时间分别是是本次为了存储待存储数据集需要重构的Cube分片的起始时间和终止时间,如图2所示,获取数据库的Cube分片列表,遍历该Cube分片列表,解析每个Cube分片的边界,得到每个Cube分片的起始时间和终止时间。

确定单元20,用于确定第一目标Cube分片的上述起始时间是否满足第一预设条件,确定上述第一目标Cube分片的上述终止时间是否满足第二预设条件,上述第一预设条件为上述第一目标Cube分片的上述起始时间小于或者等于上述目标起始时间,上述第二预设条件为上述第一目标Cube分片的上述终止时间大于或者等于上述目标终止时间,上述第一目标Cube分片为上述Cube分片中的任意一个;

其中,如图2所示,在遍历该Cube分片列表的同时,确定数据库中的每个Cube分片的起始时间是否小于或者等于目标起始时间,确定每个Cube分片的终止时间是否大于或者等于目标终止时间,以确定数据库中已存在的Cube分片中是否存在起止时间包含本次需要重构的Cube分片的起止时间的Cube分片,即确定本次需要重构的Cube分片是否被合并。

为了在本次需要重构的Cube分片没有被合并的情况下直接构建Cube分片,基于上述第一目标Cube分片的上述起始时间不满足第一预设条件或上述第一目标Cube分片的上述终止时间不满足第二预设条件的情况,在一种可选的实施方式中,上述装置还包括:

重构单元,用于在上述数据库中按照上述目标起始时间和上述目标终止时间构建上述第二目标Cube分片,以存储上述待存储数据集。

上述实施方式中,若数据库中已存在的Cube分片中不存在起止时间包含本次需要重构的Cube分片的起止时间的Cube分片,即确定本次需要重构的Cube分片没有被合并,此时,在数据库中按照目标起始时间和目标终止时间构建第二目标Cube分片,以存储待存储数据集。

需要说明的是,如图2所示,在构建第二目标Cube分片时,循环检测构建任务的执行状态,等待任务正常结束。

构建单元30,用于在上述第一目标Cube分片的上述起始时间满足第一预设条件且上述第一目标Cube分片的上述终止时间满足第二预设条件的情况下,在上述数据库中将上述第一目标Cube分片删除,并按照上述第一目标Cube分片的上述起始时间和上述终止时间构建第二目标Cube分片,以存储上述待存储数据集。

其中,如图2所示,在遍历该Cube分片列表时,确定数据库中存在起止时间包含本次需要重构的Cube分片的起止时间的Cube分片,即确定本次需要重构的Cube分片已经被合并,此时,跳出遍历,在数据库中按照起止时间包含本次需要重构的Cube分片的起止时间的Cube分片的起始时间和终止时间构建第二目标Cube分片,以存储待存储数据集。

为了确定数据库中已存的Cube分片的起止时间是否跨自然周期,在一种可选的实施方式中,上述装置还包括:

第一获取单元,用于获取上述数据库中上述Cube分片的上述起始时间和上述终止时间;

第二获取单元,用于执行上述第一获取步骤,从第三目标Cube分片的上述起始时间和上述终止时间中,获取第一目标时间和第二目标时间,上述第三目标Cube分片为上述Cube分片中的任意一个,上述第一目标时间为上述第三目标Cube分片的上述起始时间对应的月,上述第二目标时间为上述第三目标Cube分片的上述终止时间对应的月;

第一确定单元,用于执行上述第一确定步骤,在上述第一目标时间与上述第二目标时间不相同的情况下,确定上述第三目标Cube分片需要被拆分;

第二确定单元,用于执行上述第二确定步骤,在上述第一目标时间与上述第二目标时间相同的情况下,确定上述第三目标Cube分片不需要被拆分;

第一迭代单元,用于依次执行上述第一获取步骤、上述第一确定步骤和上述第二确定步骤至少一次,直至完成所有述Cube分片的确定工作,得到多个需要被拆分的上述Cube分片和多个不需要被拆分的上述Cube分片。

上述实施方式中,在确定数据库中已存的Cube分片的起止时间是否跨自然周期时,如图2所示,此时需要再次获取Cube分片列表,解析所有Cube分片的边界,确定每个Cube分片的起始时间对应的月与终止时间对应的月是否相同,以确定每个Cube分片的起止时间是否跨自然周期,该自然周期为月,例如,在Cube分片的起始时间为5月1日,终止时间为5月22日,确定Cube分片的起止时间没有跨月,此时,确定该Cube分片不需要拆分,在Cube分片的起始时间为5月1日,终止时间为6月22日,确定Cube分片的起止时间是跨自然周期的,此时,确定该Cube分片需要拆分。

需要说明的是,Cube分片的起止时间遵循左闭右开即包含起始时间而不包含截止时间的原则,例如Cube分片的起止时间为[5月1日,6月1日),其中,5月1日为Cube分片的起止时间,6月1日为Cube分片的截止时间,5月31日为Cube分片的上述终止时间,因此,确定每个Cube分片的起止时间是否跨月时,需要比较的是5月1日与5月31日是否在同一个月。

为了将数据库中同一自然周期Cube分片合并成一个Cube分片,在一种可选的实施方式中,上述装置还包括:

第三确定单元,用于在不需要被拆分的上述Cube分片中,确定多个Cube分片集合,一个上述Cube分片集合包括上述起始时间对应的月相同的上述Cube分片;

第三获取单元,用于执行上述第二获取步骤,获取目标Cube分片集合,上述目标Cube分片集合为上述Cube分片集合中的任意一个;

排序单元,用于执行上述排序步骤,按照上述Cube分片的上述起始时间对应的日从小到大的顺序对上述目标Cube分片集合中的上述Cube分片进行排序;

第四确定单元,用于执行上述第三确定步骤,根据排序后的上述目标Cube分片集合中的上述Cube分片的上述起始时间和上述终止时间,确定多组待合并的上述Cube分片,每组待合并的上述Cube分片中任意相邻两个上述Cube分片中前一个上述Cube分片的上述终止时间与后一个上述Cube分片的上述起始时间相同;

第二迭代单元,用于执行上述依次执行上述第二获取步骤、上述排序步骤和上述第三确定步骤至少一次,直至完成所有上述Cube分片集合的确定工作,得到多组待合并的上述Cube分片;

合并单元,用于将每组待合并的上述Cube分片中的所有的上述Cube分片进行合并,得到合并Cube分片并存储到上述数据库中,一组待合并的上述Cube分片与一个上述合并Cube分片对应。

上述实施方式中,首先,确定多个Cube分片集合,一个Cube分片集合中的Cube分片属于同一自然周期,即属于同一个月,然后,将每个Cube分片进行排序,排序后,确定Cube分片集合中任意相邻的两个Cube分片是否是连续的,例如,在前一个Cube分片的起止时间为[5月1日,5月6日),后一个Cube分片的起止时间为[5月6日,5月8日),确定这两个Cube分片可以被合并,在前一个Cube分片的起止时间为[5月1日,5月6日),后一个Cube分片的起止时间为[5月8日,5月9日),确定这两个Cube分片无法合并,由此,确定多组待合并的Cube分片,如图2所示,将每组待合并的Cube分片打包为一个合并任务,并放入合并任务列表,遍历合并任务列表,针对每个合并任务,提交合并任务,并循环检测合并任务的执行状态,等待任务正常结束,直至遍历完成,从而实现形成按自然周期规整的Cube分片列表,提高Kylin使用和运维的效率。

为了对数据库中跨自然周期Cube分片进行拆分,在一种可选的实施方式中,上述装置还包括:

第四获取单元,用于执行上述第三获取步骤,获取第三目标时间、第四目标时间、第五目标时间和第六目标时间,上述第三目标时间为第四目标Cube分片的上述起始时间对应的月,上述第四目标时间为上述第四目标Cube分片的上述终止时间对应的月,上述第五目标时间为上述第四目标Cube分片的上述起始时间对应的日,上述第六目标时间为上述第四目标Cube分片的上述终止时间对应的日,上述第四目标Cube分片为需要拆分的上述Cube分片中的任意一个;

第五确定单元,用于执行上述第四确定步骤,根据上述第三目标时间、上述第四目标时间、上述第五目标时间和上述第六目标时间,确定拆分Cube分片的上述起始时间和终止时间,上述拆分Cube分片为上述第四目标Cube分片拆分后的上述Cube分片,上述拆分Cube分片的上述起始时间对应的月与上述终止时间对应的月相同且任意两个上述拆分Cube分片的上述起始时间对应的月不同;

可选的,本申请对于根据上述第三目标时间、上述第四目标时间、上述第五目标时间和上述第六目标时间,确定拆分Cube分片的上述起始时间和终止时间的具体过程不做限制,任何可行的方式均属均属于本申请的保护范围。

在一种可选的实施方式中,上述第五确定单元,包括:

第一确定模块:用于在上述第三目标时间与上述第四目标时间的差值等于1的情况下,根据上述第三目标时间、上述第四目标时间、上述第五目标时间和上述第六目标时间,确定两个上述拆分Cube分片的上述起始时间和终止时间;

第二确定模块:用于在上述第三目标时间与上述第四目标时间的差值大于1的情况下,根据上述第三目标时间、上述第四目标时间、上述第五目标时间和上述第六目标时间,确定多个上述拆分Cube分片的上述起始时间和终止时间。

上述实施方式中,在对数据库中跨自然周期Cube分片进行拆分时,若Cube分片跨了两个自然周期,则将Cube分片拆分成两个拆分Cube分片,例如Cube分片的起止时间为[5月20日,6月20日),确定拆分Cube分片的起止时间为[5月20日,6月1日)和[6月1日,6月20日),若Cube分片跨了超过两个自然周期,则将Cube分片拆分成多个拆分Cube分片,例如Cube分片的起止时间为[5月20日,7月20日),确定拆分Cube分片的起止时间为[5月20日,6月1日)、[6月1日,7月1日)和[7月1日,7月20日)。

拆分单元:用于执行拆分步骤,根据上述拆分Cube分片的上述起始时间和终止时间对上述第四目标Cube分片进行拆分;

可选的,本申请对于根据上述拆分Cube分片的上述起始时间和终止时间对上述第四目标Cube分片进行拆分的具体过程不做限制,任何可行的方式均属均属于本申请的保护范围。

在一种可选的实施方式中,上述拆分单元,包括:

删除模块,用于将上述第四目标Cube分片从上述数据库中删除;

重构模块,用于在上述数据库中按照上述拆分Cube分片的上述起始时间和上述终止时间构建上述拆分Cube分片。

上述实施方式中,将跨自然周期Cube分片拆分成拆分Cube分片的方法为先删除已存在的跨自然周期的Cube分片,再分别重构拆分Cube分片。

第三迭代单元,用于依次执行上述第三获取步骤、上述第四确定步骤和上述拆分步骤至少一次,直至完成所有需要拆分的上述Cube分片的拆分工作。

上述实施方式中,在对数据库中跨自然周期Cube分片进行拆分时,确定每个Cube分片的起始时间和终止时间,其拆分的原则为每个Cube分片拆分后得到的拆分Cube分片必须属于不同的自然周期,即属于不同的月,如图2所示,将拆分后的拆分Cube分片列为对应的重构建任务,并放入重构建任务列表,针对每个重构建任务,先删除已存在的跨自然周期的Cube分片,再分别提交重构建子任务,并循环检测子任务的执行状态,等待所有子任务正常结束,则本次重构建任务整体完成,直至遍历完成,最终形成按自然周期规整的Cube分片列表,减少了跨Cube分片查询,提高Kylin使用和运维的效率。

上述Cube立方体的增量式构建装置,上述Cube立方体为数据库中用于存储数据的数据结构,上述Cube立方体包括多个Cube分片,上述Cube分片的边界用起始时间和终止时间标记,一个上述Cube分片用于存储一个时间区间的数据集,获取单元,用于获取目标起始时间、目标终止时间以及上述数据库中的上述Cube分片的上述起始时间和上述终止时间,上述目标起始时间为待存储数据集对应的上述时间区间的起点,上述目标终止时间为上述待存储数据集对应的上述时间区间的终点;确定单元,用于确定第一目标Cube分片的上述起始时间是否满足第一预设条件,确定上述第一目标Cube分片的上述终止时间是否满足第二预设条件,上述第一预设条件为上述第一目标Cube分片的上述起始时间小于或者等于上述目标起始时间,上述第二预设条件为上述第一目标Cube分片的上述终止时间大于或者等于上述目标终止时间,上述第一目标Cube分片为上述Cube分片中的任意一个;构建单元,用于在上述第一目标Cube分片的上述起始时间满足第一预设条件且上述第一目标Cube分片的上述终止时间满足第二预设条件的情况下,在上述数据库中将上述第一目标Cube分片删除,并按照上述第一目标Cube分片的上述起始时间和上述终止时间构建第二目标Cube分片,以存储上述待存储数据集。该装置首先确定待存储数据集对应的时间区间以及数据库中已经存在的Cube分片的起止时间,然后,确定数据库中是否存在起止时间包含该待存储数据集对应的时间区间的Cube分片,若存在则以该Cube分片的起止时间重新构建第二目标Cube分片,以存储待存储数据集,该装置解决了现有技术中无法重新构建已被合并的Cube片段的问题。

本申请实施例还提供了一种Cube立方体的增量式构建系统,包括:一个或多个处理器,存储器以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置为由上述一个或多个处理器执行,上述一个或多个程序包括用于执行任意一种上述的Cube立方体的增量式构建方法。

上述Cube立方体的增量式构建系统中,包括:一个或多个处理器,存储器以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置为由上述一个或多个处理器执行,上述一个或多个程序包括用于执行任意一种上述的Cube立方体的增量式构建方法。该系统首先确定待存储数据集对应的时间区间以及数据库中已经存在的Cube分片的起止时间,然后,确定数据库中是否存在起止时间包含该待存储数据集对应的时间区间的Cube分片,若存在则以该Cube分片的起止时间重新构建第二目标Cube分片,以存储待存储数据集,该系统解决了现有技术中无法重新构建已被合并的Cube片段的问题。

为了执行上述Cube立方体的增量式构建方法,如图4所示,上述Cube立方体的增量式构建系统提供了调度工具和执行上述Cube立方体的增量式构建方法的自适应KylinCube构建与合并器应用程序,由于Kylin并不提供自动的、定时的Cube分片构建功能,因此在数据跑批流程中,本申请借助调度工具进行定时启动增量构建Cube分片任务,本申请方案与调度工具完全解耦,支持业界常用的调度工具,如Oozie等,本申请的自适应KylinCube构建与合并器应用程序接收来自调度工具的参数,该参数包括要本次构建的Cube分片名称、上述目标起始时间和上述目标终止时间,上述数据库为HBase数据库,上述待存储数据集存储在Hive数据库中,该应用程序分为5个执行模块,分别为边界探测模块、构建模块、边界扫描与自然周期分析模块、合并模块和重构建模块,各模块的功能如下:

边界探测模块:利用HBase中存储的Kylin元数据信息获取Cube分片列表,并解析每个Cube分片的起止时间,确定本次要构建的Cube分片是否被合并;

构建模块:如果边界探测模块确定本次要构建的Cube分片未被合并,则直接调用RESR Server的build API进行构建任务提交,同时循环隔时检测任务执行情况,反馈给上层调度工具,如果边界探测模块确定本次要构建的Cube分片已经被合并,则调整本次要构建的Cube分片的起始时间和终止时间为包含本次需要重构的Cube分片的起止时间的Cube分片的起始时间和终止时间,然后调用RESR Server的rebuild API进行重构建任务提交;

需要说明的是,build API是RESR Server提供的构建接口,rebuild API是RESRServer提供的重构建接口。

边界扫描与自然周期分析模块:当边界探测模块完成构建任务后,再次利用HBase中存储的Kylin元数据信息获取Cube分片列表,并解析每个Cube分片的起止时间,确定合并任务列表的Cube分片和重构建任务列表;

合并模块:遍历合并任务列表,针对每个合并任务,提交合并任务,并循环检测合并任务的执行状态,等待任务正常结束。直至遍历完成;

重构建模块:先删除已存在的跨自然周期的Cube分片,再调用RESR Server的rebuild API分别提交重构建子任务,并循环检测子任务的执行状态,等待所有子任务正常结束,则本次重构建任务整体完成,直至遍历完成。

上述Cube立方体的增量式构建装置包括处理器和存储器,上述获取单元、确定单元和构建单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决现有技术中无法重新构建已被合并的Cube片段的问题。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM),存储器包括至少一个存储芯片。

本申请实施例提供了一种计算机可读存储介质,上述计算机可读存储介质包括存储的程序,其中,上述程序被处理器执行时,上述处理器执行上述Cube立方体的增量式构建方法。

本申请实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现至少以下步骤:

步骤S101,获取目标起始时间、目标终止时间以及上述数据库中的上述Cube分片的上述起始时间和上述终止时间,上述目标起始时间为待存储数据集对应的上述时间区间的起点,上述目标终止时间为上述待存储数据集对应的上述时间区间的终点;

步骤S102,确定第一目标Cube分片的上述起始时间是否满足第一预设条件,确定上述第一目标Cube分片的上述终止时间是否满足第二预设条件,上述第一预设条件为上述第一目标Cube分片的上述起始时间小于或者等于上述目标起始时间,上述第二预设条件为上述第一目标Cube分片的上述终止时间大于或者等于上述目标终止时间,上述第一目标Cube分片为上述Cube分片中的任意一个;

步骤S103,在上述第一目标Cube分片的上述起始时间满足第一预设条件且上述第一目标Cube分片的上述终止时间满足第二预设条件的情况下,在上述数据库中将上述第一目标Cube分片删除,并按照上述第一目标Cube分片的上述起始时间和上述终止时间构建第二目标Cube分片,以存储上述待存储数据集。

本文中的设备可以是服务器、PC、PAD、手机等。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有至少如下方法步骤的程序:

步骤S101,获取目标起始时间、目标终止时间以及上述数据库中的上述Cube分片的上述起始时间和上述终止时间,上述目标起始时间为待存储数据集对应的上述时间区间的起点,上述目标终止时间为上述待存储数据集对应的上述时间区间的终点;

步骤S102,确定第一目标Cube分片的上述起始时间是否满足第一预设条件,确定上述第一目标Cube分片的上述终止时间是否满足第二预设条件,上述第一预设条件为上述第一目标Cube分片的上述起始时间小于或者等于上述目标起始时间,上述第二预设条件为上述第一目标Cube分片的上述终止时间大于或者等于上述目标终止时间,上述第一目标Cube分片为上述Cube分片中的任意一个;

步骤S103,在上述第一目标Cube分片的上述起始时间满足第一预设条件且上述第一目标Cube分片的上述终止时间满足第二预设条件的情况下,在上述数据库中将上述第一目标Cube分片删除,并按照上述第一目标Cube分片的上述起始时间和上述终止时间构建第二目标Cube分片,以存储上述待存储数据集。

在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取计算机可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机可读存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例上述方法的全部或部分步骤。而前述的计算机可读存储介质包括:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

从以上的描述中,可以看出,本申请上述的实施例实现了如下技术效果:

1)、本申请的Cube立方体的增量式构建方法,上述Cube立方体为数据库中用于存储数据的数据结构,上述Cube立方体包括多个Cube分片,上述Cube分片的边界用起始时间和终止时间标记,一个上述Cube分片用于存储一个时间区间的数据集,首先,获取目标起始时间、目标终止时间以及上述数据库中的上述Cube分片的上述起始时间和上述终止时间,上述目标起始时间为待存储数据集对应的上述时间区间的起点,上述目标终止时间为上述待存储数据集对应的上述时间区间的终点;然后,确定第一目标Cube分片的上述起始时间是否满足第一预设条件,确定上述第一目标Cube分片的上述终止时间是否满足第二预设条件,上述第一预设条件为上述第一目标Cube分片的上述起始时间小于或者等于上述目标起始时间,上述第二预设条件为上述第一目标Cube分片的上述终止时间大于或者等于上述目标终止时间,上述第一目标Cube分片为上述Cube分片中的任意一个;最后,在上述第一目标Cube分片的上述起始时间满足第一预设条件且上述第一目标Cube分片的上述终止时间满足第二预设条件的情况下,在上述数据库中将上述第一目标Cube分片删除,并按照上述第一目标Cube分片的上述起始时间和上述终止时间构建第二目标Cube分片,以存储上述待存储数据集。该方法首先确定待存储数据集对应的时间区间以及数据库中已经存在的Cube分片的起止时间,然后,确定数据库中是否存在起止时间包含该待存储数据集对应的时间区间的Cube分片,若存在则以该Cube分片的起止时间重新构建第二目标Cube分片,以存储待存储数据集,该方法解决了现有技术中无法重新构建已被合并的Cube片段的问题。

2)、本申请的Cube立方体的增量式构建装置,上述Cube立方体为数据库中用于存储数据的数据结构,上述Cube立方体包括多个Cube分片,上述Cube分片的边界用起始时间和终止时间标记,一个上述Cube分片用于存储一个时间区间的数据集,获取单元,用于获取目标起始时间、目标终止时间以及上述数据库中的上述Cube分片的上述起始时间和上述终止时间,上述目标起始时间为待存储数据集对应的上述时间区间的起点,上述目标终止时间为上述待存储数据集对应的上述时间区间的终点;确定单元,用于确定第一目标Cube分片的上述起始时间是否满足第一预设条件,确定上述第一目标Cube分片的上述终止时间是否满足第二预设条件,上述第一预设条件为上述第一目标Cube分片的上述起始时间小于或者等于上述目标起始时间,上述第二预设条件为上述第一目标Cube分片的上述终止时间大于或者等于上述目标终止时间,上述第一目标Cube分片为上述Cube分片中的任意一个;构建单元,用于在上述第一目标Cube分片的上述起始时间满足第一预设条件且上述第一目标Cube分片的上述终止时间满足第二预设条件的情况下,在上述数据库中将上述第一目标Cube分片删除,并按照上述第一目标Cube分片的上述起始时间和上述终止时间构建第二目标Cube分片,以存储上述待存储数据集。该装置首先确定待存储数据集对应的时间区间以及数据库中已经存在的Cube分片的起止时间,然后,确定数据库中是否存在起止时间包含该待存储数据集对应的时间区间的Cube分片,若存在则以该Cube分片的起止时间重新构建第二目标Cube分片,以存储待存储数据集,该装置解决了现有技术中无法重新构建已被合并的Cube片段的问题。

3)本申请的Cube立方体的增量式构建系统,包括:一个或多个处理器,存储器以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置为由上述一个或多个处理器执行,上述一个或多个程序包括用于执行任意一种上述的Cube立方体的增量式构建方法。该系统首先确定待存储数据集对应的时间区间以及数据库中已经存在的Cube分片的起止时间,然后,确定数据库中是否存在起止时间包含该待存储数据集对应的时间区间的Cube分片,若存在则以该Cube分片的起止时间重新构建第二目标Cube分片,以存储待存储数据集,该系统解决了现有技术中无法重新构建已被合并的Cube片段的问题。

以上上述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号