專利名稱::一種數據遷移方法、數據遷移裝置及數據遷移系統的制作方法
技術領域:
:本發明涉及數據處理
技術領域:
,特別涉及一種數據遷移方法、數據遷移裝置及數據遷移系統。
背景技術:
:隨著數據庫應用范圍的擴大,關系數據庫的功能得到擴展,但是復雜度和使用成本也隨之大幅提高。很多應用并不需要關系數據庫的復雜功能,同時受關系數據庫的數據模型限制而無法針對性地優化。特別是隨著web2.0業務的發展和網絡內容的暴增,對數據庫系統產生了新的需求,這些需求要求數據庫具有海量存儲與并發、彈性擴展、高可靠、高可用、低成本、彈性表結構等特征,但是,傳統的關系數據庫無法實現這些特征。基于此,業界提出了各種nosql非關系數據庫,這類數據庫具有自組織、自管理、低成本、彈性可擴展、海量存儲、高并發訪問、查詢關系簡單等特性。出于成本、可擴展性、效率、自主功能定制等方面的考慮,當前很多業務都希望盡可能將關系數據庫中的數據切換到非關系數據庫。但是,由于數據模型的差異,關系數據庫中的數據無法直接遷移到非關系數據庫。在對現有技術的研究和實踐過程中,本發明的發明人發現,目前業界需要一種實現關系數據庫與非關系數據庫之間的數據模型的映射。
發明內容有鑒于此,本發明實施例提供一種數據遷移方法、裝置及數據遷移系統,可以把關系數據庫中的數據平滑遷移到非關系數據庫中。本發明實施例提供一種數據遷移的方法,所述方法包括從關系數據庫中獲取關系數據庫表SCHEMA信息;將所述SCHEMA信息映射成非關系數據庫XML模型,并在映射關系表中記錄對應的映射關系;按照所述映射關系表中記錄的映射關系,將關系數據庫的數據導入非關系數據庫中。本發明實施例還提供一種數據遷移裝置,所述裝置包括第一獲取單元,用于從關系數據庫中獲取關系數據庫庫表SCHEMA信息;映射單元,用于將所述SCHEMA信息映射成非關系數據庫XML模型,并在映射關系表中記錄對應的映射關系;數據遷移單元,用于按照所述映射關系表中記錄的映射關系,將關系數據庫的數據導入帶非關系數據庫中。本發明實施例再提供一種數據遷移系統,至少包括一個關系數據庫和一個非關系數據庫,還包括數據遷移裝置,用于從關系數據庫中獲取關系數據庫庫表SCHEMA信息;將所述SCHEMA信息映射成非關系數據庫XML模型,并在映射關系表中記錄對應的映射關系;按照所述映射關系表中記錄的映射關系,將關系數據庫的數據導入帶非關系數據庫中。由上述可知,本發明實施例提出了一種關系數據庫與非關系數據庫間數據遷移的方法、數據遷移裝置及數據遷移系統,可以用于把傳統關系數據庫的數據遷移到非關系數據庫等中,實現了數據業務的平滑遷移。本發明實施例中的數據遷移是自動的、不但保證了遷移的可靠性,還提高了數據遷移的效率,從而實現了業務的平滑切換。圖1為本發明實施例1提供的一種數據遷移的方法的流程圖;圖2為本發明實施例2提供的一種數據遷移的方法的流程圖;圖3為本發明實施例提供的一種各種模式下SCHEMA映射的流程圖;圖4為本發明實施例提供的一種數據導入流程的流程圖;圖5為本發明實施例提供的一種數據遷移裝置的結構示意圖;圖6為本發明實施例提供餓一種數據遷移系統的結構示意圖;圖7為本發明實施例提供餓一種數據遷移系統的應用實例結構圖。具體實施例方式為了使本
技術領域:
的人員更好地理解本發明實施例的方案,下面結合附圖和實施方式對本發明實施例作進一步的詳細說明。為了使本
技術領域:
的人員更好地理解本發明實施例的方案,下面結合附圖和實施方式對本發明實施例作進一步的詳細說明。請參閱圖1,為本發明實施例1提供一種數據遷移方法的流程圖,所述方法包括步驟101從關系數據庫中獲取關系數據庫表SCHEMA信息;—種獲取的過程是,SCHEMA映射引擎先向所述關系數據庫中發送獲取SCHEMA信息的請求;接收所述關系數據庫反饋的所述SCHEMA信息。步驟102將所述SCHEMA信息映射成非關系數據庫XML模型,并在映射關系表中記錄對應的映射關系;也就是說,SCHEMA映射引擎將所述SCHEMA信息映射成關系數據庫XML模型;按照SCHEMA的定義,將所述關系數據庫XML模型映射為非關系數據庫XML模型,并在映射關系表中記錄對應的映射關系。其中,將所述關系數據庫XML模型映射為非關系數據庫XML模型包括將所述關系數據庫XML模型配置為規范化處理模式或者非規范化處理模式,其中,當配置為規范化處理模式時,將關系數據庫中的每個表都映射為非關系數據庫中一個columnfamily,并在映射關系表中記錄對應的映射關系;當配置為非規范化處理模式時,將多個關系數據庫中的表映射為非關系數據庫中一個columnfamily。步驟103按照所述映射關系表,將關系數據庫的數據導入帶非關系數據庫XML模型中。優選的,在上述實施例的步驟101之前,所述方法還可以包括在所述非關系數據庫中增加非關系數據對象表SCHEMA的定義;具體包括增加對columnfamily的主鍵的SCHEMA約束定義;增加對columnfamily的具體列的SCHEMA約束定義;將一個或多個聯合主鍵的關系數據庫表中映射為非關系數據庫中的supercolumnfamily。優選的,在上述實施例的步驟101之前,所述方法還可以包括建立關系數據庫中的關系表與非關系數據庫的非關系表的映射關系表,并在映射關系表中記錄上述SCHEMA定義的映射關系。其中,步驟103中,按照所述映射關系表中記錄的映射關系,將關系數據庫的數據導入帶非關系數據庫中具體包括根據所述非關系數據庫XML模型生成數據定義命令;向非關系數據庫發送所述數據定義命令,創建非關系數據庫中的SCHEMA;從所述關系數據庫中獲取數據集具體包括掃描非關系數據庫XML模型和映射關系表,生成SQL查詢語句,利用所述SQL查詢語句從所述關系數據庫中獲取數據集;根據所述映射關系表中記錄的對應映射關系將所述數據集導入所述非關系數據庫的SCHEMA中。優選的,在步驟103之后,所述方法還可以包括在所述關系數據庫XML模型配置為規范化處理模式或者非規范化處理模式時,對映射關系表中記錄中的映射關系進行優化配置。本發明實施例提出了一種關系數據庫與非關系數據庫間數據遷移的方法,可以用于把傳統關系數據庫的數據遷移到非關系數據庫(比如新興的類Bigtable數據模型)等中,實現了數據業務的平滑遷移。本發明實施例中的數據遷移是自動的、不但保證了遷移的可靠性,還提高了數據遷移的效率,從而實現了業務的平滑切換。還請參閱圖2,為本發明實施例2提供一種數據遷移方法的流程圖,所述方法包括步驟201在非關系數據庫中增加SCHEMA定義;在該實施例中,非關系數據庫以類Bigtable數據為例,但并不限于此,也就是說,SCHEMA映射引擎先在類Bigtable數據模型的非關系數據庫中增加SCHEMA定義,其具體的過程為由于目前的類Bigtable數據模型的非關系數據庫只能定義Keyspace(鍵值空間)和columnfamily(列族),從概念上這兩個定義可以對應關系數據庫中的db(數據庫)和表Table。為了實現數據庫中的關系表到非關系數據庫中的非關系表的映射,需要在非關系數據庫中增加非關系數據庫表的SCHEMA約束定義,具體的定義過程為首先,增加對columnfamily的主鍵(rowkey)的SCHEMA約束定義,對應關系數據庫的主鍵定義;然后,增加columnfamily下具體列的SHCEMA約束定義,即定義一個columnfamily下具體有哪些列及其列名、類型、長度、是否可以為空、默認值等,對應關系數據庫的列SCHEMA定義;最后,為了將一個或多個聯合主鍵的關系數據庫表中映射為非關系數據庫中的一個超級列族(supercolumnfamily),需要增加關系數據庫表轉換為supercolumnfamily的約束定義,需要定義supercolumn的約束。在關系數據庫表的SCHMEMA定義中,當只有一個聯合主鍵時,聯合主鍵的值映射為supercolumn的名;當有兩個以上聯合主鍵定義時,把聯合主鍵的值進行級聯拼接后映射為supercolumn的名,級聯的順序可以指定,級聯字段越靠前,查詢時對其搜索的速度越快。步驟201建立關系數據庫中的關系表與非關系數據庫的非關系表的映射關系表,并在映射關系表中記錄上述SCHEMA定義的映射關系;其中,SCHEMA映射引擎建立的所述關系表與非關系表的映射關系如表1至表3所示表1用戶基本信息表ispace_user_info權利要求1.一種數據遷移的方法,其特征在于,包括從關系數據庫中獲取關系數據庫表SCHEMA信息;將所述SCHEMA信息映射成非關系數據庫XML模型,并在映射關系表中記錄對應的映射關系;按照所述映射關系表中記錄的映射關系,將關系數據庫的數據導入非關系數據庫中。2.根據權利要求1所述的方法,其特征在于,還包括在所述非關系數據庫中增加非關系數據庫表SCHEMA的定義。3.根據權利要求2所述的方法,其特征在于,所述在所述非關系數據庫中增加非關系數據庫表SCHEMA的定義包括增加對列族columnfamily的主鍵的SCHEMA約束定義;增加對所述columnfamily的具體列字段的SCHEMA約束定義;將帶一個或多個聯合主鍵的關系數據庫表中映射為非關系數據庫中的超級列族supercolumnfamily。4.根據權利要求3所述的方法,其特征在于,還包括建立關系數據庫中的關系表與非關系數據庫的非關系表的映射關系表,并在映射關系表中記錄所述SCHEMA定義的映射關系。5.根據權利要求1所述的方法,其特征在于,所述從關系數據庫中獲取關系數據庫表SCHEMA信息包括向所述關系數據庫中發送獲取SCHEMA信息的請求;接收所述關系數據庫反饋的所述SCHEMA信息。6.根據權利要求2至5任一項所述的方法,其特征在于,所述將所述關系數據庫表SCHEMA信息映射成非關系數據庫XML模型包括將所述SCHEMA信息映射成關系數據庫XML模型;按照所述SCHEMA的定義,將所述關系數據庫XML模型映射為非關系數據庫XML模型,并在映射關系表中記錄對應的映射關系。7.根據權利要求6所述的方法,其特征在于,所述將所述關系數據庫XML模型映射為非關系數據庫XML模型包括將所述關系數據庫XML模型配置為規范化處理模式或者非規范化處理模式,其中,當配置為規范化處理模式時,將關系數據庫中的每個表都映射為非關系數據庫中一個columnfamily,并在映射關系表中記錄對應的映射關系;當配置為非規范化處理模式時,將多個關系數據庫中的表映射為非關系數據庫中一個columnfamily。8.根據權利要求7所述的方法,其特征在于,還包括在所述關系數據庫XML模型配置為規范化處理模式或者非規范化處理模式時,對映射關系表中記錄中的映射關系進行優化配置。9.根據權利要求2至8任一項所述的方法,其特征在于,所述按照所述映射關系表中記錄的映射關系,將關系數據庫的數據導入帶非關系數據庫中包括根據所述非關系數據庫XML模型生成數據定義命令;向非關系數據庫發送所述數據定義命令,創建非關系數據庫中的SCHEMA;從所述關系數據庫中獲取數據集;根據所述映射關系表中記錄的對應映射關系將所述數據集導入所述非關系數據庫的SCHEMA中。10.根據權利要求1至9任一項所述的方法,其特征在于,所述從所述關系數據庫中獲取數據集包括掃描非關系數據庫XML模型和映射關系表,生成SQL查詢語句,利用所述SQL查詢語句從所述關系數據庫中獲取數據集。11.一種數據遷移裝置,其特征在于,包括第一獲取單元,用于從關系數據庫中獲取關系數據庫庫表SCHEMA信息;映射單元,用于將所述SCHEMA信息映射成非關系數據庫XML模型,并在映射關系表中記錄對應的映射關系;數據遷移單元,用于按照所述映射關系表中記錄的映射關系,將關系數據庫的數據導入帶非關系數據庫中。12.根據權利要求11所述的裝置,其特征在于,所述裝置還包括定義單元,用于在所述非關系數據庫中增加非關系數據庫表SCHEMA的定義,具體包括增加對columnfamily的主鍵的SCHEMA約束定義;增加對columnfamily的具體列的SCHEMA約束定義;將一個或多個聯合主鍵的關系數據庫表中映射為非關系數據庫中的supercolumnfamily。13.根據權利要求11或12所述的裝置,其特征在于,所述裝置還包括建立單元,與所述映射單元連接,用于建立關系數據庫中的關系表與非關系數據庫的非關系表的映射關系表。14.根據權利要求11或12所述的裝置,其特征在于,所述第一獲取單元包括第一發送單元,用于向所述關系數據庫中發送獲取SCHEMA信息的請求;第一接收單元,用于接收所述關系數據庫反饋的所述SCHEMA信息。15.根據權利要求12所述的裝置,其特征在于,所述映射單元包括第一映射單元,用于將所述SCHEMA信息映射成關系數據庫XML模型;第二映射單元,用于按照SCHEMA的定義,將所述關系數據庫XML模型映射為非關系數據庫XML模型,并在映射關系表中記錄對應的映射關系。16.根據權利要求12所述的裝置,其特征在于,所述第二映射單元包括規范化處理模式映射單元,用于將所述關系數據庫XML模型配置為規范化處理模式,并將關系數據庫中的每個表都映射為非關系數據庫中一個columnfamily,并在映射關系表中記錄對應的映射關系;和/或非規范化處理模式映射單元,用于將所述關系數據庫XML模型配置為非規范化處理模式,并將多個關系數據庫中的表映射為非關系數據庫中一個columnfamily,并在映射關系表中記錄對應的映射關系。17.根據權利要求16所述的裝置,其特征在于,所述裝置還包括配置優化單元,用于在所述關系數據庫XML模型配置為規范化處理模式或者非規范化處理模式時,對映射關系表中記錄中的映射關系進行優化配置。18.根據權利要求11至17任一項所述的裝置,其特征在于,所述第一獲取單元包括掃描單元,用于掃描非關系數據庫XML模型和映射關系表,得到掃描結果;生成單元,用于根據所述掃描結果生成SQL查詢語句;數據獲取單元,用于利用所述SQL查詢語句從所述關系數據庫中獲取數據集。19.根據權利要求11至17任一項所述的裝置,其特征在于,所述數據遷移單元包括生成單元,用于根據所述非關系數據庫XML模型生成數據定義命令;創建單元,用于向非關系數據庫發送所述數據定義命令,創建非關系數據庫中的SCHEMA;第二獲取單元,用于第二從所述關系數據庫中獲取數據集;數據導入單元,用于根據所述映射關系表中記錄的對應映射關系將所述數據集導入所述非關系數據庫的SCHEMA中。20.一種數據遷移系統,至少包括一個關系數據庫和一個非關系數據庫,其特征在于,還包括數據遷移裝置,用于從關系數據庫中獲取關系數據庫庫表SCHEMA信息;將所述SCHEMA信息映射成非關系數據庫XML模型,并在映射關系表中記錄對應的映射關系;按照所述映射關系表中記錄的映射關系,將關系數據庫的數據導入帶非關系數據庫中。21.根據權利要求20所述的系統,其特征在于,所述數據遷移裝置如權利要求11至19任一項所述的數據遷移裝置。全文摘要一種數據遷移方法、數據遷移裝置及數據遷移系統,所述方法包括從關系數據庫中獲取關系數據庫表SCHEMA信息;將所述SCHEMA信息映射成非關系數據庫XML模型,并在映射關系表中記錄對應的映射關系;按照所述映射關系表,將關系數據庫的數據導入帶非關系數據庫XML模型中。本發明解決把關系數據庫中的數據平滑遷移到非關系數據庫中的技術問題,實現了業務數據的平滑切換。文檔編號G06F17/30GK102308297SQ201180001239公開日2012年1月4日申請日期2011年7月13日優先權日2011年7月13日發明者李麗娟申請人:華為技術有限公司