專利名稱:基于數(shù)據(jù)庫(kù)服務(wù)間的通用數(shù)據(jù)同步系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本實(shí)用新型涉及應(yīng)用間數(shù)據(jù)文件交換和數(shù)據(jù)同步技術(shù)領(lǐng)域,特別是涉及一種基于數(shù)據(jù)庫(kù)服務(wù)間((即,數(shù)據(jù)庫(kù)服務(wù)器之間))的通用數(shù)據(jù)同步系統(tǒng)。
背景技術(shù):
現(xiàn)有應(yīng)用之間的數(shù)據(jù)傳輸技術(shù)主要有聯(lián)機(jī)接口和文件接口兩種方式,無(wú)論是對(duì)于聯(lián)機(jī)接口方式還是文件接口方式,若要實(shí)現(xiàn)數(shù)據(jù)同步,都需要上游應(yīng)用系統(tǒng)和下游應(yīng)用系統(tǒng)按照統(tǒng)一的規(guī)范和接口標(biāo)準(zhǔn)進(jìn)行定制,如果需要新增接口就需要上下游對(duì)該新增的接口定義格式,重新針對(duì)該接口定制數(shù)據(jù)生成、校驗(yàn)、導(dǎo)入等功能模塊,導(dǎo)致接口的擴(kuò)展性、靈活性差,且眾多接口間存在較多的共性部分,不能充分復(fù)用,造成計(jì)算機(jī)系統(tǒng)資源浪費(fèi)。另外,對(duì)于數(shù)據(jù)接收異常的情況,目前應(yīng)用間沒(méi)有實(shí)現(xiàn)統(tǒng)一的自動(dòng)化反饋處理機(jī)制,一般需要依賴某些人工介入的處理流程實(shí)現(xiàn)跳過(guò)或數(shù)據(jù)重新接收。在數(shù)據(jù)交換非常頻繁的情況下,可能會(huì)時(shí)常出現(xiàn)人工接管請(qǐng)求,而系統(tǒng)不能自適應(yīng)處理,導(dǎo)致數(shù)據(jù)準(zhǔn)確性和處理效率受到影響。
實(shí)用新型內(nèi)容本實(shí)用新型克服了現(xiàn)有數(shù)據(jù)傳輸同步技術(shù)中程序復(fù)用性弱、參數(shù)化程度低、無(wú)反饋機(jī)制等不足,提供一種復(fù)用性強(qiáng)、準(zhǔn)確度高、可參數(shù)化配置、并基本實(shí)現(xiàn)主輔數(shù)據(jù)源間準(zhǔn)實(shí)時(shí)的數(shù)據(jù)同步系統(tǒng)。本實(shí)用新型的基于數(shù)據(jù)庫(kù)服務(wù)間的通用數(shù)據(jù)同步系統(tǒng)包括發(fā)送端供數(shù)控制裝置,用于檢測(cè)各個(gè)導(dǎo)出任務(wù)是否滿足可供導(dǎo)出的條件,并執(zhí)行滿足條件的導(dǎo)出任務(wù);發(fā)送端數(shù)據(jù)存儲(chǔ)裝置,用于存儲(chǔ)發(fā)送端應(yīng)用的系統(tǒng)數(shù)據(jù)、數(shù)據(jù)庫(kù)程序及存放待發(fā)送的供數(shù)文件;文件傳輸裝置,用于將發(fā)送端應(yīng)用節(jié)點(diǎn)下,指定發(fā)送目錄中的文件傳送到接收端應(yīng)用節(jié)點(diǎn)的指定接收目錄;接收端文件檢測(cè)裝置,用于檢測(cè)接收端數(shù)據(jù)存儲(chǔ)裝置的接收目錄中是否有供數(shù)文件到達(dá),若存在,則向待處理任務(wù)批次列表中登記各個(gè)文件的屬性信息;接收端數(shù)據(jù)存儲(chǔ)裝置,用于存儲(chǔ)接收端應(yīng)用的系統(tǒng)數(shù)據(jù)及存放供數(shù)文件;接收端數(shù)據(jù)處理裝置,用于提取接收端文件檢測(cè)裝置登記的待處理任務(wù),執(zhí)行裝載導(dǎo)入。其中所述發(fā)送端供數(shù)控制裝置進(jìn)一步包括時(shí)間頻率檢測(cè)單元,其讀取各個(gè)導(dǎo)出任務(wù)的參數(shù)以及任務(wù)狀態(tài),并根據(jù)當(dāng)前時(shí)間點(diǎn)和任務(wù)的上次供數(shù)時(shí)間,篩選出需要執(zhí)行導(dǎo)出的任務(wù);查詢執(zhí)行單元,其取得經(jīng)過(guò)時(shí)間頻率檢測(cè)單元篩選后的任務(wù)的SQL語(yǔ)句,對(duì)SQL語(yǔ)句中的變量進(jìn)行綁定后執(zhí)行動(dòng)態(tài)查詢;模板轉(zhuǎn)化單元,其讀取導(dǎo)出任務(wù)對(duì)應(yīng)的模板格式,將查詢執(zhí)行單元所得的記錄以該格式進(jìn)行套用;文件生成單元,其將模板化后的屬性信息及查詢結(jié)果寫(xiě)入接口文件,寫(xiě)入完畢后根據(jù)該任務(wù)對(duì)應(yīng)的各個(gè)目標(biāo)應(yīng)用,分別復(fù)制到各自的發(fā)送目錄以及備份目錄;重發(fā)請(qǐng)求處理單元,用于接收并處理下游應(yīng)用因各種異常而反饋給該單元的重發(fā)請(qǐng)求,根據(jù)請(qǐng)求中的異常代碼,決定處理流程,重發(fā)數(shù)據(jù)文件。其中,接收端數(shù)據(jù)處理裝置進(jìn)一步包括任務(wù)獲取單元,其取得待處理、且前置依賴都已完成的導(dǎo)入任務(wù);數(shù)據(jù)裝載單元,其將供數(shù)文件數(shù)據(jù)寫(xiě)入到通用數(shù)據(jù)裝載表中;數(shù)據(jù)校驗(yàn)單元,其檢驗(yàn)文件的屬性信息是否正確;數(shù)據(jù)導(dǎo)入單元,其將通用數(shù)據(jù)裝載表中的未處理數(shù)據(jù)取出,按照事先配置的信息動(dòng)態(tài)地導(dǎo)入到目標(biāo)表中。應(yīng)用本實(shí)用新型的本實(shí)用新型的基于數(shù)據(jù)庫(kù)服務(wù)間的通用數(shù)據(jù)同步系統(tǒng),具有以下效果有效地解決了新增接口的重復(fù)編制問(wèn)題,減少了各類資源成本。通過(guò)本實(shí)用新型提供的方案,如果需要新增一項(xiàng)數(shù)據(jù)傳輸,只需要對(duì)數(shù)據(jù)同步任務(wù)及數(shù)據(jù)結(jié)構(gòu)屬性信息進(jìn)行配置,即可實(shí)現(xiàn)上下游數(shù)據(jù)的自動(dòng)同步,無(wú)需重新定制聯(lián)機(jī)接口或文件生成、裝載、導(dǎo)入等功能模塊,極大地減少了工作量,并顯著縮短了項(xiàng)目周期。滿足了應(yīng)用與應(yīng)用之間準(zhǔn)實(shí)時(shí)數(shù)據(jù)同步的需求,保證了數(shù)據(jù)準(zhǔn)確性。本實(shí)用新型以多線程輪詢的形式進(jìn)行定頻、定時(shí)供數(shù)任務(wù)執(zhí)行,實(shí)現(xiàn)了數(shù)據(jù)的準(zhǔn)實(shí)時(shí)傳輸。對(duì)數(shù)據(jù)生成和還原流程進(jìn)行不同程度的優(yōu)化,能夠穩(wěn)定、高效地完成大數(shù)據(jù)量的同步工作。同時(shí)通過(guò)一定規(guī)則的校驗(yàn),并配合數(shù)據(jù)異常重發(fā)請(qǐng)求機(jī)制,能夠?qū)?shù)據(jù)還原的準(zhǔn)確性有較強(qiáng)的保證。
圖1是本實(shí)用新型基于數(shù)據(jù)庫(kù)服務(wù)間的通用數(shù)據(jù)同步系統(tǒng)的結(jié)構(gòu)框圖。圖2是本實(shí)用新型的供數(shù)控制裝置結(jié)構(gòu)示意圖。圖3是本實(shí)用新型的數(shù)據(jù)處理裝置結(jié)構(gòu)示意圖。圖4是本實(shí)用新型的發(fā)送端數(shù)據(jù)導(dǎo)出流程圖。圖5是本實(shí)用新型的接收端文件檢測(cè)流程圖。圖6是本實(shí)用新型的接收端數(shù)據(jù)處理流程圖。
具體實(shí)施方式
為使本實(shí)用新型的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,并參照附圖,對(duì)本實(shí)用新型進(jìn)一步詳細(xì)說(shuō)明。本實(shí)用新型的基于數(shù)據(jù)庫(kù)服務(wù)間的通用數(shù)據(jù)同步系統(tǒng)的工作原理是將數(shù)據(jù)傳輸同步過(guò)程中可復(fù)用的部分進(jìn)行提取,并將個(gè)性化的部分轉(zhuǎn)換為參數(shù)配置,采用上游應(yīng)用表——文件——下游應(yīng)用表的途徑,實(shí)現(xiàn)數(shù)據(jù)同步。一般是將每張表的每種數(shù)據(jù)傳輸方式(增量、全量)分別作為一個(gè)傳輸任務(wù),使用者可通過(guò)配置傳輸任務(wù),在任務(wù)清單中設(shè)置上游應(yīng)用的源數(shù)據(jù)表、下游應(yīng)用的目的數(shù)據(jù)表、供數(shù)頻率(供數(shù)頻率描述的是兩次同步之間的時(shí)間間隔,頻率越高則實(shí)時(shí)性越強(qiáng))、數(shù)據(jù)傳輸方式、模板等參數(shù)。通過(guò)設(shè)置任務(wù)清單,可以實(shí)現(xiàn)多種典型的同步方案,例如,日間定頻率掃描源數(shù)據(jù)表,如有增量數(shù)據(jù)更新,則同步到下游應(yīng)用的目的表,日終定時(shí)進(jìn)行源表和目的表的全量同步。采用參數(shù)配置的形式,根據(jù)上下游應(yīng)用不同的需求定制合適的同步方案,主要的參數(shù)配置及設(shè)置依據(jù)有根據(jù)傳輸數(shù)據(jù)量的大小,在數(shù)據(jù)傳輸方式上,選擇增量、全量或者兩者結(jié)合的方式;根據(jù)對(duì)準(zhǔn)實(shí)時(shí)性能的要求,在性能允許的范圍內(nèi)設(shè)置任務(wù)的供數(shù)頻率和導(dǎo)入導(dǎo)出線程的數(shù)量;根據(jù)數(shù)據(jù)傳輸方向,設(shè)置文件發(fā)送目錄和接收文件的目標(biāo)應(yīng)用;根據(jù)數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),設(shè)置上下游的表名、字段名、主鍵名并建立對(duì)照關(guān)系。為了使數(shù)據(jù)在還原過(guò)程中保持準(zhǔn)確,本實(shí)用新型提供的同步方案,對(duì)每一個(gè)供數(shù)任務(wù)都分別設(shè)置一個(gè)序列的批次號(hào),上游應(yīng)用系統(tǒng)每次供數(shù)都要對(duì)生成的文件按升序指定一個(gè)批次號(hào),下游應(yīng)用在接收到數(shù)據(jù)文件后,分別對(duì)每個(gè)導(dǎo)入任務(wù),按批次號(hào)的順序,采用一定的邏輯判斷有無(wú)存在沖突的數(shù)據(jù),最后對(duì)數(shù)據(jù)進(jìn)行一定規(guī)則的校驗(yàn),校驗(yàn)通過(guò)后才進(jìn)行導(dǎo)入,若出現(xiàn)批次號(hào)不連續(xù)、校驗(yàn)失敗或?qū)氤鲥e(cuò)等情況,下游應(yīng)用會(huì)發(fā)起有限次數(shù)的數(shù)據(jù)重發(fā)請(qǐng)求,上游應(yīng)用接收請(qǐng)求并重新生成和發(fā)送文件,機(jī)制上能夠充分保證主輔數(shù)據(jù)源間數(shù)據(jù)一致性的原則。圖1是本實(shí)用新型數(shù)據(jù)庫(kù)服務(wù)間的通用數(shù)據(jù)同步系統(tǒng)結(jié)構(gòu)示意圖,參照?qǐng)D1,該系統(tǒng)包括發(fā)送端供數(shù)控制裝置1、發(fā)送端數(shù)據(jù)存儲(chǔ)裝置2、文件傳輸裝置3、接收端文件檢測(cè)裝置4、接收端數(shù)據(jù)存儲(chǔ)裝置5和接收端數(shù)據(jù)處理裝置6。在實(shí)際應(yīng)用中,發(fā)送端和接收端并不局限于一對(duì)一,可以是多個(gè)主數(shù)據(jù)源和輔數(shù)據(jù)源的任意組合。發(fā)送端供數(shù)控制裝置I可以是一種通過(guò)批量調(diào)度工具實(shí)現(xiàn)的輪詢?cè)O(shè)備,用于檢測(cè)各個(gè)導(dǎo)出任務(wù)是否滿足可供導(dǎo)出的條件,并執(zhí)行滿足條件的導(dǎo)出任務(wù)(即,被導(dǎo)出的任務(wù)),從發(fā)送端數(shù)據(jù)存儲(chǔ)裝置2獲取數(shù)據(jù),經(jīng)過(guò)處理后生成一定格式的文件。圖2為發(fā)送端供數(shù)控制裝置I的邏輯結(jié)構(gòu)圖。參照?qǐng)D2,發(fā)送端供數(shù)控制裝置I包括時(shí)間頻率檢測(cè)單元11、查詢執(zhí)行單元12、模板轉(zhuǎn)化單元13、文件生成單元14和重發(fā)請(qǐng)求處理單元15。時(shí)間頻率檢測(cè)單元11用于讀取各個(gè)導(dǎo)出任務(wù)的間隔時(shí)間、單位等參數(shù)以及任務(wù)狀態(tài),并根據(jù)當(dāng)前時(shí)間點(diǎn)和任務(wù)的上次供數(shù)時(shí)間,篩選出需要執(zhí)行導(dǎo)出的任務(wù),例如,篩選條件為任務(wù)狀態(tài)為空閑,且上次供數(shù)時(shí)間+供數(shù)時(shí)間間隔 < 當(dāng)前時(shí)間。查詢執(zhí)行單元12用于取得經(jīng)過(guò)時(shí)間頻率檢測(cè)單元11篩選后的任務(wù)的SQL語(yǔ)句,對(duì)SQL語(yǔ)句中的變量進(jìn)行綁定后執(zhí)行動(dòng)態(tài)查詢。模板轉(zhuǎn)化單元13用于讀取導(dǎo)出任務(wù)對(duì)應(yīng)的模板格式,將查詢執(zhí)行單元12所得的記錄以該格式進(jìn)行套用。文件生成單元14用于將模板化后的屬性信息及查詢結(jié)果寫(xiě)入接口文件,寫(xiě)入完畢后根據(jù)該任務(wù)對(duì)應(yīng)的各個(gè)目標(biāo)應(yīng)用,分別復(fù)制到各目標(biāo)應(yīng)用的發(fā)送目錄以及備份目錄。重發(fā)請(qǐng)求處理單元15用于接收并處理下游應(yīng)用因各種異常而反饋給該單元的重發(fā)請(qǐng)求,根據(jù)請(qǐng)求中的異常代碼,決定處理流程,重發(fā)數(shù)據(jù)文件。例如若下游出現(xiàn)了不連續(xù)的批次號(hào),則從備份目錄中獲取丟失的批次號(hào)對(duì)應(yīng)的文件進(jìn)行重發(fā);若下游數(shù)據(jù)行數(shù)校驗(yàn)出現(xiàn)異常,則按照原條件,重新生成數(shù)據(jù)文件并發(fā)送。發(fā)送端數(shù)據(jù)存儲(chǔ)裝置2可以是一臺(tái)數(shù)據(jù)庫(kù)服務(wù)器,是數(shù)據(jù)同步的主數(shù)據(jù)源,用于存儲(chǔ)發(fā)送端應(yīng)用的系統(tǒng)數(shù)據(jù)、數(shù)據(jù)庫(kù)程序及存放待發(fā)送的供數(shù)文件,供數(shù)文件即上游生成供給下游的,以一定格式存放同步數(shù)據(jù)的文件。文件傳輸裝置3起到企業(yè)數(shù)據(jù)總線的作用,在企業(yè)內(nèi)部網(wǎng)絡(luò)的各應(yīng)用系統(tǒng)之間提供自動(dòng)化點(diǎn)對(duì)點(diǎn)傳輸服務(wù),負(fù)責(zé)將發(fā)送端應(yīng)用節(jié)點(diǎn)下,指定發(fā)送目錄中的文件傳送到接收端應(yīng)用節(jié)點(diǎn)的指定接收目錄。接收端文件檢測(cè)裝置4負(fù)責(zé)檢測(cè)接收端數(shù)據(jù)存儲(chǔ)裝置5的接收目錄中是否有供數(shù)文件到達(dá),若存在,則向待處理任務(wù)批次列表中登記各個(gè)文件的屬性信息。接收端數(shù)據(jù)存儲(chǔ)裝置5可以是一臺(tái)數(shù)據(jù)庫(kù)服務(wù)器,是數(shù)據(jù)同步的輔數(shù)據(jù)源,用于存儲(chǔ)接收端應(yīng)用的系統(tǒng)數(shù)據(jù)及存放供數(shù)文件。[0032]接收端數(shù)據(jù)處理裝置6可以是一種通過(guò)批量調(diào)度程序?qū)崿F(xiàn)的輪詢?cè)O(shè)備,提取文件檢測(cè)裝置4登記的待處理任務(wù),執(zhí)行裝載導(dǎo)入。圖3為接收端數(shù)據(jù)處理裝置6的邏輯結(jié)構(gòu)框圖。參照?qǐng)D3,數(shù)據(jù)處理裝置6任務(wù)獲取單元61、數(shù)據(jù)裝載單元62、數(shù)據(jù)校驗(yàn)單元63和數(shù)據(jù)導(dǎo)入單元64。任務(wù)獲取單元61用于取得待處理、且前置依賴都已完成的導(dǎo)入任務(wù),其中前置依賴是指向同一張表進(jìn)行數(shù)據(jù)導(dǎo)入,且文件生成時(shí)間早于該任務(wù)的任務(wù)為前置依賴。例如,對(duì)于向某個(gè)任務(wù)A來(lái)說(shuō),若存在另一個(gè)任務(wù)B也要向該張表導(dǎo)入數(shù)據(jù),且任務(wù)B對(duì)應(yīng)的文件生成更早,則任務(wù)B為任務(wù)A的前置依賴。數(shù)據(jù)裝載單元62負(fù)責(zé)將供數(shù)文件數(shù)據(jù)寫(xiě)入到通用數(shù)據(jù)裝載表中。數(shù)據(jù)校驗(yàn)單元63用于檢驗(yàn)文件格式、行數(shù)等屬性信息是否正確。數(shù)據(jù)導(dǎo)入單元64負(fù)責(zé)將通用數(shù)據(jù)裝載表中的未處理數(shù)據(jù)取出,按照事先配置的目標(biāo)表名、字段名和主鍵等信息動(dòng)態(tài)地導(dǎo)入到目標(biāo)表中。本實(shí)用新型的數(shù)據(jù)庫(kù)服務(wù)間的通用數(shù)據(jù)同步系統(tǒng)的工作流程包括以下步驟步驟一,發(fā)送端數(shù)據(jù)導(dǎo)出步驟,在該步驟,發(fā)送端供數(shù)控制裝置I取得并執(zhí)行供數(shù)任務(wù),將查詢結(jié)果集按照設(shè)定模板的格式,生成數(shù)據(jù)文件。步驟二,檢測(cè)接收端文件,文件檢測(cè)裝置4按照一定的文件名規(guī)則檢測(cè)文件,若文件到達(dá)則進(jìn)行屬性解析和登記,生成導(dǎo)入任務(wù)。步驟三,導(dǎo)入接收端數(shù)據(jù),數(shù)據(jù)處理裝置6獲取待處理導(dǎo)入任務(wù),將數(shù)據(jù)文件進(jìn)行裝載,按一定的規(guī)則校驗(yàn)通過(guò)后,向目標(biāo)表進(jìn)行導(dǎo)入。圖4為發(fā)送端數(shù)據(jù)導(dǎo)出步驟的詳細(xì)流程圖。參照?qǐng)D4,在步驟101,供數(shù)控制裝置I的時(shí)間頻率檢測(cè)單元11判斷是否有任務(wù)的上次供數(shù)時(shí)間+供數(shù)間隔時(shí)間小于等于系統(tǒng)當(dāng)前時(shí)間,若有,按上次執(zhí)行時(shí)間從小到大排序,取得第一條任務(wù),轉(zhuǎn)到步驟102,否則,重復(fù)步驟101。在步驟102,供數(shù)控制裝置I將取得的任務(wù)的狀態(tài)設(shè)為“正在處理”,避免該裝置另外的線程取到該條任務(wù)。在步驟103,供數(shù)控制裝置I判斷所取任務(wù)的供數(shù)方式為增量還是全量,若是全量,則轉(zhuǎn)到步驟104,若是增量,則轉(zhuǎn)到步驟105。在步驟104,查詢執(zhí)行單元12取得導(dǎo)出配置中的查詢語(yǔ)句,驗(yàn)證語(yǔ)句的合法性,解析查詢結(jié)果列的屬性信息,而后執(zhí)行查詢語(yǔ)句,轉(zhuǎn)到步驟108。在步驟105,供數(shù)控制裝置I獲取增量任務(wù)的上次供數(shù)時(shí)間和當(dāng)前系統(tǒng)時(shí)間,將這兩個(gè)時(shí)間變量綁定到動(dòng)態(tài)查詢語(yǔ)句中,將查詢結(jié)果限定在這兩個(gè)時(shí)間點(diǎn)之間修改或新增的記錄。在步驟106,查詢執(zhí)行單元12驗(yàn)證查詢語(yǔ)句的合法性,解析查詢結(jié)果列的屬性信息,而后執(zhí)行查詢語(yǔ)句。在步驟107,查詢執(zhí)行單元12檢查執(zhí)行后的查詢結(jié)果,判斷是否存在結(jié)果集,若存在,則轉(zhuǎn)到步驟108,若不存在,則轉(zhuǎn)到步驟111。在步驟108,根據(jù)步驟104或106中獲得的查詢結(jié)果列屬性信息,以一定的轉(zhuǎn)換規(guī)則,對(duì)查詢到的非字符串類型的列進(jìn)行格式轉(zhuǎn)換。在步驟109,模板轉(zhuǎn)化單元13查詢導(dǎo)出任務(wù)對(duì)應(yīng)的模板號(hào),若為標(biāo)準(zhǔn)模板,則將屬性信息和查詢結(jié)果數(shù)據(jù)套用于固定的模板規(guī)范,若不為標(biāo)準(zhǔn)模板,則取得該模板號(hào)對(duì)應(yīng)的文件名、擴(kuò)展名、文件頭信息格式、文件記錄格式、文件尾信息格式,將屬性信息和查詢結(jié)果數(shù)據(jù)套用于以上模板。在步驟110,文件生成單元14將步驟109模板化后的屬性信息及查詢結(jié)果寫(xiě)入接口文件,寫(xiě)入完畢后根據(jù)該任務(wù)對(duì)應(yīng)的各個(gè)目標(biāo)應(yīng)用,分別復(fù)制到不同的目標(biāo)目錄。在步驟111,如上述步驟執(zhí)行成功,供數(shù)控制裝置I將取得的任務(wù)的狀態(tài)設(shè)為“空閑”,最后供數(shù)時(shí)間和上次執(zhí)行時(shí)間設(shè)為步驟104或106中執(zhí)行查詢語(yǔ)句的系統(tǒng)時(shí)間,當(dāng)前批次號(hào)設(shè)為原批次號(hào)+1。若供數(shù)任務(wù)執(zhí)行過(guò)程中有異常發(fā)生,則不更新最后供數(shù)時(shí)間和批次號(hào),只更新任務(wù)狀態(tài)和上次執(zhí)行時(shí)間,使該任務(wù)落到隊(duì)列的尾部,先保證其余任務(wù)的執(zhí)行,避免一直異常,占用導(dǎo)出線程。完成后轉(zhuǎn)到步驟101,循環(huán)執(zhí)行上述步驟。圖5為接收端文件檢測(cè)過(guò)程流程圖,參照?qǐng)D5,具體步驟包括步驟201,文件檢測(cè)裝置4檢查文件傳輸接收目錄,若存在符合一定規(guī)則文件名的數(shù)據(jù)文件,則轉(zhuǎn)到步驟202,若不存在,則重復(fù)執(zhí)行步驟201 ;步驟202,對(duì)于步驟201中檢測(cè)到的每一個(gè)文件,文件檢測(cè)裝置4讀取文件中的屬性信息,包括來(lái)源應(yīng)用、任務(wù)號(hào)、批次號(hào)、行數(shù)、導(dǎo)出時(shí)間等信息,然后將上述信息作為一條導(dǎo)入任務(wù),登記到導(dǎo)入批次狀態(tài)列表中,任務(wù)狀態(tài)為“待處理”;步驟203,文件檢測(cè)裝置4將步驟202中登記成功的文件,移動(dòng)到文件系統(tǒng)中的待裝載目錄;完成后轉(zhuǎn)到步驟201,循環(huán)執(zhí)行上述步驟。圖6為接收端數(shù)據(jù)導(dǎo)入過(guò)程流程圖,其具體步驟如下步驟301,任務(wù)獲取單元61查詢導(dǎo)入批次狀態(tài)列表,檢查是否有任務(wù)狀態(tài)為“待處理”的任務(wù),若有,則轉(zhuǎn)到步驟302,否則,重復(fù)步驟301 ;步驟302,任務(wù)獲取單元61選擇導(dǎo)入批次狀態(tài)列表中待處理的一個(gè)任務(wù)號(hào),若該任務(wù)號(hào)有多條待處理任務(wù),則選擇批次號(hào)最小的任務(wù);步驟303,任務(wù)獲取單元61查詢導(dǎo)入批次狀態(tài)列表中批次號(hào)為上一批次的同號(hào)任務(wù),檢查其狀態(tài)是否為“已完成”,若是,則轉(zhuǎn)到步驟305,否則,轉(zhuǎn)到步驟304 ;步驟304,任務(wù)獲取單元61讀取系統(tǒng)中設(shè)置的超時(shí)時(shí)間I以及重發(fā)時(shí)間閾值,檢查當(dāng)前系統(tǒng)時(shí)間減去任務(wù)登記時(shí)間是否大于超時(shí)時(shí)間1,若是,則轉(zhuǎn)到步驟305,否則,轉(zhuǎn)到步驟301,在轉(zhuǎn)到步驟301之前,如果該任務(wù)沒(méi)有發(fā)送過(guò)重發(fā)請(qǐng)求且超過(guò)了重發(fā)時(shí)間閾值,則根據(jù)該異常情況生成異常代碼,向來(lái)源應(yīng)用發(fā)起一個(gè)重發(fā)請(qǐng)求;步驟305,任務(wù)獲取單元61查詢導(dǎo)入任務(wù)定義中與該任務(wù)有依賴或沖突的任務(wù)號(hào),檢查導(dǎo)入批次狀態(tài)列表中是否存在導(dǎo)出時(shí)間早于該任務(wù)、且導(dǎo)入未完成的沖突任務(wù),若不存在,則轉(zhuǎn)到步驟307,否則,轉(zhuǎn)到步驟306 ;步驟306,任務(wù)獲取單元61讀取系統(tǒng)中設(shè)置的超時(shí)時(shí)間2,檢查當(dāng)前系統(tǒng)時(shí)間減去任務(wù)登記時(shí)間是否大于超時(shí)時(shí)間2,若是,則轉(zhuǎn)到步驟307,否則轉(zhuǎn)到步驟301 ;步驟307,數(shù)據(jù)裝載單元62根據(jù)任務(wù)獲取單元61得到的任務(wù),讀取該任務(wù)在待裝載目錄中的對(duì)應(yīng)文件,利用數(shù)據(jù)加載工具,將文件數(shù)據(jù)裝載進(jìn)通用數(shù)據(jù)裝載表中,并將文件轉(zhuǎn)移到歸檔目錄,以備后續(xù)追蹤和關(guān)聯(lián)分析;步驟308,數(shù)據(jù)校驗(yàn)單元63對(duì)通用數(shù)據(jù)裝載表中的數(shù)據(jù)和導(dǎo)入批次狀態(tài)列表中的屬性信息進(jìn)行校驗(yàn);步驟309,數(shù)據(jù)導(dǎo)入單元64讀取通用數(shù)據(jù)裝載表中的數(shù)據(jù),以及字段對(duì)應(yīng)關(guān)系表設(shè)置的字段名、格式、主鍵等信息,若該任務(wù)供數(shù)方式是全量,則刪除目標(biāo)表數(shù)據(jù)后進(jìn)行Insert操作,若是增量,則根據(jù)主鍵信息,對(duì)新舊數(shù)據(jù)進(jìn)行Merge操作;步驟310,數(shù)據(jù)處理裝置6將導(dǎo)入批次狀態(tài)列表中的任務(wù)狀態(tài)設(shè)為“已完成”,將通用數(shù)據(jù)裝載表中的數(shù)據(jù)標(biāo)記為“已處理”。完成后轉(zhuǎn)到步驟301,循環(huán)執(zhí)行上述步驟。以上步驟若出現(xiàn)異常,若是原因在于來(lái)源應(yīng)用或文件傳輸服務(wù),則數(shù)據(jù)處理裝置6根據(jù)具體的異常情況生成異常代碼,向來(lái)源應(yīng)用發(fā)起重發(fā)請(qǐng)求。本實(shí)用新型的基于數(shù)據(jù)庫(kù)服務(wù)間的通用數(shù)據(jù)同步系統(tǒng)具有以下效果有效地解決了新增接口的重復(fù)編制問(wèn)題,減少了各類資源成本。通過(guò)本實(shí)用新型提供的方案,如果需要新增一項(xiàng)數(shù)據(jù)傳輸,只需要對(duì)數(shù)據(jù)同步任務(wù)及數(shù)據(jù)結(jié)構(gòu)屬性信息進(jìn)行配置,即可實(shí)現(xiàn)上下游數(shù)據(jù)的自動(dòng)同步,無(wú)需重新定制聯(lián)機(jī)接口或文件生成、裝載、導(dǎo)入等功能模塊,極大地減少了工作量,并顯著縮短了項(xiàng)目周期。滿足了應(yīng)用與應(yīng)用之間準(zhǔn)實(shí)時(shí)數(shù)據(jù)同步的需求,保證了數(shù)據(jù)準(zhǔn)確性。本實(shí)用新型以多線程輪詢的形式進(jìn)行定頻、定時(shí)供數(shù)任務(wù)執(zhí)行,實(shí)現(xiàn)了數(shù)據(jù)的準(zhǔn)實(shí)時(shí)傳輸。對(duì)數(shù)據(jù)生成和還原流程進(jìn)行不同程度的優(yōu)化,能夠穩(wěn)定、高效地完成大數(shù)據(jù)量的同步工作。同時(shí)通過(guò)一定規(guī)則的校驗(yàn),并配合數(shù)據(jù)異常重發(fā)請(qǐng)求機(jī)制,能夠?qū)?shù)據(jù)還原的準(zhǔn)確性有較強(qiáng)的保證。以上所述的具體實(shí)施例,對(duì)本實(shí)用新型的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說(shuō)明,應(yīng)理解的是,以上所述僅為本實(shí)用新型的具體實(shí)施例而已,并不用于限制本實(shí)用新型,凡在本實(shí)用新型的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本實(shí)用新型的保護(hù)范圍之內(nèi)。
權(quán)利要求1.一種基于數(shù)據(jù)庫(kù)服務(wù)間的通用數(shù)據(jù)同步系統(tǒng),其特征在于,該系統(tǒng)包括 發(fā)送端供數(shù)控制裝置,其連接發(fā)送端數(shù)據(jù)存儲(chǔ)裝置,檢測(cè)各個(gè)導(dǎo)出任務(wù)是否滿足可供導(dǎo)出的條件,并執(zhí)行滿足條件的導(dǎo)出任務(wù); 發(fā)送端數(shù)據(jù)存儲(chǔ)裝置,其連接發(fā)送端供數(shù)控制裝置和文件傳輸裝置,用于存儲(chǔ)發(fā)送端應(yīng)用的系統(tǒng)數(shù)據(jù)、數(shù)據(jù)庫(kù)程序及存放待發(fā)送的供數(shù)文件; 文件傳輸裝置,其連接發(fā)送端數(shù)據(jù)存儲(chǔ)裝置和接收端數(shù)據(jù)存儲(chǔ)裝置,用于將發(fā)送端應(yīng)用節(jié)點(diǎn)下,指定發(fā)送目錄中的文件傳送到接收端應(yīng)用節(jié)點(diǎn)的指定接收目錄; 接收端數(shù)據(jù)存儲(chǔ)裝置,其連接文件傳輸裝置、接收端文件檢測(cè)裝置和接收端數(shù)據(jù)處理裝置,用于存儲(chǔ)接收端應(yīng)用的系統(tǒng)數(shù)據(jù)及存放供數(shù)文件; 接收端文件檢測(cè)裝置,其連接接收端數(shù)據(jù)存儲(chǔ)裝置,用于檢測(cè)接收端數(shù)據(jù)存儲(chǔ)裝置的接收目錄中是否有供數(shù)文件到達(dá),若存在,則向待處理任務(wù)批次列表中登記各個(gè)文件的屬性信息; 接收端數(shù)據(jù)處理裝置,其連接接收端數(shù)據(jù)存儲(chǔ)裝置,用于提取接收端文件檢測(cè)裝置登記的待處理任務(wù),執(zhí)行裝載導(dǎo)入。
專利摘要本實(shí)用新型公開(kāi)了一種基于數(shù)據(jù)庫(kù)服務(wù)間的通用數(shù)據(jù)同步系統(tǒng),包括發(fā)送端供數(shù)控制裝置,用于檢測(cè)各個(gè)導(dǎo)出任務(wù)是否滿足可供導(dǎo)出的條件,并執(zhí)行滿足條件的導(dǎo)出任務(wù);文件傳輸裝置,用于將發(fā)送端應(yīng)用節(jié)點(diǎn)下,指定發(fā)送目錄中的文件傳送到接收端應(yīng)用節(jié)點(diǎn)的指定接收目錄;接收端文件檢測(cè)裝置,用于檢測(cè)接收端數(shù)據(jù)存儲(chǔ)裝置的接收目錄中是否有供數(shù)文件到達(dá);接收端數(shù)據(jù)處理裝置,用于提取接收端文件檢測(cè)裝置登記的待處理任務(wù),執(zhí)行裝載導(dǎo)入。應(yīng)用本實(shí)用新型能夠有效地解決了新增接口的重復(fù)編制問(wèn)題,減少了各類資源成本。
文檔編號(hào)G06F17/30GK202838327SQ20122019590
公開(kāi)日2013年3月27日 申請(qǐng)日期2012年4月28日 優(yōu)先權(quán)日2012年4月28日
發(fā)明者鄒沙豪, 許宜, 楊煜杰, 王雍, 潘玉峰, 李寧 申請(qǐng)人:中國(guó)工商銀行股份有限公司