專利名稱:一種面向結構的數據遷移的方法及系統的制作方法
技術領域:
本發明是關于一種數據遷移的方法及系統,尤其指面向結構的數據遷移方法及系統。
背景技術:
在信息化建設過程中,原有的信息系統不斷被功能更強大的新系統所取代。在新舊系統的切換過程中,必然要面臨一個數據遷移的問題。有的舊系統從啟用到被新系統取代,在其使用期間往往積累了大量珍貴的歷史數據,其中許多歷史數據都是新系統順利啟用所必須的。數據遷移,就是將這些歷史數據進行過濾、轉換,并裝載到新系統中的過程。數據遷移主要適用于一套舊系統切換到另一套新系統,或多套舊系統切換到同一套新系統時,需要將舊系統中的歷史數據轉換到新系統中的情況。
在現有的數據遷移工具產品中,能夠實現數據的過濾、轉換、裝載等功能,但是由于新舊系統的數據結構不完全相同,不能把舊系統中的代碼字段轉換為新系統中的代碼,或者在新系統中自動生成代碼。因此,也不能在新系統中同時裝載主表數據及其子表數據。這樣,就必須事先對舊系統數據進行處理,從而增加了數據遷移的難度和工作量。
針對上述問題,本發明提出了一種面向結構的數據遷移方法及系統,就是通過在模版中定義多層次的虛表及多層次的虛外鍵,定義遷移數據的結構關系,通過數據遷移引擎自動建立新系統中的代碼,向新系統中的主表及其子表裝載數據,并自動維護它們之間的關聯關系。
發明內容
本發明的主要目的在于提供一種能夠進行面向結構的數據遷移方法及系統。能夠在把數據經過過濾、轉換等操作后從數據源遷移到目標數據庫中,并且遷移時能夠自動維護新數據對字典的引用以及主表和子表的關系,從而維護了數據的結構關系。并且對于Excel文件的數據源,允許一條數據數據記錄存儲在多行中。
本發明提供了一種面向結構的數據遷移系統,包括模版定義模塊、數據遷移引擎模塊、開發者應用程序接口(API)。
模版定義模塊提供圖形用戶界面,供使用者定義數據遷移模版。定義模版包括要定義數據源,可以使用Excel文件或者數據庫作為數據源,進行數據遷移時系統將從數據源中讀取數據。定義目標數據庫,目標數據庫時數據遷移的目的地,使用者必須提供訪問目標數據庫所需的參數,進行數據遷移時系統將把數據存儲到目標數據庫中。定義模版時,還可以定義模版的開始事件和結束事件的事件處理程序。定義虛表,虛表定義了數據遷移的具體的源表和目標表,在虛表中還可以添加虛字段、虛主鍵、虛外鍵和虛表,這樣就定義了數據的結構關系,從而在數據遷移時由數據遷移引擎自動維護目標數據庫中的數據關系,同時還可以在開始事件、結束事件、定位下一記錄事件、記錄過濾事件中對數據進行過濾、轉換或對數據遷移過程進行控制。定義虛字段,虛字段是定義源表到目標表的字段映射關系,虛字段也可以使用固定值作為數據,也可以在數據過濾事件中對源字段數據進行轉換。定義虛主鍵,虛主鍵標明了虛表的主鍵字段,用于維護虛表及其下級虛表的關系。定義虛外鍵,虛外鍵定義了目標表的外鍵字段所關聯到的字典表,并且通過在虛外鍵中增加虛外鍵字段定義了如何維護這種關聯關系,在虛外鍵中還可以定義下一級的虛外鍵,以便處理多層次關聯的數據結構。在模版定義模塊中,還可以進行系統參數設置,可以設置的參數包括包括每次提交的行數、Excel文件顯示的行數、Excel文件顯示的列數、是否截取源數據中的空格、是否把空字符串作為空值處理。
數據遷移引擎模塊,用于執行數據遷移模版,把數據源中的數據按照數據模版定義的規則遷移到目標數據庫中。數據遷移引擎能夠按順序執行一個或多個虛表,按照虛表的定義從數據源中的源表中讀取數據,遷移到目標數據庫。在遷移過程中,自動維護主表和子表的關系以及外鍵字段與其引用的字典的關系。同時在遷移過程中,還會執行模版、虛表、虛字段、虛主鍵、虛外鍵字段中定義的事件處理程序,對源數據進行過濾、轉換并且對數據遷移過程進行控制。數據遷移引擎模塊可以在執行數據遷移時顯示數據遷移的進程,并且可以在數據遷移過程中隨時中止數據遷移過程。在數據遷移時,根據系統參數每次提交的行數的設置值,進行數據提交,如設置每次提交100行,則每遷移100行數據進行一次提交,如果每次提交的行數設置為0,則數據遷移過程不進行提交,僅用于測試使用。
開發者應用程序接口(API),用于訪問數據源數據,供使用者編寫數據遷移中的事件處理程序時使用,也可以從使用者的應用程序中使用。使用者可以在自己編寫的程序中,調用開發者應用程序接口,實現數據遷移的功能。在編寫數據遷移中的各種事件處理程序時,可以通過開發者應用程序接口訪問數據源數據,對數據源數據進行各種處理如過濾、轉換等。
圖1是本發明一種面向結構的數據遷移的方法及系統的實施環境圖。
圖2是本發明一種面向結構的數據遷移的方法及系統的功能模塊圖。
圖3是本發明一種面向結構的數據遷移的方法及系統的模版定義模塊工作流程圖。
圖4是本發明一種面向結構的數據遷移的方法及系統的數據遷移引擎的工作流程圖。
圖5是本發明一種面向結構的數據遷移的方法及系統的開發者應用程序接口的功能模塊圖。
具體實施例方式
參閱圖1所示,是本發明一種面向結構的數據遷移的方法及系統的實施環境圖。該系統運行在一客戶端計算機上,通過網絡與源數據庫服務器、源文件服務器、目標數據庫服務器相連接。系統運行時從源數據庫服務器或源文件服務器讀取數據,通過網絡把數據存儲到目標數據庫。
參閱圖2所示,是本發明一種面向結構的數據遷移的方法及系統的功能模塊圖。系統由模版定義模塊、數據遷移引擎模塊、開發者應用程序接口(API)組成。模版定義模塊提供圖形用戶界面,供使用者定義數據遷移模版。定義數據遷移模版,先要定義數據源和目標數據庫,以及模版事件處理程序。定義數據源,可以使用Excel文件或者數據庫作為數據源,進行數據遷移時系統將從數據源中讀取數據。定義目標數據庫,目標數據庫時數據遷移的目的地,使用者必須提供訪問目標數據庫所需的參數,進行數據遷移時系統將把數據存儲到目標數據庫中。模版定義模塊從數據源和目標數據庫中讀取數據的結構,以便使用者定義模版中的虛表等。數據遷移引擎模塊,用于執行數據遷移模版,把數據源中的數據按照數據模版定義的規則遷移到目標數據庫中。數據遷移引擎能夠按順序執行一個或多個虛表,按照虛表的定義從數據源中的源表中讀取數據,遷移到目標數據庫。開發者應用程序接口(API),用于訪問數據源數據,供使用者編寫數據遷移中的事件處理程序時使用,也可以在使用者編寫的程序中調用開發者應用程序接口,實現數據遷移的功能。
參閱圖3所示,是本發明一種面向結構的數據遷移的方法及系統的模版定義模塊工作流程圖。定義數據遷移模版,首先定義系統參數,包括每次提交的行數、Excel文件顯示的行數、Excel文件顯示的列數、是否截取源數據中的空格、是否把空字符串作為空值處理。接著,定義數據源和目標數據庫,數據源可以使Excel文件或者數據庫,數據源和目標數據庫的數據結構可以不相同,在使用Excel文件作為數據源時,一條數據記錄可以存儲在多行中。定義數據遷移模版時還要定義模版的事件處理程序。下一步,定義虛表,包括指定數據源中的表作為源表或指定一個結構化查詢(SQL)語句作為源表,指定目標數據庫中的表作為目標表,虛表是否遷移多行數據,源表記錄的步長,編輯開始事件、結束事件、定位下一記錄事件、記錄過濾事件的處理程序。下一步,在虛表中定義虛字段,包括指定虛字段名稱、源字段、固定值及是否使用固定值、編輯數據過濾事件處理程序。下一步,在虛表中定義虛主鍵,包括指定名稱、源字段、編輯數據過濾事件處理程序。下一步,在虛表中定義虛外鍵,包括指定名稱、主表、主鍵、是否自動新建。下一步,定義虛外鍵中的虛外鍵字段,包括指定主表字段、源字段、編輯數據過濾事件處理程序。定義完虛外鍵后,如果還需要定義下一級虛外鍵可以在虛外鍵中定義下一級虛外鍵。如果需要定義下一級虛表,可以在虛表中定義下一級虛表。
參閱圖4所示,是本發明一種面向結構的數據遷移的方法及系統的數據遷移引擎的工作流程圖。首先,數據遷移引擎連接數據源和目標數據庫。然后,開始依次遷移虛表,從數據源中讀取數據。下一步,按照虛字段的定義,把數據源數據存儲到目標數據庫中,如果定義了數據過濾事件處理程序,則在存儲前調用該程序進行處理。下一步,按照虛外鍵的定義,在目標數據庫中查找外鍵引用的字典,如果相應的字典不存在則根據虛外鍵中的虛外鍵字段自動建立該字典數據。如果虛外鍵中包含下一級虛外鍵,則遷移該下一級虛外鍵。如果虛表中包含下一級虛表,則遷移該下一級虛表。遷移完所有指定的虛表后,斷開與數據源和目標數據庫的連接。在遷移過程中,開始遷移和結束遷移時要執行模版的開始和結束事件。在開始和結束虛表遷移時要執行虛表的開始和結束時間。每次遷移一行數據時,要執行虛表的記錄過濾事件以決定是否遷移這一行數據。每次遷移一行數據之后,如果虛表的步長參數指定了要執行定位下一記錄事件則執行該事件,定位到下一行要進行遷移的數據。在遷移需字段、虛主鍵和虛外鍵字段時要執行它們的數據過濾事件。
參閱圖5所示,是本發明一種面向結構的數據遷移的方法及系統的開發者應用程序接口的功能模塊圖。開發者應用程序接口由兩部分組成,TemplateEngine是訪問數據遷移引擎的接口,該接口提供三個功能OpenTemplate打開數據遷移模版;Start開始數據遷移;Stop停止數據遷移。Sheet是訪問數據源中數據表數據的接口,該接口提供getCellValue功能,用于讀取數據表中指定行和列的數據。
權利要求
1.一種面向結構的數據遷移的系統,能夠定義數據遷移的模版,并執行數據從數據源到目標數據庫的遷移,其特點在于,系統包括模版定義模塊,用于提供圖形用戶接口,使用者通過模版定義模塊定義數據遷移模版。數據遷移引擎模塊,用于執行數據遷移模版,把數據源中的數據按照數據模版定義的規則遷移到目標數據庫中。開發者應用程序接口(API),用于訪問數據源數據,供使用者編寫數據遷移中的事件處理程序時使用,也可以從使用者的應用程序中使用。
2.一種面向結構的數據遷移的方法,能夠定義數據遷移的模版,并執行數據從數據源到目標數據庫的遷移,其特征在于,包括以下步驟設置系統參數,包括每次提交的行數、Excel文件顯示的行數、Excel文件顯示的列數、是否截取源數據中的空格、是否把空字符串作為空值處理;定義數據遷移模版;執行數據遷移,根據使用者在數據遷移模版中選擇的虛表,自動從源表中讀取數據,按照虛表的定義把數據存放到目標表中去,在執行的過程中執行使用者定義的各種事件處理程序;
3.如權利要求2所述的數據遷移方法,其特征在于,其中的定義數據遷移模版包括以下步驟定義數據源,可以使用Excel文件,或數據庫作為數據源;定義目標數據庫,指定連接到數據庫的參數;定義模版事件處理程序,包括定義開始事件和結束事件的處理程序。定義虛表,包括指定數據源中的表作為源表或指定一個結構化查詢(SQL)語句作為源表,指定目標數據庫中的表作為目標表,虛表是否遷移多行數據,源表記錄的步長,編輯開始事件、結束事件、定位下一記錄事件、記錄過濾事件的處理程序;在虛表中定義虛字段,指定虛字段名稱、源字段、固定值及是否使用固定值、編輯數據過濾事件處理程序;在虛表中定義虛外鍵,指定名稱、主表、主鍵、是否自動新建;在虛外鍵中定義虛外鍵字段,指定主表字段、源字段、編輯數據過濾事件處理程序;在虛外鍵中定義下一級虛外鍵;在虛表中定義虛主鍵,指定名稱、源字段、編輯數據過濾事件處理程序;在虛表中定義下一級虛表,包括指定目標表,虛表是否遷移多行數據,源表記錄的步長,編輯開始事件、結束事件、定位下一記錄事件、記錄過濾事件的處理程序;
全文摘要
本發明的主要目的在于提供一種能夠進行面向結構的數據遷移方法及系統。能夠在把數據經過過濾、轉換等操作后從數據源遷移到目標數據庫中,并且遷移時能夠自動維護新數據對字典的引用以及主表和子表的關系,從而維護了數據的結構關系。一種面向結構的數據遷移系統,包括模版定義模塊、數據遷移引擎模塊、開發者應用程序接口(API)。一種面向結構的數據遷移的方法包括設置系統參數;定義數據遷移模版;執行數據遷移。
文檔編號G06F17/30GK1763745SQ20051009586
公開日2006年4月26日 申請日期2005年9月6日 優先權日2005年9月6日
發明者閻海強 申請人:閻海強