分布式數據倉庫中的數據更新方法和裝置的制造方法
【技術領域】
[0001]本發(fā)明實施例涉及數據倉庫技術領域,尤其涉及一種分布式數據倉庫中的數據更新方法和裝置。
【背景技術】
[0002]以電子商務為例,隨著電子商務的發(fā)展,京東、淘寶、亞馬遜等電子商務公司日常運營中生成以及累積的大量用戶、商品和生產相關的數據,呈現爆發(fā)式增長,數據結構也開始多元化,數據含有的信息量越來越多,這些公司對數據化運營也越來越關注。數據庫用于對數據進行分處理工作,發(fā)揮著巨大的作用。大數據時代的降臨,數據庫轉成為分布式架構,以滿足爆發(fā)式增長的計算及存儲的需求。分布式數據倉庫一般使用列式存儲,并以文件的形式保存數據,因此,采用分布式數據倉庫可提高了大數據的存儲及計算性能。隨著前端的源系統(tǒng)的頻繁升級,后臺運行的分布式數據處理平臺中分布式數據倉庫中的數據也需要及時更新,因此,分布式數據倉庫中的數據更新的技術應運而生。
[0003]現有的分布式數據倉庫中的數據更新技術,一般是,通過分布式數據處理平臺抓取源系統(tǒng)升級對應的全量數據;刪除分布式數據倉庫中的與所述全量數據對應的原始數據表;根據所述全量數據調整分布式數據倉庫的已有的數據模型,并利用調整后的數據模型對全量數據進行轉換,最后將轉換后的數據裝載到在分布式數據倉庫中新建的數據表中。
[0004]上述分布式數據倉庫中的數據更新技術存在以下缺陷:第一、抓取的數據量巨大,對源系統(tǒng)的正常運行帶來較大的影響;第二、無法保留源系統(tǒng)的升級前的數據,且通過分布式數據倉庫中更新后的數據無法確定源系統(tǒng)升級所導致的數據的具體變更;第三、隨著源系統(tǒng)的不斷升級,分布式數據倉庫的數據的頻繁更新會消耗大量的計算和存儲資源。
【發(fā)明內容】
[0005]本發(fā)明實施例提供一種分布式數據倉庫中的數據更新方法和裝置,以優(yōu)化分布式數據倉庫中的數據的更新方式。
[0006]第一方面,本發(fā)明實施例提供了一種分布式數據倉庫中的數據更新方法,包括:
[0007]設置分布式數據處理平臺中的分布式數據倉庫的數據模型的初始版本號;
[0008]根據所述數據模型的初始化版本號,設置所述分布式數據倉庫中的原始數據表的初始版本號,其中,所述分布式數據倉庫中的原始數據表中的數據與源系統(tǒng)升級前的源數據表中的數據一致;
[0009]在源系統(tǒng)的源數據表的升級過程中,從所述源系統(tǒng)中抓取對應的更新數據以及所述更新數據所屬的源數據表的名稱,確定所述源系統(tǒng)的升級類型和升級序號;
[0010]將抓取的所述更新數據輸入所述數據模型,得到當前更新后的數據表;
[0011]根據所述更新數據所屬的源數據表的名稱,確定所述分布式數據倉庫中對應的原始數據表的名稱,作為所述當前更新后的數據表的名稱;
[0012]根據所述數據模型的初始版本號以及所述升級序號,設置所述數據模型的當前版本號;
[0013]根據所述數據模型的當前版本號,以及所述源系統(tǒng)的升級類型,設置所述當前更新后的數據表的當前版本號。
[0014]第二方面,本發(fā)明實施例提供了一種分布式數據倉庫中的數據更新裝置,包括:
[0015]數據模型版本初始化模塊,用于設置分布式數據處理平臺中的分布式數據倉庫的數據模型的初始版本號;
[0016]數據表版本初始化模塊,用于根據所述數據模型的初始化版本號,設置所述分布式數據倉庫中的原始數據表的初始版本號,其中,所述分布式數據倉庫中的原始數據表中的數據與源系統(tǒng)升級前的源數據表中的數據一致;
[0017]更新要素獲取模塊,用于在源系統(tǒng)的源數據表的升級過程中,從所述源系統(tǒng)中抓取對應的更新數據以及所述更新數據所屬的源數據表的名稱,確定所述源系統(tǒng)的升級類型和升級序號;
[0018]數據表更新模塊,用于將抓取的所述更新數據輸入所述數據模型,得到當前更新后的數據表;
[0019]數據表名稱配置模塊,用于根據所述更新數據所屬的源數據表的名稱,確定所述分布式數據倉庫中對應的原始數據表的名稱,作為所述當前更新后的數據表的名稱;
[0020]數據模型版本配置模塊,用于根據所述數據模型的初始版本號以及所述升級序號,設置所述數據模型的當前版本號;
[0021]數據表版本配置模塊,用于根據所述數據模型的當前版本號,以及所述源系統(tǒng)的升級類型,設置所述當前更新后的數據表的當前版本號。
[0022]本發(fā)明實施例提供的分布式數據倉庫中的數據更新方法和裝置,在源系統(tǒng)升級前,通過設置對分布式數據倉庫的數據模型的初始版本號,以及分布式數據倉庫中的原始數據表的初始版本號,使得通過分布式數據倉庫中的原始數據表的初始版本號,即可查詢分布式數據倉庫中的原始數據表,由于分布式數據倉庫中的原始數據表中的數據與源系統(tǒng)升級前的源數據表中的數據一致,因此可以確定源系統(tǒng)升級前的源數據表中的數據;在源系統(tǒng)的升級過程中,只抓取對應的更新數據,相對于現有技術中抓取全量數據而言,使得抓取的數據量大大減少,因此,減小了對源系統(tǒng)的正常運行的影響,同時,將源系統(tǒng)的升級對應的更新數據記錄到當前更新后的數據表中,避免了現有技術中由大量刪除操作所導致的對分布式數據倉庫的計算和儲存的影響;在源系統(tǒng)每次升級過程中,將源系統(tǒng)的升級對應的更新數據記錄到當前更新后的數據表中,并根據所述數據模型的初始版本號以及所述升級序號,動態(tài)設置所述數據模型的當前版本號,并根據所述數據模型的當前版本號,以及所述源系統(tǒng)的升級類型,動態(tài)設置所述當前更新后的數據表的當前版本號,而當前更新后的數據表的名稱則沿用所述更新數據所屬的源數據表的名稱所映射到的所述分布式數據倉庫中對應的原始數據表的名稱,保持靜態(tài)不變,因此,通過分布式數據倉庫中的名稱相同的數據表的不同版本號,即可查詢確定在源系統(tǒng)每次升級過程中,分布式數據倉庫中的對應數據表的動態(tài)更新過程和源系統(tǒng)的相應的升級類型,可以為不同數據分析口徑提供支持;此外,對分布式數據倉庫的數據模型的版本號進行動態(tài)更新,弱化了源系統(tǒng)頻繁升級對分布式數據倉庫的數據模型的影響。
【附圖說明】
[0023]為了更清楚地說明本發(fā)明,下面將對本發(fā)明中所需要使用的附圖做一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
[0024]圖1a為本發(fā)明實施例一提供的一種分布式數據倉庫中的數據更新方法的流程示意圖;
[0025]圖1b為本發(fā)明實施例一提供的一種層級數據模型的示意圖;
[0026]圖1c為本發(fā)明實施例一提供的分布式數據倉庫中的數據更新實例中源系統(tǒng)升級前的分布式數據倉庫中的數據模型以及對應的數據表的版本號的設置效果圖;
[0027]圖1d為本發(fā)明實施例一提供的分布式數據倉庫中的數據更新實例中源系統(tǒng)第一次升級后的分布式數據倉庫中的數據模型以及對應的數據表的版本號的設置效果圖;
[0028]圖1e為本發(fā)明實施例一提供的分布式數據倉庫中的數據更新實例中源系統(tǒng)第二次升級后的分布式數據倉庫中的數據模型以及對應的數據表的版本號的設置效果圖;
[0029]圖2為本發(fā)明實施例二提供的一種分布式數據倉庫中的數據更新裝置的結構示意圖。
【具體實施方式】
[0030]為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明實施例中的技術方案作進一步詳細描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例??梢岳斫獾氖牵颂幩枋龅木唧w實施例僅用于解釋本發(fā)明,而非對本發(fā)明的限定,基于本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關的部分而非全部內容。
[0031]實施例一
[0032]請參閱圖la,為本發(fā)明實施例一提供的一種分布式數據倉庫中的數據更新方法的流程示意圖。本發(fā)明實施例的方法可以由配置以硬件和/或軟件實現的分布式數據倉庫中的數據更新裝置來執(zhí)行,該更新裝置典型的是配置于分布式數據處理平臺中,通常,分布式數據處理平臺包