CN104899257B - 分布式数据仓库中的数据更新方法和装置 - Google Patents
分布式数据仓库中的数据更新方法和装置 Download PDFInfo
- Publication number
- CN104899257B CN104899257B CN201510254402.9A CN201510254402A CN104899257B CN 104899257 B CN104899257 B CN 104899257B CN 201510254402 A CN201510254402 A CN 201510254402A CN 104899257 B CN104899257 B CN 104899257B
- Authority
- CN
- China
- Prior art keywords
- data
- model
- layer
- tables
- version number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
- G06F16/2329—Optimistic concurrency control using versioning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种分布式数据仓库中的数据更新方法和装置。该方法包括:设置分布式数据仓库的数据模型的初始版本号;设置分布式数据仓库中的原始数据表的初始版本号;在源系统升级过程中,抓取对应的更新数据以及更新数据所属的源数据表的名称,确定源系统的升级类型和升级序号;将更新数据输入数据模型得到当前更新后的数据表;根据所述名称,确定分布式数据仓库中对应的原始数据表的名称,作为当前更新后的数据表的名称;根据数据模型的初始版本号以及升级序号,设置数据模型的当前版本号;根据数据模型的当前版本号以及升级类型,设置当前更新后的数据表的当前版本号,可确定分布式数据仓库中对应数据表的每次动态更新过程和源系统的升级类型。
Description
技术领域
本发明实施例涉及数据仓库技术领域,尤其涉及一种分布式数据仓库中的数据更新方法和装置。
背景技术
以电子商务为例,随着电子商务的发展,京东、淘宝、亚马逊等电子商务公司日常运营中生成以及累积的大量用户、商品和生产相关的数据,呈现爆发式增长,数据结构也开始多元化,数据含有的信息量越来越多,这些公司对数据化运营也越来越关注。数据库用于对数据进行分处理工作,发挥着巨大的作用。大数据时代的降临,数据库转成为分布式架构,以满足爆发式增长的计算及存储的需求。分布式数据仓库一般使用列式存储,并以文件的形式保存数据,因此,采用分布式数据仓库可提高了大数据的存储及计算性能。随着前端的源系统的频繁升级,后台运行的分布式数据处理平台中分布式数据仓库中的数据也需要及时更新,因此,分布式数据仓库中的数据更新的技术应运而生。
现有的分布式数据仓库中的数据更新技术,一般是,通过分布式数据处理平台抓取源系统升级对应的全量数据;删除分布式数据仓库中的与所述全量数据对应的原始数据表;根据所述全量数据调整分布式数据仓库的已有的数据模型,并利用调整后的数据模型对全量数据进行转换,最后将转换后的数据装载到在分布式数据仓库中新建的数据表中。
上述分布式数据仓库中的数据更新技术存在以下缺陷:第一、抓取的数据量巨大,对源系统的正常运行带来较大的影响;第二、无法保留源系统的升级前的数据,且通过分布式数据仓库中更新后的数据无法确定源系统升级所导致的数据的具体变更;第三、随着源系统的不断升级,分布式数据仓库的数据的频繁更新会消耗大量的计算和存储资源。
发明内容
本发明实施例提供一种分布式数据仓库中的数据更新方法和装置,以优化分布式数据仓库中的数据的更新方式。
第一方面,本发明实施例提供了一种分布式数据仓库中的数据更新方法,包括:
设置分布式数据处理平台中的分布式数据仓库的数据模型的初始版本号;
根据所述数据模型的初始化版本号,设置所述分布式数据仓库中的原始数据表的初始版本号,其中,所述分布式数据仓库中的原始数据表中的数据与源系统升级前的源数据表中的数据一致;
在源系统的源数据表的升级过程中,从所述源系统中抓取对应的更新数据以及所述更新数据所属的源数据表的名称,确定所述源系统的升级类型和升级序号;
将抓取的所述更新数据输入所述数据模型,得到当前更新后的数据表;
根据所述更新数据所属的源数据表的名称,确定所述分布式数据仓库中对应的原始数据表的名称,作为所述当前更新后的数据表的名称;
根据所述数据模型的初始版本号以及所述升级序号,设置所述数据模型的当前版本号;
根据所述数据模型的当前版本号,以及所述源系统的升级类型,设置所述当前更新后的数据表的当前版本号。
第二方面,本发明实施例提供了一种分布式数据仓库中的数据更新装置,包括:
数据模型版本初始化模块,用于设置分布式数据处理平台中的分布式数据仓库的数据模型的初始版本号;
数据表版本初始化模块,用于根据所述数据模型的初始化版本号,设置所述分布式数据仓库中的原始数据表的初始版本号,其中,所述分布式数据仓库中的原始数据表中的数据与源系统升级前的源数据表中的数据一致;
更新要素获取模块,用于在源系统的源数据表的升级过程中,从所述源系统中抓取对应的更新数据以及所述更新数据所属的源数据表的名称,确定所述源系统的升级类型和升级序号;
数据表更新模块,用于将抓取的所述更新数据输入所述数据模型,得到当前更新后的数据表;
数据表名称配置模块,用于根据所述更新数据所属的源数据表的名称,确定所述分布式数据仓库中对应的原始数据表的名称,作为所述当前更新后的数据表的名称;
数据模型版本配置模块,用于根据所述数据模型的初始版本号以及所述升级序号,设置所述数据模型的当前版本号;
数据表版本配置模块,用于根据所述数据模型的当前版本号,以及所述源系统的升级类型,设置所述当前更新后的数据表的当前版本号。
本发明实施例提供的分布式数据仓库中的数据更新方法和装置,在源系统升级前,通过设置对分布式数据仓库的数据模型的初始版本号,以及分布式数据仓库中的原始数据表的初始版本号,使得通过分布式数据仓库中的原始数据表的初始版本号,即可查询分布式数据仓库中的原始数据表,由于分布式数据仓库中的原始数据表中的数据与源系统升级前的源数据表中的数据一致,因此可以确定源系统升级前的源数据表中的数据;在源系统的升级过程中,只抓取对应的更新数据,相对于现有技术中抓取全量数据而言,使得抓取的数据量大大减少,因此,减小了对源系统的正常运行的影响,同时,将源系统的升级对应的更新数据记录到当前更新后的数据表中,避免了现有技术中由大量删除操作所导致的对分布式数据仓库的计算和储存的影响;在源系统每次升级过程中,将源系统的升级对应的更新数据记录到当前更新后的数据表中,并根据所述数据模型的初始版本号以及所述升级序号,动态设置所述数据模型的当前版本号,并根据所述数据模型的当前版本号,以及所述源系统的升级类型,动态设置所述当前更新后的数据表的当前版本号,而当前更新后的数据表的名称则沿用所述更新数据所属的源数据表的名称所映射到的所述分布式数据仓库中对应的原始数据表的名称,保持静态不变,因此,通过分布式数据仓库中的名称相同的数据表的不同版本号,即可查询确定在源系统每次升级过程中,分布式数据仓库中的对应数据表的动态更新过程和源系统的相应的升级类型,可以为不同数据分析口径提供支持;此外,对分布式数据仓库的数据模型的版本号进行动态更新,弱化了源系统频繁升级对分布式数据仓库的数据模型的影响。
附图说明
为了更清楚地说明本发明,下面将对本发明中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1a为本发明实施例一提供的一种分布式数据仓库中的数据更新方法的流程示意图;
图1b为本发明实施例一提供的一种层级数据模型的示意图;
图1c为本发明实施例一提供的分布式数据仓库中的数据更新实例中源系统升级前的分布式数据仓库中的数据模型以及对应的数据表的版本号的设置效果图;
图1d为本发明实施例一提供的分布式数据仓库中的数据更新实例中源系统第一次升级后的分布式数据仓库中的数据模型以及对应的数据表的版本号的设置效果图;
图1e为本发明实施例一提供的分布式数据仓库中的数据更新实例中源系统第二次升级后的分布式数据仓库中的数据模型以及对应的数据表的版本号的设置效果图;
图2为本发明实施例二提供的一种分布式数据仓库中的数据更新装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施例中的技术方案作进一步详细描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。可以理解的是,此处所描述的具体实施例仅用于解释本发明,而非对本发明的限定,基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
实施例一
请参阅图1a,为本发明实施例一提供的一种分布式数据仓库中的数据更新方法的流程示意图。本发明实施例的方法可以由配置以硬件和/或软件实现的分布式数据仓库中的数据更新装置来执行,该更新装置典型的是配置于分布式数据处理平台中,通常,分布式数据处理平台包括多个处理器,呈分布式设置,该实现配置具体可配置在所述分布式数据处理平台中的某个处理器中。
该方法包括:步骤110~步骤170。
步骤110、设置分布式数据处理平台中的分布式数据仓库的数据模型的初始版本号。
步骤120、根据所述数据模型的初始化版本号,设置所述分布式数据仓库中的原始数据表的初始版本号,其中,所述分布式数据仓库中的原始数据表中的数据与源系统升级前的源数据表中的数据一致。
步骤110和步骤120在源系统的源数据表升级之前执行。源系统运行在前端,分布式数据处理平台运行在后台,其中,对于不同的应用领域,前端的源系统要升级的源数据表不同。例如,在电子商务领域,当卖家对商品价格进行优惠调整,买家购买商品生成订单时,前端的源系统中的源数据表中的应收价格需要相应升级。
需要说明的是,在源系统和分布式数据处理平台开发完成,将源系统中的源数据表和分布式数据处理平台中的原始数据表进行数据表映射之后,源系统中的源数据表中的数据与分布式数据处理平台中的分布式数据表中的原始数据表中的数据一致。在这种情况下,执行步骤110和步骤120。
示例性地,将分布式数据仓库中的数据模型的初始版本号设置为:公司简称_数据模型名称_Vn,其中,n为自然数1;将所述分布式数据仓库中的原始数据表的初始版本号设置为:公司简称_Vn_m,其中,m为自然数0。对于电子商务平台京东而言,具体可以将分布式数据仓库中的数据模型的初始版本号设置为:JD_M_V1,将所述分布式数据仓库中的原始数据表的初始版本号设置为:JD_V1_0。
需要说明的是,分布式数据仓库中的多张原始数据表的初始版本号均相同,但是,多张原始数据表的名称各不相同。
通过分布式数据仓库中的原始数据表的初始版本号,即可查询分布式数据仓库中的原始数据表,由于所述分布式数据仓库中的原始数据表中的数据与源系统升级前的源数据表中的数据一致,因此可以确定源系统升级前的源数据表中的数据。
步骤130、在源系统的源数据表的升级过程中,从所述源系统中抓取对应的更新数据以及所述更新数据所属的源数据表的名称,确定所述源系统的升级类型和升级序号。
在源系统的源数据表的升级过程中,只抓取对应的更新数据,相对于现有技术中抓取全量数据(不仅包括更新数据,还包括未更新数据)而言,使得抓取的数据量大大减少,因此,减小了对源系统的正常运行的影响。
本步骤中,所述源系统的升级类型可包括下述至少一项:
源系统的业务升级、数据存储模式变更、数据库类型升级、数据表结构变更,以及数据表的数据含义变更。
其中,源系统业务升级可包括:数据表的名称和/或字段的含义发生变化;源系统的数据存储模式变更可包括:由单表存储变成分库分表存储;源系统的数据库类型升级可包括:如oracle库升级为mysql库;源系统的数据表结构变更可包括:添加字段数量和/或调整字段类型等;源系统的数据表的数据含义变更,例如,某字段数据记录的是应收数据,现变成为记录应收数据减优惠数据。
步骤140、将抓取的所述更新数据输入所述数据模型,得到当前更新后的数据表。
数据模型用于将源系统的升级对应的更新数据记录到新建的数据表(也即当前更新后的数据表)中。
步骤150、根据所述更新数据所属的源数据表的名称,确定所述分布式数据仓库中对应的原始数据表的名称,作为所述当前更新后的数据表的名称。
步骤160、根据所述数据模型的初始版本号以及所述升级序号,设置所述数据模型的当前版本号。
其中,升级序号代表升级次数,源系统每升级一次,数据模型的当前版本号相应更新一次。
示例性地,将分布式数据仓库中的数据模型的初始版本号设置为:公司简称_数据模型名称_Vn,其中,n为自然数1;则第一次升级后,数据模型的当前版本号更新为:公司简称_数据模型名称_V2;第二次升级后,数据模型的当前版本号更新为:公司简称_数据模型名称_V3,以此类推。
步骤170、根据所述数据模型的当前版本号,以及所述源系统的升级类型,设置所述当前更新后的数据表的当前版本号。
前已述及,所述源系统的升级类型可包括多种类型,在设置所述当前更新后的数据表的当前版本号时,可以用不同的标识代表不同的升级类型。
示例性地,假设源系统升级前的源数据表为两张,名称分别为“表X”和“表Y”,分布式数据仓库中相应的有两张原始数据表,名称分别为“表1”和“表2”,分布式数据仓库中的数据模型的初始版本号设置为JD_M_V1,其中,名称为“表X”的源数据表中的数据与名称为“表1”的原始数据表中的数据一致,名称为“表1”的原始数据表的初始版本号为JD_V1_0,名称为“表Y”的源数据表中的数据与名称为“表2”的原始数据表中的数据一致,名称为“表2”的原始数据表的初始版本号为JD_V1_0。
假设在源系统第一次升级过程中,名称为“表X”的源数据表中的数据发生变化,升级类型为“数据表结构变更”,用标识4表征,抓取相应的更新数据,将抓取的所述更新数据输入所述数据模型,得到当前更新后的数据表,根据所述更新数据所属的源数据表的名称“表X”,确定所述分布式数据仓库中对应的原始数据表的名称“表1”,作为所述当前更新后的数据表的名称,也即当前更新后的数据表的名称为“表1”;根据所述数据模型的初始版本号“JD_M_V1”以及所述升级序号1(表示第一次升级),设置所述数据模型的当前版本号“JD_M_V2”;根据所述数据模型的当前版本号“JD_M_V2”,以及所述源系统的升级类型,设置所述当前更新后的数据表的当前版本号“JD_V2_升级类型标识”,也即“JD_V2_4”。
本实施例的技术方案,在源系统升级前,通过设置对分布式数据仓库的数据模型的初始版本号,以及分布式数据仓库中的原始数据表的初始版本号,使得通过分布式数据仓库中的原始数据表的初始版本号,即可查询分布式数据仓库中的原始数据表,由于分布式数据仓库中的原始数据表中的数据与源系统升级前的源数据表中的数据一致,因此可以确定源系统升级前的源数据表中的数据;在源系统的升级过程中,只抓取对应的更新数据,相对于现有技术中抓取全量数据而言,使得抓取的数据量大大减少,因此,减小了对源系统的正常运行的影响,同时,将源系统的升级对应的更新数据记录到当前更新后的数据表中,避免了现有技术中由大量删除操作所导致的对分布式数据仓库的计算和储存的影响;在源系统每次升级过程中,将源系统的升级对应的更新数据记录到当前更新后的数据表中,并根据所述数据模型的初始版本号以及所述升级序号,动态设置所述数据模型的当前版本号,并根据所述数据模型的当前版本号,以及所述源系统的升级类型,动态设置所述当前更新后的数据表的当前版本号,而当前更新后的数据表的名称则沿用所述更新数据所属的源数据表的名称所映射到的所述分布式数据仓库中对应的原始数据表的名称,保持静态不变,因此,通过分布式数据仓库中的名称相同的数据表的不同版本号,即可查询确定在源系统每次升级过程中,分布式数据仓库中的对应数据表的动态更新过程和源系统的相应的升级类型,可以为不同数据分析口径提供支持;此外,对分布式数据仓库的数据模型的版本号进行动态更新,弱化了源系统频繁升级对分布式数据仓库的数据模型的影响。
本实施例对步骤150和步骤160的执行顺序不进行限制。
实例
在上述方案中,所述数据模型可以为层级数据模型;
设置所述数据模型的初始版本号,具体可以包括:
根据所述层级数据模型的层级名称,设置所述层级数据模型的初始化版本号;
相应的,根据所述数据模型的初始版本号以及所述升级序号,设置所述数据模型的当前版本号,具体可以包括:
根据所述层级数据模型的初始化版本号、所述升级序号以及所述层级名称,设置所述层级数据模型的当前版本号。
下面结合图1b所示的层级数据模型进行说明。
该层级数据模型依次包括:维度数据层(DIM)、缓冲数据层(Buffering DataModel,BDM)、基础数据层(Fundamental Data Model,FDM)、通用数据层(General DataModel,GDM)和聚合数据层(Aggregative Data Model,ADM)。
其中,维度数据层用于从所述源系统中抓取所述升级过程关联的维度数据,并装载到所述维度数据层中新建的数据表中;缓冲数据层用于从所述源系统中抓取对应的更新数据,并装载到所述缓冲数据层中新建的数据表中;基础数据层用于从所述缓冲数据层获取所述更新数据,并装载到所述基础数据层中新建的数据表中;通用数据层用于按照业务主题,对所述基础数据层中的所述更新数据进行业务加工处理,得到所述更新数据对应的业务主题数据,并装载到所述通用数据层中新建的数据表中;聚合数据层用于对所述基础数据层中的所述更新数据或者所述通用数据层中的所述业务主题数据,根据所述维度数据进行聚合,并将聚合数据装载到所述聚合数据层中新建的数据表中。
示例性地,请参阅图1c,假设源系统升级前的源数据表为两张,名称分别为“表X”和“表Y”,分布式数据仓库中的层级数据模型的数据缓冲层中相应的有两张原始数据表,名称分别为“表1”和“表2”,分布式数据仓库中的缓冲数据层的初始版本号设置为JD_BDM_V1,其中,名称为“表X”的源数据表中的数据与名称为“表1”的原始数据表中的数据一致,名称为“表1”的原始数据表的初始版本号为JD_V1_0,名称为“表Y”的源数据表中的数据与名称为“表2”的原始数据表中的数据一致,名称为“表2”的原始数据表的初始版本号为JD_V1_0;相应的,分布式数据仓库中的基础数据层的初始版本号设置为JD_FDM_V1,该层中,名称为“表1”的数据表的初始版本号为JD_V1_0,名称为“表2”的数据表的初始版本号为JD_V1_0;相应的,分布式数据仓库中的通用数据层的初始版本号设置为JD_GDM_V1,该层中,名称为“表1”的数据表的初始版本号为JD_V1_0,名称为“表2”的数据表的初始版本号为JD_V1_0;相应的,分布式数据仓库中的聚合数据层的初始版本号设置为JD_ADM_V1,该层中,名称为“表1”的数据表的初始版本号为JD_V1_0,名称为“表2”的数据表的初始版本号为JD_V1_0;相应的,分布式数据仓库中的维度数据层的初始版本号设置为JD_DIM_V1,该层中,名称为“表1”的数据表的初始版本号为JD_V1_0,名称为“表2”的数据表的初始版本号为JD_V1_0。
请参阅图1d,假设在源系统第一次升级过程中,名称为“表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。
请参阅图1e,假设在源系统第二次升级过程中,名称为“表X”的源数据表中的数据发生变化,升级类型为“数据表的数据含义变更”,用标识5表征,缓冲数据层的版本号为JD_BDM_V3,将抓取的所述更新数据输入所述层级数据模型,则经过缓冲数据层后,得到更新的数据表,名称仍沿用“表1”,版本号为JD_V3_5;基础数据层的版本号为JD_FDM_V3,经过基础数据层后,得到更新的数据表,名称仍沿用“表1”,版本号为JD_V3_5;通用数据层的版本号为JD_GDM_V3,经过通用数据层后,得到更新的数据表,名称仍沿用“表1”,版本号为JD_V3_5;聚合数据层的版本号为JD_ADM_V3,经过聚合数据层后,得到更新的数据表,名称仍沿用“表1”,版本号为JD_V3_5;维度数据层的版本号为JD_DIM_V3,经过维度数据层后,得到更新的数据表,名称仍沿用“表1”,版本号为JD_V3_5。
在源系统的每一次升级过程中,动态设置缓冲数据层的版本号,与缓冲数据层有血缘关系的基础数据层、通用数据层、聚合数据层以及维度数据层都会进行版本号动态更新,同时,更新各层级的数据,只记录当前升级过程对应的更新数据;并根据各层级数据模型的当前版本号,以及所述源系统的升级类型,动态设置各层级中当前更新后的数据表的当前版本号,最终,在源系统每次升级后,形成一棵完成的版本进化树。而当前更新后的数据表的名称则沿用所述更新数据所属的源数据表的名称所映射到的所述分布式数据仓库中对应的原始数据表的名称,保持静态不变,因此,通过分布式数据仓库中的名称相同的数据表的不同版本号,即可查询确定在源系统每次升级过程中,分布式数据仓库中的对应数据表的动态更新过程和源系统的相应的升级类型,可以为不同数据分析口径提供支持;此外,对分布式数据仓库的数据模型的版本号进行动态更新,弱化了源系统频繁升级对分布式数据仓库的数据模型的影响。
在上述实例中,所述层级数据模型还可包括:
临时数据层,用于存储所述通用数据层执行业务加工处理操作的中间数据,和/或所述聚合数据层执行聚合操作的中间数据。
实施例二
请参阅图2,为本发明实施例二提供的一种分布式数据仓库中的数据更新装置的结构示意图。该装置包括:数据模型版本初始化模块210、数据表版本初始化模块220、更新要素获取模块230、数据表更新模块240、数据表名称配置模块250、数据模型版本配置模块260和数据表版本配置模块270。
其中,数据模型版本初始化模块210用于设置分布式数据处理平台中的分布式数据仓库的数据模型的初始版本号;数据表版本初始化模块220用于根据所述数据模型的初始化版本号,设置所述分布式数据仓库中的原始数据表的初始版本号,其中,所述分布式数据仓库中的原始数据表中的数据与源系统升级前的源数据表中的数据一致;更新要素获取模块230用于在源系统的源数据表的升级过程中,从所述源系统中抓取对应的更新数据以及所述更新数据所属的源数据表的名称,确定所述源系统的升级类型和升级序号;数据表更新模块240用于将抓取的所述更新数据输入所述数据模型,得到当前更新后的数据表;数据表名称配置模块250用于根据所述更新数据所属的源数据表的名称,确定所述分布式数据仓库中对应的原始数据表的名称,作为所述当前更新后的数据表的名称;数据模型版本配置模块260用于根据所述数据模型的初始版本号以及所述升级序号,设置所述数据模型的当前版本号;数据表版本配置模块270用于根据所述数据模型的当前版本号,以及所述源系统的升级类型,设置所述当前更新后的数据表的当前版本号。
在上述方案中,所述数据模型可以为层级数据模型;
所述数据模型版本初始化模块210具体可用于:根据所述层级数据模型的层级名称,设置所述层级数据模型的初始化版本号;
所述数据模型版本配置模块260具体可用于:根据所述层级数据模型的初始化版本号、所述升级序号以及所述层级名称,设置所述层级数据模型的当前版本号。
在上述方案中,在所述数据模型为层级数据模型时,可依次包括:维度数据层、缓冲数据层、基础数据层、通用数据层和聚合数据层。
其中,维度数据层用于从所述源系统中抓取所述升级过程关联的维度数据,并装载到所述维度数据层中新建的数据表中;缓冲数据层用于从所述源系统中抓取对应的更新数据,并装载到所述缓冲数据层中新建的数据表中;基础数据层用于从所述缓冲数据层获取所述更新数据,并装载到所述基础数据层中新建的数据表中;通用数据层用于按照业务主题,对所述基础数据层中的所述更新数据进行业务加工处理,得到所述更新数据对应的业务主题数据,并装载到所述通用数据层中新建的数据表中;聚合数据层用于对所述基础数据层中的所述更新数据或者所述通用数据层中的所述业务主题数据,根据所述维度数据进行聚合,并将聚合数据装载到所述聚合数据层中新建的数据表中。
进一步的,所述层级数据模型还可包括:
临时数据层,用于存储所述通用数据层执行业务加工处理操作的中间数据,和/或所述聚合数据层执行聚合操作的中间数据。
在上述方案中,所述源系统的升级类型可包括下述至少一项:
源系统的业务升级、数据存储模式变更、数据库类型升级、数据表结构变更,以及数据表的数据含义变更。
本发明实施例提供的分布式数据仓库的数据更新装置可执行本发明任意实施例所提供的分布式数据仓库的数据更新方法,具备执行方法相应的功能模块和有益效果。
最后应说明的是:以上各实施例仅用于说明本发明的技术方案,而非对其进行限制;实施例中优选的实施方式,并非对其进行限制,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种分布式数据仓库中的数据更新方法,其特征在于,包括:
设置分布式数据处理平台中的分布式数据仓库的数据模型的初始版本号;
根据所述数据模型的初始版本号,设置所述分布式数据仓库中的原始数据表的初始版本号,其中,所述分布式数据仓库中的原始数据表中的数据与源系统升级前的源数据表中的数据一致;
在源系统的源数据表的升级过程中,从所述源系统中抓取对应的更新数据以及所述更新数据所属的源数据表的名称,确定所述源系统的升级类型和升级序号;
将抓取的所述更新数据输入所述数据模型,得到当前更新后的数据表;
根据所述更新数据所属的源数据表的名称,确定所述分布式数据仓库中对应的原始数据表的名称,作为所述当前更新后的数据表的名称;
根据所述数据模型的初始版本号以及所述升级序号,设置所述数据模型的当前版本号;
根据所述数据模型的当前版本号,以及所述源系统的升级类型,设置所述当前更新后的数据表的当前版本号。
2.根据权利要求1所述的方法,其特征在于,所述数据模型为层级数据模型;
设置所述数据模型的初始版本号,包括:
根据所述层级数据模型的层级名称,设置所述层级数据模型的初始版本号;
根据所述数据模型的初始版本号以及所述升级序号,设置所述数据模型的当前版本号,包括:
根据所述层级数据模型的初始版本号、所述升级序号以及所述层级名称,设置所述层级数据模型的当前版本号。
3.根据权利要求1所述的方法,其特征在于,所述数据模型为层级数据模型,依次包括:
维度数据层,用于从所述源系统中抓取所述升级过程关联的维度数据,并装载到所述维度数据层中新建的数据表中;
缓冲数据层,用于从所述源系统中抓取对应的更新数据,并装载到所述缓冲数据层中新建的数据表中;
基础数据层,用于从所述缓冲数据层获取所述更新数据,并装载到所述基础数据层中新建的数据表中;
通用数据层,用于按照业务主题,对所述基础数据层中的所述更新数据进行业务加工处理,得到所述更新数据对应的业务主题数据,并装载到所述通用数据层中新建的数据表中;
聚合数据层,用于对所述基础数据层中的所述更新数据或者所述通用数据层中的所述业务主题数据,根据所述维度数据进行聚合,并将聚合数据装载到所述聚合数据层中新建的数据表中。
4.根据权利要求3所述的方法,其特征在于,所述层级数据模型还包括:
临时数据层,用于存储所述通用数据层执行业务加工处理操作的中间数据,和/或所述聚合数据层执行聚合操作的中间数据。
5.根据权利要求1-4任一所述的方法,其特征在于,所述源系统的升级类型,包括下述至少一项:
源系统的业务升级、数据存储模式变更、数据库类型升级、数据表结构变更,以及数据表的数据含义变更。
6.一种分布式数据仓库中的数据更新装置,其特征在于,包括:
数据模型版本初始化模块,用于设置分布式数据处理平台中的分布式数据仓库的数据模型的初始版本号;
数据表版本初始化模块,用于根据所述数据模型的初始版本号,设置所述分布式数据仓库中的原始数据表的初始版本号,其中,所述分布式数据仓库中的原始数据表中的数据与源系统升级前的源数据表中的数据一致;
更新要素获取模块,用于在源系统的源数据表的升级过程中,从所述源系统中抓取对应的更新数据以及所述更新数据所属的源数据表的名称,确定所述源系统的升级类型和升级序号;
数据表更新模块,用于将抓取的所述更新数据输入所述数据模型,得到当前更新后的数据表;
数据表名称配置模块,用于根据所述更新数据所属的源数据表的名称,确定所述分布式数据仓库中对应的原始数据表的名称,作为所述当前更新后的数据表的名称;
数据模型版本配置模块,用于根据所述数据模型的初始版本号以及所述升级序号,设置所述数据模型的当前版本号;
数据表版本配置模块,用于根据所述数据模型的当前版本号,以及所述源系统的升级类型,设置所述当前更新后的数据表的当前版本号。
7.根据权利要求6所述的装置,其特征在于,所述数据模型为层级数据模型;
所述数据模型版本初始化模块具体用于:根据所述层级数据模型的层级名称,设置所述层级数据模型的初始版本号;
所述数据模型版本配置模块具体用于:根据所述层级数据模型的初始版本号、所述升级序号以及所述层级名称,设置所述层级数据模型的当前版本号。
8.根据权利要求6所述的装置,其特征在于,所述数据模型为层级数据模型,依次包括:
维度数据层,用于从所述源系统中抓取所述升级过程关联的维度数据,并装载到所述维度数据层中新建的数据表中;
缓冲数据层,用于从所述源系统中抓取对应的更新数据,并装载到所述缓冲数据层中新建的数据表中;
基础数据层,用于从所述缓冲数据层获取所述更新数据,并装载到所述基础数据层中新建的数据表中;
通用数据层,用于按照业务主题,对所述基础数据层中的所述更新数据进行业务加工处理,得到所述更新数据对应的业务主题数据,并装载到所述通用数据层中新建的数据表中;
聚合数据层,用于对所述基础数据层中的所述更新数据或者所述通用数据层中的所述业务主题数据,根据所述维度数据进行聚合,并将聚合数据装载到所述聚合数据层中新建的数据表中。
9.根据权利要求8所述的装置,其特征在于,所述层级数据模型还包括:
临时数据层,用于存储所述通用数据层执行业务加工处理操作的中间数据,和/或所述聚合数据层执行聚合操作的中间数据。
10.根据权利要求6-9任一所述的装置,其特征在于,所述源系统的升级类型,包括下述至少一项:
源系统的业务升级、数据存储模式变更、数据库类型升级、数据表结构变更,以及数据表的数据含义变更。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510254402.9A CN104899257B (zh) | 2015-05-18 | 2015-05-18 | 分布式数据仓库中的数据更新方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510254402.9A CN104899257B (zh) | 2015-05-18 | 2015-05-18 | 分布式数据仓库中的数据更新方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104899257A CN104899257A (zh) | 2015-09-09 |
CN104899257B true CN104899257B (zh) | 2018-04-13 |
Family
ID=54031920
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510254402.9A Active CN104899257B (zh) | 2015-05-18 | 2015-05-18 | 分布式数据仓库中的数据更新方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104899257B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105512283B (zh) * | 2015-12-04 | 2019-05-03 | 国网江西省电力公司信息通信分公司 | 数据质量管理控制方法及装置 |
CN105447172A (zh) * | 2015-12-07 | 2016-03-30 | 北京先进数通信息技术股份公司 | 一种Hadoop平台下的数据处理方法和系统 |
CN105718565B (zh) * | 2016-01-20 | 2019-07-02 | 北京京东尚科信息技术有限公司 | 数据仓库模型的构建方法和构建装置 |
CN107291710B (zh) * | 2016-03-30 | 2020-07-03 | 杭州海康威视数字技术股份有限公司 | 一种用于分布式数据库系统的更新数据的方法及装置 |
CN107590158B (zh) * | 2016-07-08 | 2020-12-22 | 北京京东尚科信息技术有限公司 | 一种获取数据源变更信息的方法和装置 |
CN106649771B (zh) * | 2016-12-27 | 2019-10-25 | 广州杰赛科技股份有限公司 | 数据库的数据模型更新方法和系统 |
CN109582330B (zh) * | 2018-09-29 | 2021-08-03 | 创新先进技术有限公司 | 数据模型升级方法、装置、设备及可读存储介质 |
CN112256802A (zh) * | 2020-10-20 | 2021-01-22 | 威海上和软件科技有限公司 | 一种海洋微生物信息的自动采集方法和设备 |
CN112231410B (zh) * | 2020-10-23 | 2024-07-16 | 中国平安人寿保险股份有限公司 | 适用于大数据的数据处理方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101359999A (zh) * | 2007-07-30 | 2009-02-04 | 中兴通讯股份有限公司 | 一种网元数据同步的方法及装置 |
CN101483568A (zh) * | 2009-02-04 | 2009-07-15 | 深圳华为通信技术有限公司 | UPnP设备的升级方法、控制设备及系统 |
CN102855305A (zh) * | 2012-08-20 | 2013-01-02 | 大唐移动通信设备有限公司 | 数据升级方法与装置 |
CN104410672A (zh) * | 2014-11-12 | 2015-03-11 | 华为技术有限公司 | 网络功能虚拟化应用升级的方法、转发业务的方法及装置 |
CN104426601A (zh) * | 2013-09-10 | 2015-03-18 | 上海贝尔股份有限公司 | 光网络终端中自动检测并报告软件回退方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8495085B2 (en) * | 2010-09-27 | 2013-07-23 | International Business Machines Corporation | Supporting efficient partial update of hierarchically structured documents based on record storage |
US8918429B2 (en) * | 2011-11-30 | 2014-12-23 | Autodesk, Inc. | Database versioning system |
US9280568B2 (en) * | 2012-11-20 | 2016-03-08 | Sap Se | Zero downtime schema evolution |
-
2015
- 2015-05-18 CN CN201510254402.9A patent/CN104899257B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101359999A (zh) * | 2007-07-30 | 2009-02-04 | 中兴通讯股份有限公司 | 一种网元数据同步的方法及装置 |
CN101483568A (zh) * | 2009-02-04 | 2009-07-15 | 深圳华为通信技术有限公司 | UPnP设备的升级方法、控制设备及系统 |
CN102855305A (zh) * | 2012-08-20 | 2013-01-02 | 大唐移动通信设备有限公司 | 数据升级方法与装置 |
CN104426601A (zh) * | 2013-09-10 | 2015-03-18 | 上海贝尔股份有限公司 | 光网络终端中自动检测并报告软件回退方法和装置 |
CN104410672A (zh) * | 2014-11-12 | 2015-03-11 | 华为技术有限公司 | 网络功能虚拟化应用升级的方法、转发业务的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104899257A (zh) | 2015-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104899257B (zh) | 分布式数据仓库中的数据更新方法和装置 | |
CN106649771B (zh) | 数据库的数据模型更新方法和系统 | |
CN106528071B (zh) | 目标代码的选取方法及装置 | |
KR101283019B1 (ko) | SaaS 어플리케이션 생성 방법 및 이를 실행하는 어플리케이션 생성 서버 | |
CN105488050B (zh) | 一种数据库多索引方法、装置及系统 | |
US20160299952A1 (en) | Incremental and collocated redistribution for expansion of online shared nothing database | |
CN105487864A (zh) | 代码自动生成的方法和装置 | |
CN101464895A (zh) | 一种更新内存数据的方法、系统和装置 | |
CN111488340B (zh) | 数据处理方法、装置及电子设备 | |
CN109634682A (zh) | 应用程序的配置文件更新方法及装置 | |
CN103946794A (zh) | 数据特征的滚动升级的系统和方法 | |
CN104317964A (zh) | 一种基于iBatis的对象关系映射方法及系统 | |
CN110019111A (zh) | 数据处理方法、装置、存储介质以及处理器 | |
CN103440285A (zh) | 大型手机游戏系统及其数据库更新方法 | |
CN104317957A (zh) | 一种报表处理的开放平台、系统及报表处理方法 | |
US8843438B2 (en) | Parameter value binding for mobile business objects | |
EP1801712B1 (en) | Generic search tool for different object types | |
CN109614411A (zh) | 数据存储方法、设备和存储介质 | |
US9767180B2 (en) | Floating time dimension design | |
CN102722543B (zh) | 一种用于文件储存的方法 | |
CN106547763A (zh) | 数据库的创建方法及装置 | |
CN108228848A (zh) | 一种可扩展的业务数据分库实现方法 | |
EP3405867A1 (en) | Database and service upgrade without downtime | |
CN107038179B (zh) | 信息项存储方法和系统 | |
CN101996080B (zh) | 一种软件升级的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |