專利名稱:一種數(shù)據(jù)導入方法及裝置的制作方法
技術領域:
本發(fā)明涉及計算機技術領域,尤其涉及一種數(shù)據(jù)導入方法及裝置。
背景技術:
在企業(yè)信息化建設的過程中,由于各業(yè)務系統(tǒng)建設和實施數(shù)據(jù)管理系統(tǒng)的階段性、技術性以及其他經(jīng)濟和人為因素等的影響,導致企業(yè)在發(fā)展過程中積累了大量采用不同存儲方式的業(yè)務數(shù)據(jù),且業(yè)務數(shù)據(jù)采用的數(shù)據(jù)管理系統(tǒng)也大不相同,從簡單的文件數(shù)據(jù)庫到復雜的網(wǎng)絡數(shù)據(jù)庫,構成了企業(yè)的異構數(shù)據(jù)源。異構數(shù)據(jù)源是指不同的數(shù)據(jù)庫管理系統(tǒng)之間的數(shù)據(jù),企業(yè)數(shù)據(jù)源異構性主要表現(xiàn)在1.系統(tǒng)異構,即數(shù)據(jù)源所依賴的業(yè)務應用系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)乃至操作系統(tǒng)之間的不同構成了系統(tǒng)異構。2.模式異構,即數(shù)據(jù)源在存儲模式上的不同。存儲模式主要包括關系模式、對象模式、對象關系模式和文檔嵌套模式,其中,關系模式(關系數(shù)據(jù)庫)為主流存儲模式。同時, 即便是同一類存儲模式,模式結構可能也存在著差異。例如,不同的關系數(shù)據(jù)管理系統(tǒng)的數(shù)據(jù)類型等方面并不是完全一致的,如DB2、0racle、SybaseJnformix、SQL Server和Foxpro等。3.來源異構,即企業(yè)內部數(shù)據(jù)源和外部數(shù)據(jù)源之間的異構。為了方便管理異構數(shù)據(jù)源中的數(shù)據(jù),通常使用ETUExtractior^ransformation Loading,抽取轉換加載)過程將分布的、異構數(shù)據(jù)源中的數(shù)據(jù)(如關系數(shù)據(jù)和平面數(shù)據(jù)文件等)抽取到臨時中間層,并進行清洗、轉換和集成,最后加載到數(shù)據(jù)倉庫(Data Warehouse)或數(shù)據(jù)集市中,成為聯(lián)機分析處理、數(shù)據(jù)挖掘的基礎。ETL是指從源系統(tǒng)中提取數(shù)據(jù),轉換數(shù)據(jù)為標準格式,并加載數(shù)據(jù)到目標數(shù)據(jù)存儲區(qū)的過程,該目標數(shù)據(jù)存儲區(qū)通常為數(shù)據(jù)倉庫。其中,數(shù)據(jù)倉庫是一個面向主題的、集成的、 相對穩(wěn)定的、反映歷史變化的數(shù)據(jù)集合,用于支持管理決策。ETL屏蔽復雜的業(yè)務邏輯,管理簡潔的元數(shù)據(jù)(Meta Data),并實施導入數(shù)據(jù)倉庫的過程,從而為各種基于數(shù)據(jù)倉庫的分析和應用提供了統(tǒng)一的數(shù)據(jù)接口。其中,元數(shù)據(jù)是關于數(shù)據(jù)倉庫的數(shù)據(jù),指在數(shù)據(jù)倉庫建設過程中所產生的有關數(shù)據(jù)源定義、目標定義和轉換規(guī)則等相關的關鍵數(shù)據(jù)。現(xiàn)有技術中,需要針對每種業(yè)務人工配置元數(shù)據(jù),并進行相應的數(shù)據(jù)庫建表和增加分區(qū)等操作,從而生成后臺可運行的程序插件,最后開始運行ETL過程。發(fā)明人在實現(xiàn)本發(fā)明的過程中,發(fā)現(xiàn)現(xiàn)有技術至少存在以下缺陷在互聯(lián)網(wǎng)公司業(yè)務多、變化快的環(huán)境下,手工配置極為繁瑣,以至于幾乎是不可能完成的任務;操作零散不易管理,在多數(shù)據(jù)源、異構環(huán)境下需要數(shù)次登錄復雜環(huán)境配置;缺少指引性的前后邏輯關系處理和集成測試,前后配置存在不兼容的情況只能推遲到實施階段才能發(fā)現(xiàn);配置錯誤時的失敗處理繁瑣,不能跳過正確部分直接從錯誤現(xiàn)場即時恢復。
發(fā)明內容
本發(fā)明提供了一種數(shù)據(jù)導入方法及裝置,提高了數(shù)據(jù)導入的準確性、易用性和效率。本發(fā)明提供了一種數(shù)據(jù)導入方法,包括以下步驟獲取來自業(yè)務系統(tǒng)的業(yè)務文件,根據(jù)所述業(yè)務文件生成靜態(tài)元數(shù)據(jù)并接入所述業(yè)務系統(tǒng)對應的目標數(shù)據(jù)庫;使用所述靜態(tài)元數(shù)據(jù)對所述目標數(shù)據(jù)庫中的業(yè)務數(shù)據(jù)進行格式轉換,并將格式轉換后的數(shù)據(jù)導入到目標數(shù)據(jù)存儲區(qū)。優(yōu)選地,所述業(yè)務文件中包含業(yè)務元數(shù)據(jù),所述根據(jù)所述業(yè)務文件生成靜態(tài)元數(shù)據(jù),包括根據(jù)所述業(yè)務元數(shù)據(jù)對應的業(yè)務匹配關系進行業(yè)務適配,推導出所述靜態(tài)元數(shù)據(jù)。優(yōu)選地,所述接入所述業(yè)務系統(tǒng)對應的目標數(shù)據(jù)庫,包括根據(jù)所述靜態(tài)元數(shù)據(jù)進行數(shù)據(jù)源適配,獲取所述目標數(shù)據(jù)庫的位置,根據(jù)所述位置登錄所述目標數(shù)據(jù)庫,并在所述目標數(shù)據(jù)庫中執(zhí)行建表操作,得到存儲所述業(yè)務數(shù)據(jù)的數(shù)據(jù)表項。優(yōu)選地,所述在目標數(shù)據(jù)庫中執(zhí)行建表操作,包括根據(jù)數(shù)據(jù)庫規(guī)則和用戶提供的基本建表語句拼裝系統(tǒng)信息,得到最終建表語句, 使用所述最終建表語句執(zhí)行建表操作。優(yōu)選地,所述得到存儲所述業(yè)務數(shù)據(jù)的數(shù)據(jù)表項之后,還包括為所述數(shù)據(jù)表項增加分區(qū),并賦予用戶對所述數(shù)據(jù)表項的使用權限。優(yōu)選地,所述使用所述靜態(tài)元數(shù)據(jù)對所述目標數(shù)據(jù)庫中的業(yè)務數(shù)據(jù)進行格式轉換,并將格式轉換后的數(shù)據(jù)導入到目標數(shù)據(jù)存儲區(qū),包括通過與所述業(yè)務文件對應的后臺插件模板使用所述靜態(tài)元數(shù)據(jù),生成可運行程序插件,并將所述可運行程序插件部署到對應的運行位置;在所述運行位置執(zhí)行所述可運行程序插件,對所述目標數(shù)據(jù)庫中的業(yè)務數(shù)據(jù)進行格式轉換,并將格式轉換后的數(shù)據(jù)導入到目標數(shù)據(jù)存儲區(qū)。本發(fā)明還提供了一種數(shù)據(jù)導入裝置,包括獲取模塊,用于獲取來自業(yè)務系統(tǒng)的業(yè)務文件;生成模塊,用于根據(jù)獲取模塊獲取的所述業(yè)務文件生成靜態(tài)元數(shù)據(jù);接入模塊,用于根據(jù)所述獲取模塊獲取的業(yè)務文件接入所述業(yè)務系統(tǒng)對應的目標數(shù)據(jù)庫;導入模塊,用于使用所述生成模塊生成的靜態(tài)元數(shù)據(jù)對所述接入模塊接入的目標數(shù)據(jù)庫中的業(yè)務數(shù)據(jù)進行格式轉換,并將格式轉換后的數(shù)據(jù)導入到目標數(shù)據(jù)存儲區(qū)。優(yōu)選地,所述業(yè)務文件中包含業(yè)務元數(shù)據(jù),所述生成模塊,用于根據(jù)所述業(yè)務元數(shù)據(jù)對應的業(yè)務匹配關系進行業(yè)務適配,推導出所述靜態(tài)元數(shù)據(jù)。優(yōu)選地,所述接入模塊,用于根據(jù)所述靜態(tài)元數(shù)據(jù)進行數(shù)據(jù)源適配,獲取所述目標數(shù)據(jù)庫的位置,根據(jù)所述位置登錄所述目標數(shù)據(jù)庫,并在所述目標數(shù)據(jù)庫中執(zhí)行建表操作,得到存儲所述業(yè)務數(shù)據(jù)的數(shù)據(jù)表項。優(yōu)選地,所述接入模塊,具體用于根據(jù)數(shù)據(jù)庫規(guī)則和用戶提供的基本建表語句拼裝系統(tǒng)信息,得到最終建表語句,使用所述最終建表語句執(zhí)行建表操作。優(yōu)選地,所述接入模塊,還用于為所述數(shù)據(jù)表項增加分區(qū),并賦予用戶對所述數(shù)據(jù)表項的使用權限。優(yōu)選地,所述導入模塊,用于通過與所述業(yè)務文件對應的后臺插件模板使用所述靜態(tài)元數(shù)據(jù),生成可運行程序插件,并將所述可運行程序插件部署到對應的運行位置;在所述運行位置執(zhí)行所述可運行程序插件,對所述目標數(shù)據(jù)庫中的業(yè)務數(shù)據(jù)進行格式轉換,并將格式轉換后的數(shù)據(jù)導入到目標數(shù)據(jù)存儲區(qū)。與現(xiàn)有技術相比,本發(fā)明具有以下優(yōu)點本發(fā)明提供了一種數(shù)據(jù)自動接入數(shù)據(jù)倉庫系統(tǒng)的解決方案,根據(jù)配置信息和程序信息對ETL過程中的元數(shù)據(jù)管理、插件生成和部署,數(shù)據(jù)庫環(huán)境準備均能實現(xiàn)自動化,由后臺程序完成建表、程序生成和部署,并在完成后可直接實施ETL過程,不需人工干預,在業(yè)務復雜、接入需求多的環(huán)境下可提供簡單接口和快速響應,加快了數(shù)據(jù)倉庫的接入響應速度,降低了管理成本,提高了數(shù)據(jù)導入的準確性、 易用性和效率。另外,使用檢查點機制完成工作流功能,完成接入過程中的重要事件后創(chuàng)建檢查點,在接入的異常情況時,在檢查點處檢查持久化信息和現(xiàn)場錯誤恢復,做到查錯效率最大化和恢復代價最小化,可以改善流程運轉和失敗恢復過程。
為了更清楚地說明本發(fā)明或現(xiàn)有技術中的技術方案,下面將對本發(fā)明或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明中的一種數(shù)據(jù)導入方法流程圖;圖2為本發(fā)明應用場景中的數(shù)據(jù)導入系統(tǒng)架構示意圖;圖3為本發(fā)明應用場景中的數(shù)據(jù)導入流程圖;圖4為本發(fā)明中一種的數(shù)據(jù)導入裝置結構示意圖。
具體實施例方式針對現(xiàn)有技術中手工配置繁瑣、處理步驟和場所零散的問題,本發(fā)明提供的技術方案中,以工作流的方式實現(xiàn)數(shù)據(jù)接入過程中的元數(shù)據(jù)生成、數(shù)據(jù)庫建表、增加分區(qū)和賦權,以及對各種業(yè)務進行適配等功能,后臺自動生成并部署運行程序,可支持多數(shù)據(jù)庫、分布式系統(tǒng)等多種數(shù)據(jù)源和數(shù)據(jù)終點。在企業(yè)級數(shù)據(jù)倉庫業(yè)務復雜、元數(shù)據(jù)龐雜、各種程序和插件繁瑣易錯的環(huán)境下,給出了大批量數(shù)據(jù)頻繁接入且不需人工干預的新型解決方案。本發(fā)明提供的技術方案中,提煉出針對業(yè)務可變的最小子集,以填寫 XML (Extensible Markup Language,可擴展標記語言)文件形式提供,后臺處理該XML文件并對業(yè)務做各種適配,登錄到不同場景完成配置和部署,并根據(jù)處理結果自動導出元數(shù)據(jù)。 另外,針對錯誤恢復和邏輯耦合的問題,本發(fā)明通過設計工作流系統(tǒng)串聯(lián)各步驟,能夠在數(shù)據(jù)導入失敗時方便地從斷點查錯和執(zhí)行斷點恢復。
下面將結合本發(fā)明中的附圖,對本發(fā)明的技術方案進行清楚、完整地描述,顯然, 所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。如圖1所示,為本發(fā)明中的一種數(shù)據(jù)導入方法流程圖,包括以下步驟步驟101,獲取來自業(yè)務系統(tǒng)的業(yè)務文件,根據(jù)所述業(yè)務文件生成靜態(tài)元數(shù)據(jù)并接入所述業(yè)務系統(tǒng)對應的目標數(shù)據(jù)庫。具體地,在獲取來自業(yè)務系統(tǒng)的業(yè)務文件之后,還可以對該業(yè)務文件進行校驗,并在校驗通過后存儲該業(yè)務文件。其中,業(yè)務文件可以為包含業(yè)務元數(shù)據(jù)的XML文件,可以根據(jù)該業(yè)務元數(shù)據(jù)對應的業(yè)務匹配關系進行業(yè)務適配,推導出靜態(tài)元數(shù)據(jù)。在根據(jù)業(yè)務文件生成靜態(tài)元數(shù)據(jù)之后,還可以生成第一檢查點,并在導入數(shù)據(jù)失敗時通過第一檢查點確定靜態(tài)元數(shù)據(jù)成功生成。在推導出靜態(tài)元數(shù)據(jù)后,可以根據(jù)該靜態(tài)元數(shù)據(jù)進行數(shù)據(jù)源適配,獲取目標數(shù)據(jù)庫的位置,根據(jù)該位置登錄目標數(shù)據(jù)庫,并在目標數(shù)據(jù)庫中執(zhí)行建表操作,得到存儲業(yè)務數(shù)據(jù)的數(shù)據(jù)表項。具體地,可以根據(jù)數(shù)據(jù)庫規(guī)則和用戶提供的基本建表語句拼裝系統(tǒng)信息,得到最終建表語句,使用該最終建表語句執(zhí)行建表操作。在得到存儲業(yè)務數(shù)據(jù)的數(shù)據(jù)表項之后,還可以為該數(shù)據(jù)表項增加分區(qū),并賦予用戶對數(shù)據(jù)表項的使用權限。隨后,還可以生成第二檢查點,并在導入數(shù)據(jù)失敗時通過該第二檢查點確定數(shù)據(jù)表項成功生成。在生成第二檢查點之后,還可以將靜態(tài)元數(shù)據(jù)和業(yè)務元數(shù)據(jù)持久化保存到中央元數(shù)據(jù)庫中;生成第三檢查點,并在導入數(shù)據(jù)失敗時通過第三檢查點確定元數(shù)據(jù)成功生成。步驟102,使用靜態(tài)元數(shù)據(jù)對目標數(shù)據(jù)庫中的業(yè)務數(shù)據(jù)進行格式轉換,并將格式轉換后的數(shù)據(jù)導入到目標數(shù)據(jù)存儲區(qū)。具體地,可以通過與業(yè)務文件對應的后臺插件模板使用靜態(tài)元數(shù)據(jù),生成可運行程序插件,并將該可運行程序插件部署到對應的運行位置;在該運行位置執(zhí)行可運行程序插件,對目標數(shù)據(jù)庫中的業(yè)務數(shù)據(jù)進行格式轉換,并將格式轉換后的數(shù)據(jù)導入到目標數(shù)據(jù)存儲區(qū)。在運行位置執(zhí)行可運行程序插件之后,還可以根據(jù)可運行程序插件和靜態(tài)元數(shù)據(jù)導出運行環(huán)境信息,將該運行環(huán)境信息持久化保存到后臺配置表中;生成第四檢查點,并在導入數(shù)據(jù)失敗時通過第四檢查點確定所述運行環(huán)境信息成功導出。本發(fā)明提供了一種數(shù)據(jù)自動接入數(shù)據(jù)倉庫系統(tǒng)的解決方案,根據(jù)配置信息和程序信息對ETL過程中的元數(shù)據(jù)管理、插件生成和部署,數(shù)據(jù)庫環(huán)境準備均能實現(xiàn)自動化,由后臺程序完成建表、程序生成和部署,并在完成后可直接實施ETL過程,不需人工干預,在業(yè)務復雜、接入需求多的環(huán)境下可提供簡單接口和快速響應,加快了數(shù)據(jù)倉庫的接入響應速度,降低了管理成本,提高了數(shù)據(jù)導入的準確性、易用性和效率。如圖2所示,為本發(fā)明應用場景中的數(shù)據(jù)導入系統(tǒng)架構示意圖,包括XML獲取和校驗模塊、靜態(tài)元數(shù)據(jù)生成模塊、環(huán)境處理模塊、中央元數(shù)據(jù)庫、插件生成模塊、插件部署模塊、運行元數(shù)據(jù)導出模塊和工作流弓I擎。其中,XML獲取和校驗模塊可以用于根據(jù)指定位置和名稱獲取XML文件,并校驗其中的必填項是否填寫以及填寫的數(shù)值是否滿足預設規(guī)則。靜態(tài)元數(shù)據(jù)生成模塊可以用于根據(jù)從XML文件中得到的基本字段值以及業(yè)務匹配關系推導出需要的靜態(tài)元數(shù)據(jù)值,根據(jù)數(shù)據(jù)倉庫環(huán)境推導出需要的接口機、冷備機等環(huán)境元數(shù)據(jù)信息,并將上述信息導出到文件系統(tǒng),待下一步使用。環(huán)境處理模塊可以用于根據(jù)元數(shù)據(jù)中數(shù)據(jù)源的環(huán)境選擇合適的命令,根據(jù)目標數(shù)據(jù)庫的位置連接到正確的數(shù)據(jù)庫,結合用戶提交的基本建表語句,拼裝表空間、存儲參數(shù)、 表分區(qū)類型和添加表分區(qū)語句等信息,在目標數(shù)據(jù)庫執(zhí)行建表操作,并調用存儲過程對新建表賦予使用權限。中央元數(shù)據(jù)庫可以用于持久化正確的元數(shù)據(jù)信息,并在和后臺程序交互時交付該元數(shù)據(jù)的使用。插件生成模塊可以用于獲取正確的元數(shù)據(jù)信息,并根據(jù)后臺插件模板使用該元數(shù)據(jù)信息,自動生成可在現(xiàn)網(wǎng)直接運行的程序插件。插件部署模塊可以用于將生成的后臺程序部署到合適的運行位置。運行元數(shù)據(jù)導出模塊可以用于管理插件生成模塊生成的程序插件,部署插件過程中生成的元數(shù)據(jù),配置運行環(huán)境和登記日志信息。工作流引擎可以用于在完成一個階段任務時,持久化信息并建立檢查點;在數(shù)據(jù)導入失敗時,提供檢查點檢查機制和直接從錯誤現(xiàn)場恢復的功能。以下結合上述應用場景,對本發(fā)明中的數(shù)據(jù)導入方法進行詳細、具體的描述。如圖3所示,為本發(fā)明應用場景中的數(shù)據(jù)導入流程圖,具體包括以下步驟步驟301,基于數(shù)據(jù)倉庫ETL規(guī)則,依次獲取最小規(guī)則配置的XML文件。步驟302,對XML文件進行校驗,將該XML文件中的可用信息存儲到一個數(shù)據(jù)結構中。步驟303,后臺進行業(yè)務適配,在ETL框架內選擇合適的接口和冷備類型,并自動完成配置,生成并導出可用的靜態(tài)元數(shù)據(jù)。步驟304,生成第一檢查點。步驟305,根據(jù)配置規(guī)則和靜態(tài)元數(shù)據(jù),對相應的主機或分布式系統(tǒng)進行適配,登錄到用戶所要接入的數(shù)據(jù)庫。步驟306,后臺根據(jù)用戶提供的建表語句結合數(shù)據(jù)庫規(guī)則,拼裝系統(tǒng)信息,得到最終建表語句,完成建表操作。步驟307,根據(jù)數(shù)據(jù)倉庫特性為建好的表增加分區(qū),并賦予用戶使用權限,生成第
二檢查點。步驟308,將導出的靜態(tài)元數(shù)據(jù)進行持久化保存,生成第三檢查點。步驟309,根據(jù)模板生成后臺可運行的程序插件,并部署該程序插件到運行環(huán)境中。步驟310,根據(jù)生成的程序插件和已有的靜態(tài)元數(shù)據(jù),導出程序插件運行時環(huán)境所需的運行環(huán)境信息,持久化該信息到后臺配置表中,生成第四檢查點。步驟311,判斷數(shù)據(jù)導入是否成功,如果成功,則執(zhí)行步驟301 ;否則,執(zhí)行步驟 312。步驟312,通過設置的檢查點確定數(shù)據(jù)導入失敗處,并在數(shù)據(jù)導入失敗處提示失敗
fn息ο具體地,可以通過上述步驟中生成的各個檢查點判斷檢查點之前的步驟是否成功執(zhí)行,以確定數(shù)據(jù)導入失敗處。例如,當通過第一檢查點判斷第一檢查點之前的步驟執(zhí)行, 且通過第二檢查點判斷第二檢查點之前的步驟執(zhí)行失敗是,可以確定數(shù)據(jù)導入失敗處在第一檢查點和第二檢查點之間。確定數(shù)據(jù)導入失敗處后,可以通過郵件的方式將失敗信息通知相關人員。步驟313,修復錯誤后,從檢查點處繼續(xù)數(shù)據(jù)導入過程。具體地,在數(shù)據(jù)導入失敗處修復錯誤后,從工作流中最后一個判斷成功的檢查點處繼續(xù)進行數(shù)據(jù)導入。需要說明的是,本發(fā)明方法可以根據(jù)實際需要對各個步驟順序進行調整。本發(fā)明提供了一種數(shù)據(jù)自動接入數(shù)據(jù)倉庫系統(tǒng)的解決方案,根據(jù)配置信息和程序信息對ETL過程中的元數(shù)據(jù)管理、插件生成和部署,數(shù)據(jù)庫環(huán)境準備均能實現(xiàn)自動化,由后臺程序完成建表、程序生成和部署,并在完成后可直接實施ETL過程,不需人工干預,在業(yè)務復雜、接入需求多的環(huán)境下可提供簡單接口和快速響應,加快了數(shù)據(jù)倉庫的接入響應速度,降低了管理成本,提高了數(shù)據(jù)導入的準確性、易用性和效率。另外,使用檢查點機制完成工作流功能,完成接入過程中的重要事件后創(chuàng)建檢查點,在接入的異常情況時,在檢查點處檢查持久化信息和現(xiàn)場錯誤恢復,做到查錯效率最大化和恢復代價最小化,可以改善流程運轉和失敗恢復過程。本發(fā)明在上述實施方式中提供了數(shù)據(jù)導入的方法和應用場景,相應地,本發(fā)明還提供了應用上述數(shù)據(jù)導入的方法的裝置。如圖4所示,為本發(fā)明中一種的數(shù)據(jù)導入裝置結構示意圖,包括獲取模塊410,用于獲取來自業(yè)務系統(tǒng)的業(yè)務文件。生成模塊420,用于根據(jù)獲取模塊410獲取的所述業(yè)務文件生成靜態(tài)元數(shù)據(jù)。接入模塊430,用于根據(jù)獲取模塊410獲取的業(yè)務文件接入業(yè)務系統(tǒng)對應的目標
數(shù)據(jù)庫。導入模塊440,用于使用生成模塊420生成的靜態(tài)元數(shù)據(jù)對接入模塊430接入的目標數(shù)據(jù)庫中的業(yè)務數(shù)據(jù)進行格式轉換,并將格式轉換后的數(shù)據(jù)導入到目標數(shù)據(jù)存儲區(qū)。上述的裝置,還可以進一步包括校驗模塊450,用于對獲取模塊410獲取的業(yè)務文件進行校驗,并在校驗通過后存儲所述業(yè)務文件。其中,業(yè)務文件中包含業(yè)務元數(shù)據(jù)。上述生成模塊420,用于根據(jù)所述業(yè)務元數(shù)據(jù)對應的業(yè)務匹配關系進行業(yè)務適配,推導出所述靜態(tài)元數(shù)據(jù)。上述的裝置,還可以進一步包括第一檢查模塊460,用于在生成模塊420根據(jù)所述業(yè)務文件生成靜態(tài)元數(shù)據(jù)之后, 生成第一檢查點,并在導入數(shù)據(jù)失敗時通過所述第一檢查點判斷所述靜態(tài)元數(shù)據(jù)是否成功生成。上述接入模塊430,用于根據(jù)所述靜態(tài)元數(shù)據(jù)進行數(shù)據(jù)源適配,獲取所述目標數(shù)據(jù)庫的位置,根據(jù)所述位置登錄所述目標數(shù)據(jù)庫,并在所述目標數(shù)據(jù)庫中執(zhí)行建表操作,得到存儲所述業(yè)務數(shù)據(jù)的數(shù)據(jù)表項。上述接入模塊430,具體用于根據(jù)數(shù)據(jù)庫規(guī)則和用戶提供的基本建表語句拼裝系統(tǒng)信息,得到最終建表語句,使用所述最終建表語句執(zhí)行建表操作。
上述接入模塊430,還用于為所述數(shù)據(jù)表項增加分區(qū),并賦予用戶對所述數(shù)據(jù)表項的使用權限。上述的裝置,還可以進一步包括第二檢查模塊470,用于在所述接入模塊430賦予用戶對所述數(shù)據(jù)表項的使用權限之后,生成第二檢查點,并在導入數(shù)據(jù)失敗時通過所述第二檢查點判斷所述數(shù)據(jù)表項是否成功生成。上述生成模塊420,還用于將所述靜態(tài)元數(shù)據(jù)和所述業(yè)務元數(shù)據(jù)持久化保存到中央元數(shù)據(jù)庫中。上述的裝置,還可以進一步包括第三檢查模塊480,用于在所述生成模塊420將所述靜態(tài)元數(shù)據(jù)和所述業(yè)務元數(shù)據(jù)持久化保存到中央元數(shù)據(jù)庫中之后,生成第三檢查點,并在導入數(shù)據(jù)失敗時通過所述第三檢查點判斷元數(shù)據(jù)成功生成。上述導入模塊440,用于通過與所述業(yè)務文件對應的后臺插件模板使用所述靜態(tài)元數(shù)據(jù),生成可運行程序插件,并將所述可運行程序插件部署到對應的運行位置;在所述運行位置執(zhí)行所述可運行程序插件,對所述目標數(shù)據(jù)庫中的業(yè)務數(shù)據(jù)進行格式轉換,并將格式轉換后的數(shù)據(jù)導入到目標數(shù)據(jù)存儲區(qū)。上述生成模塊420,還用于根據(jù)所述可運行程序插件和所述靜態(tài)元數(shù)據(jù)導出運行環(huán)境信息,將所述運行環(huán)境信息持久化保存到后臺配置表中。上述的裝置,還可以進一步包括第四檢查模塊490,用于在所述生成模塊420將所述運行環(huán)境信息持久化保存到后臺配置表中之后,生成第四檢查點,并在導入數(shù)據(jù)失敗時通過所述第四檢查點判斷所述運行環(huán)境信息成功導出。本發(fā)明提供了一種數(shù)據(jù)自動接入數(shù)據(jù)倉庫系統(tǒng)的解決方案,根據(jù)配置信息和程序信息對ETL過程中的元數(shù)據(jù)管理、插件生成和部署,數(shù)據(jù)庫環(huán)境準備均能實現(xiàn)自動化,由后臺程序完成建表、程序生成和部署,并在完成后可直接實施ETL過程,不需人工干預,在業(yè)務復雜、接入需求多的環(huán)境下可提供簡單接口和快速響應,加快了數(shù)據(jù)倉庫的接入響應速度,降低了管理成本,提高了數(shù)據(jù)導入的準確性、易用性和效率。另外,使用檢查點機制完成工作流功能,完成接入過程中的重要事件后創(chuàng)建檢查點,在接入的異常情況時,在檢查點處檢查持久化信息和現(xiàn)場錯誤恢復,做到查錯效率最大化和恢復代價最小化,可以改善流程運轉和失敗恢復過程。通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術方案本質上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產品的形式體現(xiàn)出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺終端設備(可以是手機,個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述的方法。以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視本發(fā)明的保護范圍。
本領域技術人員可以理解實施例中的裝置中的模塊可以按照實施例描述進行分布于實施例的裝置中,也可以進行相應變化位于不同于本實施例的一個或多個裝置中。上述實施例的模塊可以集成于一體,也可以分離部署;可以合并為一個模塊,也可以進一步拆分成多個子模塊。上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。以上公開的僅為本發(fā)明的幾個具體實施例,但是,本發(fā)明并非局限于此,任何本領域的技術人員能思之的變化都應落入本發(fā)明的保護范圍。
權利要求
1.一種數(shù)據(jù)導入方法,其特征在于,包括以下步驟獲取來自業(yè)務系統(tǒng)的業(yè)務文件,根據(jù)所述業(yè)務文件生成靜態(tài)元數(shù)據(jù)并接入所述業(yè)務系統(tǒng)對應的目標數(shù)據(jù)庫;使用所述靜態(tài)元數(shù)據(jù)對所述目標數(shù)據(jù)庫中的業(yè)務數(shù)據(jù)進行格式轉換,并將格式轉換后的數(shù)據(jù)導入到目標數(shù)據(jù)存儲區(qū)。
2.如權利要求1所述的方法,其特征在于,所述業(yè)務文件中包含業(yè)務元數(shù)據(jù), 所述根據(jù)所述業(yè)務文件生成靜態(tài)元數(shù)據(jù),包括根據(jù)所述業(yè)務元數(shù)據(jù)對應的業(yè)務匹配關系進行業(yè)務適配,推導出所述靜態(tài)元數(shù)據(jù)。
3.如權利要求1所述的方法,其特征在于,所述接入所述業(yè)務系統(tǒng)對應的目標數(shù)據(jù)庫, 包括根據(jù)所述靜態(tài)元數(shù)據(jù)進行數(shù)據(jù)源適配,獲取所述目標數(shù)據(jù)庫的位置,根據(jù)所述位置登錄所述目標數(shù)據(jù)庫,并在所述目標數(shù)據(jù)庫中執(zhí)行建表操作,得到存儲所述業(yè)務數(shù)據(jù)的數(shù)據(jù)表項。
4.如權利要求3所述的方法,其特征在于,所述在目標數(shù)據(jù)庫中執(zhí)行建表操作,包括 根據(jù)數(shù)據(jù)庫規(guī)則和用戶提供的基本建表語句拼裝系統(tǒng)信息,得到最終建表語句,使用所述最終建表語句執(zhí)行建表操作。
5.如權利要求3所述的方法,其特征在于,所述得到存儲所述業(yè)務數(shù)據(jù)的數(shù)據(jù)表項之后,還包括為所述數(shù)據(jù)表項增加分區(qū),并賦予用戶對所述數(shù)據(jù)表項的使用權限。
6.如權利要求1所述的方法,其特征在于,所述使用所述靜態(tài)元數(shù)據(jù)對所述目標數(shù)據(jù)庫中的業(yè)務數(shù)據(jù)進行格式轉換,并將格式轉換后的數(shù)據(jù)導入到目標數(shù)據(jù)存儲區(qū),包括通過與所述業(yè)務文件對應的后臺插件模板使用所述靜態(tài)元數(shù)據(jù),生成可運行程序插件,并將所述可運行程序插件部署到對應的運行位置;在所述運行位置執(zhí)行所述可運行程序插件,對所述目標數(shù)據(jù)庫中的業(yè)務數(shù)據(jù)進行格式轉換,并將格式轉換后的數(shù)據(jù)導入到目標數(shù)據(jù)存儲區(qū)。
7.一種數(shù)據(jù)導入裝置,其特征在于,包括 獲取模塊,用于獲取來自業(yè)務系統(tǒng)的業(yè)務文件;生成模塊,用于根據(jù)獲取模塊獲取的所述業(yè)務文件生成靜態(tài)元數(shù)據(jù); 接入模塊,用于根據(jù)所述獲取模塊獲取的業(yè)務文件接入所述業(yè)務系統(tǒng)對應的目標數(shù)據(jù)庫;導入模塊,用于使用所述生成模塊生成的靜態(tài)元數(shù)據(jù)對所述接入模塊接入的目標數(shù)據(jù)庫中的業(yè)務數(shù)據(jù)進行格式轉換,并將格式轉換后的數(shù)據(jù)導入到目標數(shù)據(jù)存儲區(qū)。
8.如權利要求7所述的裝置,其特征在于,所述業(yè)務文件中包含業(yè)務元數(shù)據(jù),所述生成模塊,用于根據(jù)所述業(yè)務元數(shù)據(jù)對應的業(yè)務匹配關系進行業(yè)務適配,推導出所述靜態(tài)元數(shù)據(jù)。
9.如權利要求7所述的裝置,其特征在于,所述接入模塊,用于根據(jù)所述靜態(tài)元數(shù)據(jù)進行數(shù)據(jù)源適配,獲取所述目標數(shù)據(jù)庫的位置,根據(jù)所述位置登錄所述目標數(shù)據(jù)庫,并在所述目標數(shù)據(jù)庫中執(zhí)行建表操作,得到存儲所述業(yè)務數(shù)據(jù)的數(shù)據(jù)表項。
10.如權利要求9所述的裝置,其特征在于,所述接入模塊,具體用于根據(jù)數(shù)據(jù)庫規(guī)則和用戶提供的基本建表語句拼裝系統(tǒng)信息, 得到最終建表語句,使用所述最終建表語句執(zhí)行建表操作。
11.如權利要求9所述的裝置,其特征在于,所述接入模塊,還用于為所述數(shù)據(jù)表項增加分區(qū),并賦予用戶對所述數(shù)據(jù)表項的使用權限。
12.如權利要求7所述的裝置,其特征在于,所述導入模塊,用于通過與所述業(yè)務文件對應的后臺插件模板使用所述靜態(tài)元數(shù)據(jù), 生成可運行程序插件,并將所述可運行程序插件部署到對應的運行位置;在所述運行位置執(zhí)行所述可運行程序插件,對所述目標數(shù)據(jù)庫中的業(yè)務數(shù)據(jù)進行格式轉換,并將格式轉換后的數(shù)據(jù)導入到目標數(shù)據(jù)存儲區(qū)。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)導入方法,包括以下步驟獲取來自業(yè)務系統(tǒng)的業(yè)務文件,根據(jù)所述業(yè)務文件生成靜態(tài)元數(shù)據(jù)并接入所述業(yè)務系統(tǒng)對應的目標數(shù)據(jù)庫;使用所述靜態(tài)元數(shù)據(jù)對所述目標數(shù)據(jù)庫中的業(yè)務數(shù)據(jù)進行格式轉換,并將格式轉換后的數(shù)據(jù)導入到目標數(shù)據(jù)存儲區(qū)。通過使用本發(fā)明,提高了數(shù)據(jù)導入的準確性、易用性和效率。本發(fā)明同樣公開了一種應用上述方法的裝置。
文檔編號G06F17/30GK102236672SQ20101016415
公開日2011年11月9日 申請日期2010年5月6日 優(yōu)先權日2010年5月6日
發(fā)明者周小平, 楊曉青, 蒲剛 申請人:深圳市騰訊計算機系統(tǒng)有限公司