分布式数据仓库中的数据更新方法和装置的制造方法
【技术领域】
[0001]本发明实施例涉及数据仓库技术领域,尤其涉及一种分布式数据仓库中的数据更新方法和装置。
【背景技术】
[0002]以电子商务为例,随着电子商务的发展,京东、淘宝、亚马逊等电子商务公司日常运营中生成以及累积的大量用户、商品和生产相关的数据,呈现爆发式增长,数据结构也开始多元化,数据含有的信息量越来越多,这些公司对数据化运营也越来越关注。数据库用于对数据进行分处理工作,发挥着巨大的作用。大数据时代的降临,数据库转成为分布式架构,以满足爆发式增长的计算及存储的需求。分布式数据仓库一般使用列式存储,并以文件的形式保存数据,因此,采用分布式数据仓库可提高了大数据的存储及计算性能。随着前端的源系统的频繁升级,后台运行的分布式数据处理平台中分布式数据仓库中的数据也需要及时更新,因此,分布式数据仓库中的数据更新的技术应运而生。
[0003]现有的分布式数据仓库中的数据更新技术,一般是,通过分布式数据处理平台抓取源系统升级对应的全量数据;删除分布式数据仓库中的与所述全量数据对应的原始数据表;根据所述全量数据调整分布式数据仓库的已有的数据模型,并利用调整后的数据模型对全量数据进行转换,最后将转换后的数据装载到在分布式数据仓库中新建的数据表中。
[0004]上述分布式数据仓库中的数据更新技术存在以下缺陷:第一、抓取的数据量巨大,对源系统的正常运行带来较大的影响;第二、无法保留源系统的升级前的数据,且通过分布式数据仓库中更新后的数据无法确定源系统升级所导致的数据的具体变更;第三、随着源系统的不断升级,分布式数据仓库的数据的频繁更新会消耗大量的计算和存储资源。
【发明内容】
[0005]本发明实施例提供一种分布式数据仓库中的数据更新方法和装置,以优化分布式数据仓库中的数据的更新方式。
[0006]第一方面,本发明实施例提供了一种分布式数据仓库中的数据更新方法,包括:
[0007]设置分布式数据处理平台中的分布式数据仓库的数据模型的初始版本号;
[0008]根据所述数据模型的初始化版本号,设置所述分布式数据仓库中的原始数据表的初始版本号,其中,所述分布式数据仓库中的原始数据表中的数据与源系统升级前的源数据表中的数据一致;
[0009]在源系统的源数据表的升级过程中,从所述源系统中抓取对应的更新数据以及所述更新数据所属的源数据表的名称,确定所述源系统的升级类型和升级序号;
[0010]将抓取的所述更新数据输入所述数据模型,得到当前更新后的数据表;
[0011]根据所述更新数据所属的源数据表的名称,确定所述分布式数据仓库中对应的原始数据表的名称,作为所述当前更新后的数据表的名称;
[0012]根据所述数据模型的初始版本号以及所述升级序号,设置所述数据模型的当前版本号;
[0013]根据所述数据模型的当前版本号,以及所述源系统的升级类型,设置所述当前更新后的数据表的当前版本号。
[0014]第二方面,本发明实施例提供了一种分布式数据仓库中的数据更新装置,包括:
[0015]数据模型版本初始化模块,用于设置分布式数据处理平台中的分布式数据仓库的数据模型的初始版本号;
[0016]数据表版本初始化模块,用于根据所述数据模型的初始化版本号,设置所述分布式数据仓库中的原始数据表的初始版本号,其中,所述分布式数据仓库中的原始数据表中的数据与源系统升级前的源数据表中的数据一致;
[0017]更新要素获取模块,用于在源系统的源数据表的升级过程中,从所述源系统中抓取对应的更新数据以及所述更新数据所属的源数据表的名称,确定所述源系统的升级类型和升级序号;
[0018]数据表更新模块,用于将抓取的所述更新数据输入所述数据模型,得到当前更新后的数据表;
[0019]数据表名称配置模块,用于根据所述更新数据所属的源数据表的名称,确定所述分布式数据仓库中对应的原始数据表的名称,作为所述当前更新后的数据表的名称;
[0020]数据模型版本配置模块,用于根据所述数据模型的初始版本号以及所述升级序号,设置所述数据模型的当前版本号;
[0021]数据表版本配置模块,用于根据所述数据模型的当前版本号,以及所述源系统的升级类型,设置所述当前更新后的数据表的当前版本号。
[0022]本发明实施例提供的分布式数据仓库中的数据更新方法和装置,在源系统升级前,通过设置对分布式数据仓库的数据模型的初始版本号,以及分布式数据仓库中的原始数据表的初始版本号,使得通过分布式数据仓库中的原始数据表的初始版本号,即可查询分布式数据仓库中的原始数据表,由于分布式数据仓库中的原始数据表中的数据与源系统升级前的源数据表中的数据一致,因此可以确定源系统升级前的源数据表中的数据;在源系统的升级过程中,只抓取对应的更新数据,相对于现有技术中抓取全量数据而言,使得抓取的数据量大大减少,因此,减小了对源系统的正常运行的影响,同时,将源系统的升级对应的更新数据记录到当前更新后的数据表中,避免了现有技术中由大量删除操作所导致的对分布式数据仓库的计算和储存的影响;在源系统每次升级过程中,将源系统的升级对应的更新数据记录到当前更新后的数据表中,并根据所述数据模型的初始版本号以及所述升级序号,动态设置所述数据模型的当前版本号,并根据所述数据模型的当前版本号,以及所述源系统的升级类型,动态设置所述当前更新后的数据表的当前版本号,而当前更新后的数据表的名称则沿用所述更新数据所属的源数据表的名称所映射到的所述分布式数据仓库中对应的原始数据表的名称,保持静态不变,因此,通过分布式数据仓库中的名称相同的数据表的不同版本号,即可查询确定在源系统每次升级过程中,分布式数据仓库中的对应数据表的动态更新过程和源系统的相应的升级类型,可以为不同数据分析口径提供支持;此外,对分布式数据仓库的数据模型的版本号进行动态更新,弱化了源系统频繁升级对分布式数据仓库的数据模型的影响。
【附图说明】
[0023]为了更清楚地说明本发明,下面将对本发明中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0024]图1a为本发明实施例一提供的一种分布式数据仓库中的数据更新方法的流程示意图;
[0025]图1b为本发明实施例一提供的一种层级数据模型的示意图;
[0026]图1c为本发明实施例一提供的分布式数据仓库中的数据更新实例中源系统升级前的分布式数据仓库中的数据模型以及对应的数据表的版本号的设置效果图;
[0027]图1d为本发明实施例一提供的分布式数据仓库中的数据更新实例中源系统第一次升级后的分布式数据仓库中的数据模型以及对应的数据表的版本号的设置效果图;
[0028]图1e为本发明实施例一提供的分布式数据仓库中的数据更新实例中源系统第二次升级后的分布式数据仓库中的数据模型以及对应的数据表的版本号的设置效果图;
[0029]图2为本发明实施例二提供的一种分布式数据仓库中的数据更新装置的结构示意图。
【具体实施方式】
[0030]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施例中的技术方案作进一步详细描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。可以理解的是,此处所描述的具体实施例仅用于解释本发明,而非对本发明的限定,基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
[0031]实施例一
[0032]请参阅图la,为本发明实施例一提供的一种分布式数据仓库中的数据更新方法的流程示意图。本发明实施例的方法可以由配置以硬件和/或软件实现的分布式数据仓库中的数据更新装置来执行,该更新装置典型的是配置于分布式数据处理平台中,通常,分布式数据处理平台包
括多个处理器,呈分布式设置,该实现配置具体可配置在所述分布式数据处理平台中的某个处理器中。
[0033]该方法包括:步骤110?步骤170。
[0034]步骤110、设置分布式数据处理平台中的分布式数据仓库的数据模型的初始版本号。
[0035]步骤120、根据所述数据模型的初始化版本号,设置所述分布式数据仓库中的原始数据表的初始版本号,其中,所述分布式数据仓库中的原始数据表中的数据与源系统升级前的源数据表中的数据一致。
[0036]步骤110和步骤120在源系统的源数据表升级之前执行。源系统运行在前端,分布式数据处理平台运行在后台,其中,对于不同的应用领域,前端的源系统要升级的源数据表不同。例如,在电子商务领域,当卖家对商品价格进行优惠调整,买家购买商品生成订单时,前端的源系统中的源数据表中的应收价格需要相应升级。
[0037]需要说明的是,在源系统和分布式数据处理平台开发完成,将源系统中的源数据表和分布式数据处理平台中的原始数据表进行数据表映射之后,源系统中的源数据表中的数据与分布式数据处理平台中的分布式数据表中的原始数据表中的数据一致。在这种情况下,执行步骤110和步骤120。
[0038]示例性地,将分布式数据仓库中的数据模型的初始版本号设置为:公司简称_数据模型名称_Vn,其中,η为自然数I ;将所述分布式数据仓库中的原始数据表的初始版本号设置为:公司简称_¥11_111,其中,m为自然数O。对于电子商务平台京东而言,具体可以将分布式数据仓库中的数据模型的初始版本号设置为:JD_M_V1,将所述分布式数据仓库中的原始数据表的初始版本号设置为:JD_V1_0。
[0039]需要说明的是,分布式数据仓库中的多张原始数据表的初始版本号均相同,但是,多张原始数据表的名称各不相同。
[0040]通过分布式数据仓库中的原始数据表的初始版本号,即可查询分布式数据仓库中的原始数据表,由于所述分布式数据仓库中的原始数据表中的数据与源系统升级前的源数据表中的数据一致,因此可以确定源系统升级前的源数据表中的数据。
[0041]步骤130、在源系统的源数据表的升级过程中,从所述源系统中抓取对应的更新数据以及所述更新数据所属的源数据表的名称,确定所述源系统的升级类型和升级序号。
[0042]在源系统的源数据表的升级过程中,只抓取对应的更新数据,相对于现有技术中抓取全量数据(不仅包括更新数据,还包括未更新数据)而言,使得抓取的数据量大大减少,因此,减小了对源系统的正常运行的影响。
[0043]本步骤中,所述源系统的升级类型可包括下述至少一项:
[0044]源系统的业务升级、数据存储模式变更、数据库类型升级、数据表结构变更,以及数据表的数据含义变更。
[0045]其中,源系统业务升级可包括:数据表的名称和/或字段的含义发生变化;源系统的数据存储模式变更可包括:由单表存储变成分库分表存储;源系统的数据库类型升级可包括:如oracle库升级为mysql库;源系统的数据表结构变更可包括:添加字段数量和/或调整字段类型等;源系统的数据表的数据含义变更,例如,某字段数据记录的是应收数据,现变成为记录应收数据减优惠数据。
[0046]步骤140、将抓取的所述更新数据输入所述数据模型,得到当前更新后的数据表。
[0047]数据模型用于将源系统的升级对应的更新数据记录到新建的数据表(也即当前更新后的数据表)中。
[0048]步骤150、根据所述更新数据所属的源数据表的名称,确定所述分布式数据仓库中对应的原始数据表的名称,作为所述当前更新后的数据表的名称。
[0049]步骤160、根据所述数据模型的初始版本号以及所述升级序号,设置所述数据模型的当前版本号。
[0050]其中,升级序号代表升级次数,源系统每升级一次,数据模型的当前版本号相应更新一次。
[0051]示例性地,将分布式数据仓库中的数据模型的初始版本号设置为:公司简称_数据模型名称_Vn,其中,η为自然数I ;则第一次升级后,数据模型的当前版本号更新为:公司简称_数据模型名称_V2 ;第二次升级后,数据模型的当前版本号更新为:公司简称_数据模型名称^3,以此类推。
[0052]步骤170、根据所述数据模型的当前版本号,以及所述源系统的升级类型,设置所述当前更新后的数据表的当前版本号。
[0053]前已述及,所述源系统的升级类型可包括多种类型,在设置所述当前更新后的数据表的当前版本号时,可以用不同的标识代表不同的升级类型。
[0054]示例性地,假设源系统升级前的源数据表为两张,名称分别为“表X”和“表Y”,分布式数据仓库中相应的有两张原始数据表,名称分别为“表I”和“表2”,分布式数据仓库中的数据模型的初始版本号设置为JD_M_V1,其中,名称为“表X”的源数据表中的数据与名称为“表I”的原始数据表中的数据一致,名称为“表I”的原始数据表的初始版本号为JD_V1_0,名称为“表Y”的源数据表中的数据与名称为“表2”的原始数据表中的数据一致,名称为“表2”的原始数据表的初始版本号为JD_V1_0。
[0055]假设在源系统第一次升级过程中,名称为“表X”的源数据表中的数据发生变化,升级类型为“数据表结构变更”,用标识4表征,抓取相应的更新数据,将抓取的所述更新数据输入所述数据模型,得到当前更新后的数据表,根据所述更新数据所属的源数据表的名称“表X”,确定所述分布式数据仓库中对应的原始数据表的名称“表1”,作为所述当前更新后的数据表的名称,也即当前更新后的数据表的名称为“表I”;根据所述数据模型的初始版本号“ JD_M_V1 ”以及所述升级序号I (表示第一次升级),设置所述数据模型的当前版本号“ JD_M_V2 ”;根据所述数据模型的当前版本号“ JD_M_V2 ”,以及所述源系统的升级类型,设置所述当前更新后的数据表的当前版本号“ JD_V2_升级类型标识”,也即“ JD_V2_4”。
[0056]本实施例的技术方案,在源系统升级前,通过设置对分布式数据仓库的数据模型的初始版本号,以及分布式数据仓库中的原始数据表的初始版本号,使得通过分布式数据仓库中的原始数据表的初始版本号,即可查询分布式数据仓库中的原始数据表,由于分布式数据仓库中的原始数据表中的数据与源系统升级前的源数据表中的数据一致,因此可以确定源系统升级前的源数据表中的数据;在源系统的升级过程中,只抓取对应的更新数据,相对于现有技术中抓取全量数据而言,使得抓取的数据量大大减少,因此,减小了对源系统的正常运行的影响,同时,将源系统的升级对应的更新数据记录到当前更新后的数据表中,避免了现有技术中由大量删除操作所导致的对分布式数据仓库的计算和储存的影响;在源系统每次升级过程中,将源系统的升级对应的更新数据记录到当前更新后的数据表中,并根据所述数据模型的初始版本号以及所述升级序号,动态设置所述数据模型的当前版本号,并根据所述数据模型的当前版本号,以及所述源系统的升级类型,动态设置所述当前更新后的数据表的当前版本号,而当前更新后的数据表的名称则沿用所述更新数据所属的源数据表的名称所映射到的所述分布式数据仓库中对应的原始数据表的名称,保持静态不变,因此,通过分布式数据仓库中的名称相同的数据表的不同版本号,即可查询确定在源系统每次升级过程中,分布式数据仓库中的对应数据表的动态更新过程和源系统的相应的升级类型,可以为不同数据分析口径提供支持;此外,对分布式数据仓库的数据模型的版本号进行动态更新,弱化了源系统频繁升级对分布式数据仓库的数据模型的影响。
[0057]本实施例对步骤150和步骤160的执行顺序不进行限制。
[0058]实例
[0059]在上述方案中,所述数据模型可以为层级数据模型;
[0060]设置所述数据模型的初始版本号,具体可以包括:
[0061]根据所述层级数据模型的层级名称,设置所述层级数据模型的初始化版本号;
[0062]相应的,根据所述数据模型的初始版本号以及所述升级序号,设置所述数据模型的当前版本号,具体可以包括:
[0063]根据所述层级数据模
型的初始化版本号、所述升级序号以及所述层级名称,设置所述层级数据模型的当前版本号。
[0064]下面结合图1b所示的层级数据模型进行说明。
[0065]该层级数据模型依次包括:维度数据层(DIM)、缓冲数据层(Buffering DataModel,BDM)、基础数据层(Fundamental Data Model, FDM)、通用数据层(General DataModel,GDM)和聚合数据层(Aggregative Data Model,ADM)。
[0066]其中,维度数据层用于从所述源系统中抓取所述升级过程关联的维度数据,并装载到所述维度数据层中新建的数据表中;缓冲数据层用于从所述源系统中抓取对应的更新数据,并装载到所述缓冲数据层中新建的数据表中;基础数据层用于从所述缓冲数据层获取所述更新数据,并装载到所述基础数据层中新建的数据表中;通用数据层用于按照业务主题,对所述基础数据层中的所述更新数据进行业务加工处理,得到所述更新数据对应的业务主题数据,并装载到所述通用数据层中新建的数据表中;聚合数据层用于对所述基础数据层中的所述更新数据或者所述通用数据层中的所述业务主题数据,根据所述维度数据进行聚合,并将聚合数据装载到所述聚合数据层中新建的数据表中。
[0067]示例性地,请参阅图lc,假设源系统升级前的源数据表为两张,名称分别为“表X”和“表Y”,分布式数据仓库中的层级数据模型的数据缓冲层中相应的有两张原始数据表,名称分别为“表I”和“表2”,分布式数据仓库中的缓冲数据层的初始版本号设置为JD_BDM_VI,其中,名称为“表X”的源数据表中的数据与名称为“表I”的原始数据表中的数据一致,名称为“表I”的原始数据表的初始版本号为JD_V1_0,名称为“表Y”的源数据表中的数据与名称为“表2”的原始数据表中的数据一致,名称为“表2”的原始数据表的初始版本号为JD_V1_0 ;相应的,分布式数据仓库中的基础数据层的初始版本号设置为JD_FDM_V1,该层中,名称为“表I”的数据表的初始版本号为JD_V1_0,名称为“表2”的数据表的初始版本号为JD_V1_0 ;相应的,分布式数据仓库中的通用数据层的初始版本号设置为JD_GDM_V1,该层中,名称为“表I”的数据表的初始版本号为JD_V1_0,名称为“表2”的数据表的初始版本号为JD_V1_0 ;相应的,分布式数据仓库中的聚合数据层的初始版本号设置为JD_ADM_V1,该层中,名称为“表I”的数据表的初始版本号为JD_V1_0,名称为“表2”的数据表的初始版本号为JD_V1_0 ;相应的,分布式数据仓库中的维度数据层的初始版本号设置为JD_DIM_VI,该层中,名称为“表I”的数据表的初始版本号为JD_V1_0,名称为“表2”的数据表的初始版本号为JD_V1_0。
[0068]请参阅图ld,假设在源系统第一次升级过程中,名称为“表X”的源数据表中的数据发生变化,升级类型为“数据表结构变更”,用标识4表征,缓冲数据层的版本号为JD_BDM_V2,将抓取的所述更新数据输入所述层级数据模型,则经过缓冲数据层后,得到更新的数据表,名称仍沿用“表1”,版本号为JD_V2_4 ;基础数据层的版本号为JD_FDM_V2,经过基础数据层后,得到更新的数据表,名称仍沿用“表1”,版本号为JD_V2_4 ;通用数据层的版本号为JD_GDM_V2,经过通用数据层后,得到更新的数据表,名称仍沿用“表1”,版本号为JD_V2_4 ;聚合数据层的版本号为JD_ADM_V2,经过聚合数据层后,得到更新的数据表,名称仍沿用“表1”,版本号为JD_V2_4 ;维度数据层的版本号为JD_DIM_V2,经过维度数据层后,得到更新的数据表,名称仍沿用“表1”,版本号为JD_V2_4。
[0069]请参阅图le,假设在源系统第二次升级过程中,名称为“表X”的源数据表中的数据发生变化,升级类型为“数据表的数据含义变更”,用标识5表征,缓冲数据层的版本号为JD_BDM_V3,将抓取的所述更新数据输入所述层级数据模型,则经过缓冲数据层后,得到更新的数据表,名称仍沿用“表1”,版本号为JD_V3_5 ;基础数据层的版本号为JD_FDM_V3,经过基础数据层后,得到更新的数据表,名称仍沿用“表1”,版本号为JD_V3_5 ;通用数据层的版本号为JD_GDM_V3,经过通用数据层后,得到更新的数据表,名称仍沿用“表I ”,版本号为JD_V3_5;聚合数据层的版本号为JD_ADM_V3,经过聚合数据层后,得到更新的数据表,名称仍沿用“表1”,版本号为JD_V3_5 ;维度数据层的版本号为JD_DIM_V3,经过维度数据层后,得到更新的数据表,名称仍沿用“表I ”,版本号为JD_V3_5。
[0070]在源系统的每一次升级过程中,动态设置缓冲数据层的版本号,与缓冲数据层有血缘关系的基础数据层、通用数据层、聚合数据层以及维度数据层都会进行版本号动态更新,同时,更新各层级的数据,只记录当前升级过程对应的更新数据;并根据各层级数据模型的当前版本号,以及所述源系统的升级类型,动态设置各层级中当前更新后的数据表的当前版本号,最终,在源系统每次升级后,形成一棵完成的版本进化树。而当前更新后的数据表的名称则沿用所述更新数据所属的源数据表的名称所映射到的所述分布式数据仓库中对应的原始数据表的名称,保持静态不变,因此,通过分布式数据仓库中的名称相同的数据表的不同版本号,即可查询确定在源系统每次升级过程中,分布式数据仓库中的对应数据表的动态更新过程和源系统的相应的升级类型,可以为不同数据分析口径提供支持;此夕卜,对分布式数据仓库的数据模型的版本号进行动态更新,弱化了源系统频繁升级对分布式数据仓库的数据模型的影响。
[0071 ] 在上述实例中,所述层级数据模型还可包括:
[0072]临时数据层,用于存储所述通用数据层执行业务加工处理操作的中间数据,和/或所述聚合数据层执行聚合操作的中间数据。
[0073]实施例二
[0074]请参阅图2,为本发明实施例二提供的一种分布式数据仓库中的数据更新装置的结构示意图。该装置包括:数据模型版本初始化模块210、数据表版本初始化模块220、更新要素获取模块230、数据表更新模块240、数据表名称配置模块250、数据模型版本配置模块260和数据表版本配置模块270。
[0075]其中,数据模型版本初始化模块210用于设置分布式数据处理平台中的分布式数据仓库的数据模型的初始版本号;数据表版本初始化模块220用于根据所述数据模型的初始化版本号,设置所述分布式数据仓库中的原始数据表的初始版本号,其中,所述分布式数据仓库中的原始数据表中的数据与源系统升级前的源数据表中的数据一致;更新要素获取模块230用于在源系统的源数据表的升级过程中,从所述源系统中抓取对应的更新数据以及所述更新数据所属的源数据表的名称,确定所述源系统的升级类型和升级序号;数据表更新模块240用于将抓取的所述更新数据输入所述数据模型,得到当前更新后的数据表;数据表名称配置模块250用于根据所述更新数据所属的源数据表的名称,确定所述分布式数据仓库中对应的原始数据表的名称,作为所述当前更新后的数据表的名称;数据模型版本配置模块260用于根据所述数据模型的初始版本号以及所述升级序号,设置所述数据模型的当前版本号;数据表版本配置模块270用于根据所述数据模型的当前版本号,以及所述源系统的升级类型,设置所述当前更新后的数据表的当前版本号。
[0076]在上述方案中,所述数据模型可以为层级数据模型;
[0077]所述数据模型版本初始化模块210具体可用于:根据所述层级数据模型的层级名称,设置所述层级数据模型的初始化版本号;
[0078]所述数据模型版本配置模块260具体可用于:根据所述层级数据模型的初始化版本号、所述升级序号以及所述层级名称,设置所述层级数据模型的当前版本号。
[0079]在上述方案中,在所述数据模型为层级数据模型时,可依次包括:维度数据层、缓冲数据层、基础数据层、通用数据层和聚合数据层。
[0080]其中,维度数据层用于从所述源系统中抓取所述升级过程关联的维度数据,并装载到所述维度数据层中新建的数据
表中;缓冲数据层用于从所述源系统中抓取对应的更新数据,并装载到所述缓冲数据层中新建的数据表中;基础数据层用于从所述缓冲数据层获取所述更新数据,并装载到所述基础数据层中新建的数据表中;通用数据层用于按照业务主题,对所述基础数据层中的所述更新数据进行业务加工处理,得到所述更新数据对应的业务主题数据,并装载到所述通用数据层中新建的数据表中;聚合数据层用于对所述基础数据层中的所述更新数据或者所述通用数据层中的所述业务主题数据,根据所述维度数据进行聚合,并将聚合数据装载到所述聚合数据层中新建的数据表中。
[0081]进一步的,所述层级数据模型还可包括:
[0082]临时数据层,用于存储所述通用数据层执行业务加工处理操作的中间数据,和/或所述聚合数据层执行聚合操作的中间数据。
[0083]在上述方案中,所述源系统的升级类型可包括下述至少一项:
[0084]源系统的业务升级、数据存储模式变更、数据库类型升级、数据表结构变更,以及数据表的数据含义变更。
[0085]本发明实施例提供的分布式数据仓库的数据更新装置可执行本发明任意实施例所提供的分布式数据仓库的数据更新方法,具备执行方法相应的功能模块和有益效果。
[0086]最后应说明的是:以上各实施例仅用于说明本发明的技术方案,而非对其进行限制;实施例中优选的实施方式,并非对其进行限制,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种分布式数据仓库中的数据更新方法,其特征在于,包括: 设置分布式数据处理平台中的分布式数据仓库的数据模型的初始版本号; 根据所述数据模型的初始化版本号,设置所述分布式数据仓库中的原始数据表的初始版本号,其中,所述分布式数据仓库中的原始数据表中的数据与源系统升级前的源数据表中的数据一致; 在源系统的源数据表的升级过程中,从所述源系统中抓取对应的更新数据以及所述更新数据所属的源数据表的名称,确定所述源系统的升级类型和升级序号; 将抓取的所述更新数据输入所述数据模型,得到当前更新后的数据表; 根据所述更新数据所属的源数据表的名称,确定所述分布式数据仓库中对应的原始数据表的名称,作为所述当前更新后的数据表的名称; 根据所述数据模型的初始版本号以及所述升级序号,设置所述数据模型的当前版本号; 根据所述数据模型的当前版本号,以及所述源系统的升级类型,设置所述当前更新后的数据表的当前版本号。2.根据权利要求1所述的方法,其特征在于,所述数据模型为层级数据模型; 设置所述数据模型的初始版本号,包括: 根据所述层级数据模型的层级名称,设置所述层级数据模型的初始化版本号; 根据所述数据模型的初始版本号以及所述升级序号,设置所述数据模型的当前版本号,包括: 根据所述层级数据模型的初始化版本号、所述升级序号以及所述层级名称,设置所述层级数据模型的当前版本号。3.根据权利要求1所述的方法,其特征在于,所述数据模型为层级数据模型,依次包括: 维度数据层,用于从所述源系统中抓取所述升级过程关联的维度数据,并装载到所述维度数据层中新建的数据表中; 缓冲数据层,用于从所述源系统中抓取对应的更新数据,并装载到所述缓冲数据层中新建的数据表中; 基础数据层,用于从所述缓冲数据层获取所述更新数据,并装载到所述基础数据层中新建的数据表中; 通用数据层,用于按照业务主题,对所述基础数据层中的所述更新数据进行业务加工处理,得到所述更新数据对应的业务主题数据,并装载到所述通用数据层中新建的数据表中; 聚合数据层,用于对所述基础数据层中的所述更新数据或者所述通用数据层中的所述业务主题数据,根据所述维度数据进行聚合,并将聚合数据装载到所述聚合数据层中新建的数据表中。4.根据权利要求3所述的方法,其特征在于,所述层级数据模型还包括: 临时数据层,用于存储所述通用数据层执行业务加工处理操作的中间数据,和/或所述聚合数据层执行聚合操作的中间数据。5.根据权利要求1-4任一所述的方法,其特征在于,所述源系统的升级类型,包括下述至少一项: 源系统的业务升级、数据存储模式变更、数据库类型升级、数据表结构变更,以及数据表的数据含义变更。6.一种分布式数据仓库中的数据更新装置,其特征在于,包括: 数据模型版本初始化模块,用于设置分布式数据处理平台中的分布式数据仓库的数据模型的初始版本号; 数据表版本初始化模块,用于根据所述数据模型的初始化版本号,设置所述分布式数据仓库中的原始数据表的初始版本号,其中,所述分布式数据仓库中的原始数据表中的数据与源系统升级前的源数据表中的数据一致; 更新要素获取模块,用于在源系统的源数据表的升级过程中,从所述源系统中抓取对应的更新数据以及所述更新数据所属的源数据表的名称,确定所述源系统的升级类型和升级序号; 数据表更新模块,用于将抓取的所述更新数据输入所述数据模型,得到当前更新后的数据表; 数据表名称配置模块,用于根据所述更新数据所属的源数据表的名称,确定所述分布式数据仓库中对应的原始数据表的名称,作为所述当前更新后的数据表的名称; 数据模型版本配置模块,用于根据所述数据模型的初始版本号以及所述升级序号,设置所述数据模型的当前版本号; 数据表版本配置模块,用于根据所述数据模型的当前版本号,以及所述源系统的升级类型,设置所述当前更新后的数据表的当前版本号。7.根据权利要求6所述的装置,其特征在于,所述数据模型为层级数据模型; 所述数据模型版本初始化模块具体用于:根据所述层级数据模型的层级名称,设置所述层级数据模型的初始化版本号; 所述数据模型版本配置模块具体用于:根据所述层级数据模型的初始化版本号、所述升级序号以及所述层级名称,设置所述层级数据模型的当前版本号。8.根据权利要求6所述的装置,其特征在于,所述数据模型为层级数据模型,依次包括: 维度数据层,用于从所述源系统中抓取所述升级过程关联的维度数据,并装载到所述维度数据层中新建的数据表中; 缓冲数据层,用于从所述源系统中抓取对应的更新数据,并装载到所述缓冲数据层中新建的数据表中; 基础数据层,用于从所述缓冲数据层获取所述更新数据,并装载到所述基础数据层中新建的数据表中; 通用数据层,用于按照业务主题,对所述基础数据层中的所述更新数据进行业务加工处理,得到所述更新数据对应的业务主题数据,并装载到所述通用数据层中新建的数据表中; 聚合数据层,用于对所述基础数据层中的所述更新数据或者所述通用数据层中的所述业务主题数据,根据所述维度数据进行聚合,并将聚合数据装载到所述聚合数据层中新建的数据表中。9.根据权利要求8所述的装置,其特征在于,所述层级数据模型还包括: 临时数据层,用于存储所述通用数据层执行业务加工处理操作的中间数据,和/或所述聚合数据层执行聚合操作的中间数据。10.根据权利要求6-9任一所述的装置,其特征在于,所述源系统的升级类型,包括下述至少一项: 源系统的业务升级、数据存储模式变更、数据库类型升级、数据表结构变更,以及数据表的数据含义变更。
【专利摘要】本发明提供一种分布式数据仓库中的数据更新方法和装置。该方法包括:设置分布式数据仓库的数据模型的初始版本号;设置分布式数据仓库中的原始数据表的初始版本号;在源系统升级过程中,抓取对应的更新数据以及更新数据所属的源数据表的名称,确定源系统的升级类型和升级序号;将更新数据输入数据模型得到当前更新后的数据表;根据所述名称,确定分布式数据仓库中对应的原始数据表的名称,作为当前更新后的数据表的名称;根据数据模型的初始版本号以及升级序号,设置数据模型的当前版本号;根据数据模型的当前版本号以及升级类型,设置当前更新后的数据表的当前版本号,可确定分布式数据仓库中对应数据表的每次动态更新过程和源系统的升级类型。
【IPC分类】G06F17/30
【公开号】CN104899257
【申请号】CN201510254402
【发明人】孙冬, 董月红
【申请人】北京京东尚科信息技术有限公司, 北京京东世纪贸易有限公司
【公开日】2015年9月9日
【申请日】2015年5月18日