分布式数据仓库中的数据更新方法和装置的制造方法_2

文档序号:8922624阅读:来源:国知局
括多个处理器,呈分布式设置,该实现配置具体可配置在所述分布式数据处理平台中的某个处理器中。
[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]根据所述层级数据模
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1