本發(fā)明涉及數(shù)據(jù)處理技術領域,特別涉及一種支持多數(shù)據(jù)類型的數(shù)據(jù)交換方法及系統(tǒng)。
背景技術:
目前,人們進入了一個信息高速傳播的時代。各行各業(yè)中都要面對各種類型的數(shù)據(jù),需要對不同類型數(shù)據(jù)進行處理和整合。隨著信息化的快速發(fā)展,數(shù)據(jù)的處理和整理也變得越來越復雜和困難,這些不同類型的數(shù)據(jù)之間的整合成了當前信息化發(fā)展道路上的難題。
在整合過程中,技術人員發(fā)現(xiàn)各類業(yè)務數(shù)據(jù)所用的數(shù)據(jù)庫以及數(shù)據(jù)類型都不盡相同,整合起來耗時耗力,整合效果也不盡如人意。現(xiàn)在數(shù)據(jù)整合一般是通過數(shù)據(jù)庫內(nèi)部的存儲過程以及定時器進行定時抽取,oracle系統(tǒng)利用自帶的dblink進行抽取,當數(shù)據(jù)庫類型不同的時候,直接將數(shù)據(jù)轉(zhuǎn)換為同一類型到臨時表,然后再進行執(zhí)行腳本同步。由于sql腳本以及存儲過程的編寫維護對維護人員的要求較高,成本也相應變高。同時由于網(wǎng)段ip的限制,導致數(shù)據(jù)不能及時的傳遞,數(shù)據(jù)傳遞的時效性比較差。
技術實現(xiàn)要素:
本發(fā)明的目的在于提供一種支持多數(shù)據(jù)類型的數(shù)據(jù)交換方法及系統(tǒng),以達到快速轉(zhuǎn)換傳遞數(shù)據(jù)的效果。
為實現(xiàn)以上目的,本發(fā)明第一方面,提供一種支持多數(shù)據(jù)類型的數(shù)據(jù)交換方法,該方法包括:
將kettle工具集成到web端后通過b/s架構編制生成ktr文件,并將生成的ktr文件以及ktr文件所屬的數(shù)據(jù)庫連接保存在資源庫中;
通過配置定時器來配置數(shù)據(jù)轉(zhuǎn)換任務執(zhí)行計劃;
基于dtc數(shù)據(jù)轉(zhuǎn)換技術,根據(jù)配置的數(shù)據(jù)轉(zhuǎn)換任務執(zhí)行計劃,調(diào)用資源庫中的ktr文件來執(zhí)行數(shù)據(jù)轉(zhuǎn)換任務。
進一步地,該方法還包括:
將多個數(shù)據(jù)轉(zhuǎn)換任務串聯(lián),并按照所述配置的數(shù)據(jù)轉(zhuǎn)換任務執(zhí)行計劃規(guī)定的順序執(zhí)行。
進一步地,該方法還包括:
對所述資源庫中的ktr文件進行管理,用以查看ktr文件的保存路徑和文件說明。
進一步地,該方法還包括:
對數(shù)據(jù)轉(zhuǎn)換任務的執(zhí)行過程及結果進行記錄,包括數(shù)據(jù)轉(zhuǎn)換任務執(zhí)行的開始時間、結束時間、執(zhí)行總條數(shù)以及執(zhí)行出錯條數(shù)。
進一步地,所述的數(shù)據(jù)轉(zhuǎn)換任務執(zhí)行計劃,包括:數(shù)據(jù)轉(zhuǎn)換任務的執(zhí)行時間以及循環(huán)計劃;
其中,循環(huán)計劃包括定點循環(huán)執(zhí)行和固定周期循環(huán)執(zhí)行。
進一步地,該方法還包括:
所述的集成到web端的kettle工具通過數(shù)據(jù)接口獲取數(shù)據(jù)轉(zhuǎn)換任務,并將執(zhí)行ktr文件后的數(shù)據(jù)保存在中間庫中。
進一步地,該方法還包括:
集成java的runnable多線程同步機制,同時執(zhí)行多條數(shù)據(jù)轉(zhuǎn)換任務。
第二方面,本發(fā)明提供一種支持多數(shù)據(jù)類型的數(shù)據(jù)交換系統(tǒng),該系統(tǒng)包括:與任務管理模塊連接的系統(tǒng)管理模塊,系統(tǒng)管理模塊配置維護人員來維護任務管理模塊;
任務管理模塊包括分別與任務管理單元的輸入端連接的計劃管理單元、資源庫,以及與資源庫輸入端連接的kettle編制單元;
kettle編制單元用于將kettle工具集成到web端后通過b/s架構編制生成ktr文件,并將生成的ktr文件以及ktr文件所屬的數(shù)據(jù)庫連接保存在資源庫中;
計劃管理單元用于通過配置定時器來配置數(shù)據(jù)轉(zhuǎn)換任務執(zhí)行計劃;
任務管理單元用于基于dtc數(shù)據(jù)轉(zhuǎn)換技術,根據(jù)計劃管理單元配置的數(shù)據(jù)轉(zhuǎn)換任務執(zhí)行計劃,調(diào)用資源庫中的ktr文件來執(zhí)行數(shù)據(jù)轉(zhuǎn)換任務。
進一步地,任務管理模塊還包括作業(yè)管理單元,用于將多個數(shù)據(jù)轉(zhuǎn)換任務進行串聯(lián)后執(zhí)行。
進一步地,任務管理模塊還包括與資源庫連接的文件管理單元、以及與任務管理單元連接的日志管理單元;
文件管理單元用于對資源庫中的ktr文件進行管理,用以查看ktr文件的保存路徑和文件說明;
日志管理單元用于對任務管理單元執(zhí)行數(shù)據(jù)轉(zhuǎn)換任務的過程及結果進行記錄,包括數(shù)據(jù)轉(zhuǎn)換任務執(zhí)行的開始時間、結束時間、執(zhí)行總條數(shù)以及執(zhí)行出錯條數(shù)。
與現(xiàn)有技術相比,本發(fā)明存在以下技術效果:本發(fā)明將kettle工具集成到web端,通過網(wǎng)頁編制ktr文件,并保存到資源庫,在調(diào)用的時候直接通過java實現(xiàn)ktr文件的執(zhí)行。與現(xiàn)有的直接通過kettle工具執(zhí)行kte文件相比,kettle工具執(zhí)行不用編寫具體的存儲,只要通過提供的數(shù)據(jù)接口獲取數(shù)據(jù)即可,由dtc提供定時器執(zhí)行ktr。因此不需要從數(shù)據(jù)庫內(nèi)部進行數(shù)據(jù)轉(zhuǎn)換,僅執(zhí)行查詢和保存兩步操作,極大的提高了數(shù)據(jù)庫之間的數(shù)據(jù)傳遞效率,降低了數(shù)據(jù)傳遞維護成本。
附圖說明
下面結合附圖,對本發(fā)明的具體實施方式進行詳細描述:
圖1是本發(fā)明中一種支持多數(shù)據(jù)類型的數(shù)據(jù)交換方法的流程示意圖;
圖2是本發(fā)明中一種支持多數(shù)據(jù)類型的數(shù)據(jù)交換系統(tǒng)的結構示意圖;
圖3是本發(fā)明中利用網(wǎng)頁編制生成ktr文件的過程示意圖;
圖4是本發(fā)明中對數(shù)據(jù)進行抽取轉(zhuǎn)換的過程示意圖;
圖5是本發(fā)明中任務管理模塊的結構示意圖;
圖6是本發(fā)明中對多個數(shù)據(jù)轉(zhuǎn)換任務串聯(lián)執(zhí)行的的過程示意圖;
圖7是本發(fā)明中任務管理模塊各單元的功能示意圖。
具體實施方式
為了更進一步說明本發(fā)明的特征,請參閱以下有關本發(fā)明的詳細說明與附圖。所附圖僅供參考與說明之用,并非用來對本發(fā)明的保護范圍加以限制。
如圖1所示,本實施例公開了一種支持多數(shù)據(jù)類型的數(shù)據(jù)交換方法,該方法包括如下步驟s1至s3:
s1、將kettle工具集成到web端后通過b/s架構編制生成ktr文件,并將生成的ktr文件以及ktr文件所屬的數(shù)據(jù)庫連接保存在資源庫中;
需要說明的是,在數(shù)據(jù)轉(zhuǎn)換過程中,直接從資源庫獲取ktr文件。在實際使用過程中,可以根據(jù)需求設置多個資源庫,比如,需要對ktr進行分類保存時,可建立多個資源庫保存ktr文件。
s2、通過配置定時器來配置數(shù)據(jù)轉(zhuǎn)換任務執(zhí)行計劃;
s3、基于dtc數(shù)據(jù)轉(zhuǎn)換技術,根據(jù)配置的數(shù)據(jù)轉(zhuǎn)換任務執(zhí)行計劃,調(diào)用資源庫中的ktr文件來執(zhí)行數(shù)據(jù)轉(zhuǎn)換任務。
需要說明的是,該處的dtc數(shù)據(jù)轉(zhuǎn)換技術與現(xiàn)有技術的數(shù)據(jù)交換過程相同,本實施例中在執(zhí)行數(shù)據(jù)轉(zhuǎn)換任務時是直接調(diào)用后臺的數(shù)據(jù)轉(zhuǎn)換功能來執(zhí)行ktr文件。
進一步地,該方法還包括:
將多條數(shù)據(jù)轉(zhuǎn)換任務串聯(lián),并按照所述配置的數(shù)據(jù)轉(zhuǎn)換任務執(zhí)行計劃規(guī)定的順序執(zhí)行。
需要說明的是,在處理數(shù)據(jù)時,通常會遇到數(shù)據(jù)的先后插入問題、因此,通過將不能并行執(zhí)行的數(shù)據(jù)轉(zhuǎn)換任務串聯(lián),即一個作業(yè)任務內(nèi)包括至少一條數(shù)據(jù)轉(zhuǎn)換任務,然后按照任務執(zhí)行計劃中規(guī)定的順序,依次執(zhí)行數(shù)據(jù)轉(zhuǎn)換任務,提高了數(shù)據(jù)的完整性。
同樣的,在執(zhí)行串聯(lián)的數(shù)據(jù)轉(zhuǎn)換任務時,也是通過調(diào)用后臺的數(shù)據(jù)轉(zhuǎn)換功能來執(zhí)行ktr文件。
進一步地,該方法還包括:
對所述資源庫中的ktr文件進行管理,用以查看ktr文件的保存路徑和文件說明。
進一步地,該方法還包括:
對數(shù)據(jù)轉(zhuǎn)換任務的執(zhí)行過程及結果進行記錄,包括數(shù)據(jù)轉(zhuǎn)換任務執(zhí)行的開始時間、結束時間、執(zhí)行總條數(shù)以及執(zhí)行出錯條數(shù)。
具體地,數(shù)據(jù)任務執(zhí)行的過程包括任務執(zhí)行開始時間和結束時間等,執(zhí)行過程包括執(zhí)行的總條數(shù)和執(zhí)行出錯條數(shù)等。本實施例通過對數(shù)據(jù)轉(zhuǎn)換任務的執(zhí)行過程及結果進行記錄,方便了維護人員對任務的查看和排錯。
進一步地,所述的數(shù)據(jù)轉(zhuǎn)換任務執(zhí)行計劃,包括:數(shù)據(jù)轉(zhuǎn)換任務的執(zhí)行時間以及循環(huán)計劃;其中,循環(huán)計劃包括定點循環(huán)執(zhí)行和固定周期循環(huán)執(zhí)行。
需要說明的是,在執(zhí)行數(shù)據(jù)轉(zhuǎn)換任務之前,首先要配置定時器,規(guī)定數(shù)據(jù)轉(zhuǎn)換任務執(zhí)行的計劃,本實施例中的定時控制數(shù)據(jù)轉(zhuǎn)換的時間單位小至毫秒,大至年,有利于提高數(shù)據(jù)的時效性,同時可以自動智能的執(zhí)行數(shù)據(jù)轉(zhuǎn)換任務。
進一步地,該方法還包括:
所述的集成到web端的kettle工具通過數(shù)據(jù)接口獲取數(shù)據(jù)轉(zhuǎn)換任務,并將執(zhí)行ktr文件后的數(shù)據(jù)保存在中間庫中。
需要說明的是,由于本發(fā)明首先編制好ktr文件,通過dtc系統(tǒng)進行定時轉(zhuǎn)換,因此將從其它業(yè)務系統(tǒng)數(shù)據(jù)庫中獲取的數(shù)據(jù)統(tǒng)一保存在中間庫中備用即可,在數(shù)據(jù)轉(zhuǎn)換任務執(zhí)行后產(chǎn)生的數(shù)據(jù)也保存在中間庫中。
進一步地,該方法還包括:
集成java的runnable多線程同步機制,同時執(zhí)行多條數(shù)據(jù)轉(zhuǎn)換任務。
需要說明的是,通過多線程同步機制,能同時執(zhí)行多條數(shù)據(jù)轉(zhuǎn)換任務,極大的提高了數(shù)據(jù)轉(zhuǎn)換效率。
本發(fā)明提供的一種支持多數(shù)據(jù)類型的數(shù)據(jù)交換方法具有如下有益效果:
(1)通過調(diào)用后臺的dtc數(shù)據(jù)轉(zhuǎn)換功能,對編制好的ktr執(zhí)行定時轉(zhuǎn)換,只需要將其它業(yè)務系統(tǒng)中的數(shù)據(jù)統(tǒng)一保存在中間庫中備用即可,不涉及數(shù)據(jù)庫內(nèi)部的存儲過程,提高了數(shù)據(jù)庫之間的數(shù)據(jù)傳遞效率;
(2)在編制ktr時,將不同數(shù)據(jù)類型的數(shù)據(jù)字段通過kettle數(shù)據(jù)轉(zhuǎn)換,根據(jù)需要輸出的數(shù)據(jù)類型進行配置,快速的實現(xiàn)不同數(shù)據(jù)類型的數(shù)據(jù)之間的轉(zhuǎn)換傳遞;
(3)本發(fā)明中的kettle工具是是集成到網(wǎng)頁上,不用編寫具體的存儲,只要通過提供的數(shù)據(jù)接口獲取其它業(yè)務系統(tǒng)的數(shù)據(jù),并通過插入直接保存在中間庫中,定時器由dtc提供執(zhí)行ktr,整個過程基本不從數(shù)據(jù)庫內(nèi)部進行數(shù)據(jù)轉(zhuǎn)換,僅執(zhí)行查詢和保存兩步操作即可,極大提升了數(shù)據(jù)轉(zhuǎn)換效率,達到快速轉(zhuǎn)換傳遞數(shù)據(jù)的效果。
(4)本發(fā)明中配置定時計劃以及配置ktr文件都是界面化的操作,操作過程簡單,降低了數(shù)據(jù)處理的維護成本。
(5)通過集成java的scheduledthreadpoolexecutor做定時任務,能做到下到微妙,上到年為周期的定時,周期設置靈活,執(zhí)行過程自動智能。
(6)通過集成java的runnable多線程集成技術,能同時執(zhí)行多條任務,相互之間不干擾,提高了數(shù)據(jù)轉(zhuǎn)換效率。
(7)采用數(shù)據(jù)轉(zhuǎn)換任務串聯(lián)執(zhí)行的作業(yè)機制,并由dtc后臺控制,保證了數(shù)據(jù)的完整性。
如圖2所示,本實施例提供了一種支持多數(shù)據(jù)類型的數(shù)據(jù)交換系統(tǒng),該系統(tǒng)包括:與任務管理模塊10連接的系統(tǒng)管理模塊20,系統(tǒng)管理模塊20配置維護人員來維護任務管理模塊10;
任務管理模塊10包括分別與任務管理單元11的輸入端連接的計劃管理單元12、資源庫14,以及與資源庫14輸入端連接的kettle編制單元13;
kettle編制單元13用于將kettle工具集成到web端后通過b/s架構編制生成ktr文件,并將生成的ktr文件以及ktr文件所屬的數(shù)據(jù)庫連接保存在資源庫14中;
計劃管理單元12用于通過配置定時器來配置數(shù)據(jù)轉(zhuǎn)換任務執(zhí)行計劃;
任務管理單元11用于基于dtc數(shù)據(jù)轉(zhuǎn)換技術,根據(jù)計劃管理單元12配置的數(shù)據(jù)轉(zhuǎn)換任務執(zhí)行計劃,調(diào)用資源庫14中的ktr文件來執(zhí)行數(shù)據(jù)轉(zhuǎn)換任務。
需要說明的是,系統(tǒng)管理模塊20的作用是配置人員角色以及配置菜單功能等,并配置不同維護人員來維護任務管理模塊10。
進一步地,如圖3所示,kettle本身是一個etl執(zhí)行工具程序,通過二次開發(fā)將kettle的功能集成到網(wǎng)頁,通過網(wǎng)頁進行編制ktr文件,并將編制好的ktr文件保存在資源庫14中,以提供給任務管理單元11添加執(zhí)行相應的數(shù)據(jù)轉(zhuǎn)換操作。
如圖4所示,任務管理單元11在進行數(shù)據(jù)轉(zhuǎn)換時,根據(jù)編制好的ktr文件和配置的任務執(zhí)行計劃,實現(xiàn)定時自動化執(zhí)行。
進一步地,
如圖5所示,任務管理模塊10還包括:作業(yè)管理單元15,用于將多個數(shù)據(jù)轉(zhuǎn)換任務進行串聯(lián)后執(zhí)行。
任務管理模塊10還包括:與資源庫14連接的文件管理單元16、以及與任務管理單元11連接的日志管理單元17;
文件管理單元16用于對資源庫14中的ktr文件進行管理,用以查看ktr文件的保存路徑和文件說明;
日志管理單元17用于對任務管理單元11執(zhí)行數(shù)據(jù)轉(zhuǎn)換任務的過程及結果進行記錄,包括數(shù)據(jù)轉(zhuǎn)換任務執(zhí)行的開始時間、結束時間、執(zhí)行總條數(shù)以及執(zhí)行出錯條數(shù)。
如圖6所示,作業(yè)管理單元15的作用就是添加一個作業(yè),作業(yè)中包含至少兩條數(shù)據(jù)轉(zhuǎn)換任務,然后串聯(lián)執(zhí)行,在數(shù)據(jù)轉(zhuǎn)換任務不能并行執(zhí)行時,保證了數(shù)據(jù)的完整性。另外,任務管理模塊10各單元的功能示意圖如圖7所示。
本系統(tǒng)核心是集成了java定時任務(scheduledthreadpoolexecutor),java多線程(runnable),java調(diào)用kettle執(zhí)行文件(kettleenvironment),以及頁面編制、資源庫保存和讀取等技術。從文檔編輯、定時執(zhí)行、作業(yè)執(zhí)行一體化的數(shù)據(jù)轉(zhuǎn)換處理系統(tǒng)。
以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。