本發(fā)明涉及數(shù)據(jù)倉(cāng)庫(kù)技術(shù),尤其涉及一種數(shù)據(jù)處理方法和系統(tǒng)。
背景技術(shù):
數(shù)據(jù)倉(cāng)庫(kù)技術(shù)ETL是用來(lái)描述將數(shù)據(jù)從源端經(jīng)過(guò)抽取(Extract)、清洗(Cleaning)、轉(zhuǎn)換(Transform)、加載(Load)到目的端的過(guò)程,屬于構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)的重要一環(huán)。
ETL可以看成是一個(gè)鏈?zhǔn)降墓ぷ髁鳎慨?dāng)有接口數(shù)據(jù)到達(dá)時(shí),依次對(duì)所述接口數(shù)據(jù)進(jìn)行清洗、轉(zhuǎn)換、加載、數(shù)據(jù)抽取等處理。在實(shí)際應(yīng)用中,傳統(tǒng)的ETL通常根據(jù)接口傳輸?shù)奶匦?,采用定時(shí)驅(qū)動(dòng)的方式對(duì)接口數(shù)據(jù)進(jìn)行鏈?zhǔn)竭\(yùn)算,如每天晚上八點(diǎn)運(yùn)算接口A數(shù)據(jù)。這樣,當(dāng)一個(gè)ETL任務(wù)鏈運(yùn)行完成后,當(dāng)接口A數(shù)據(jù)發(fā)生變更需要重傳時(shí),傳統(tǒng)ETL要求維護(hù)人員手動(dòng)進(jìn)行后續(xù)的數(shù)據(jù)重算工作,如對(duì)接口數(shù)據(jù)的清洗、轉(zhuǎn)換、加載、數(shù)據(jù)抽取等,即采用人工干預(yù)的方式來(lái)處理后續(xù)的數(shù)據(jù)重算工作,這將給ETL維護(hù)人員帶來(lái)很大程度上的麻煩。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明實(shí)施例期望提供一種數(shù)據(jù)處理方法和系統(tǒng),當(dāng)接口數(shù)據(jù)發(fā)生變更需要重傳時(shí),能在無(wú)需人工干預(yù)的情況下智能完成數(shù)據(jù)重算工作。
為達(dá)到上述目的,本發(fā)明實(shí)施例的技術(shù)方案是這樣實(shí)現(xiàn)的:
本發(fā)明實(shí)施例提供一種數(shù)據(jù)處理方法,所述方法包括:
當(dāng)檢測(cè)有第一數(shù)據(jù)文件時(shí),下載所述第一數(shù)據(jù)文件,所述第一數(shù)據(jù)文件為需要重傳的數(shù)據(jù)文件;
對(duì)所述第一數(shù)據(jù)文件進(jìn)行轉(zhuǎn)換加載處理,得到第二數(shù)據(jù)文件;
根據(jù)觸發(fā)重算規(guī)則確定所述第二數(shù)據(jù)文件滿足重算條件時(shí),執(zhí)行對(duì)所述第 二數(shù)據(jù)文件的重算操作。
上述方案中,所述檢測(cè)有第一數(shù)據(jù)文件包括:
根據(jù)預(yù)設(shè)的配置信息篩選出符合規(guī)則的數(shù)據(jù)文件;
判斷所述數(shù)據(jù)文件是否已發(fā)生變更;
當(dāng)所述數(shù)據(jù)文件已發(fā)生變更時(shí),確定所述數(shù)據(jù)文件為第一數(shù)據(jù)文件。
上述方案中,所述對(duì)所述第一數(shù)據(jù)文件進(jìn)行轉(zhuǎn)換加載處理,得到第二數(shù)據(jù)文件,包括:
對(duì)所述第一數(shù)據(jù)文件進(jìn)行轉(zhuǎn)換處理,得到轉(zhuǎn)換處理后的數(shù)據(jù)文件;
對(duì)所述轉(zhuǎn)換處理后的數(shù)據(jù)文件進(jìn)行加載處理,得到第二數(shù)據(jù)文件。
上述方案中,所述對(duì)所述第一數(shù)據(jù)文件進(jìn)行轉(zhuǎn)換處理,得到轉(zhuǎn)換處理后的數(shù)據(jù)文件,包括:
獲取對(duì)應(yīng)于所述第一數(shù)據(jù)文件的轉(zhuǎn)換策略;
根據(jù)所述轉(zhuǎn)換策略對(duì)所述第一數(shù)據(jù)文件進(jìn)行轉(zhuǎn)換處理,得到轉(zhuǎn)換處理后的數(shù)據(jù)文件。
上述方案中,所述對(duì)所述轉(zhuǎn)換處理后的數(shù)據(jù)文件進(jìn)行加載處理,得到第二數(shù)據(jù)文件,包括:
將所述轉(zhuǎn)換處理后的數(shù)據(jù)文件和數(shù)據(jù)庫(kù)表字段進(jìn)行加載處理,得到第二數(shù)據(jù)文件。
本發(fā)明實(shí)施例還提供一種數(shù)據(jù)處理系統(tǒng),所述系統(tǒng)包括:文件傳輸協(xié)議FTP掃描器、文件掃描器和存儲(chǔ)過(guò)程觸發(fā)器;
所述FTP掃描器,用于當(dāng)檢測(cè)有第一數(shù)據(jù)文件時(shí),下載所述第一數(shù)據(jù)文件,所述第一數(shù)據(jù)文件為需要重傳的數(shù)據(jù)文件;
所述文件掃描器,用于對(duì)所述第一數(shù)據(jù)文件進(jìn)行轉(zhuǎn)換加載處理,得到第二數(shù)據(jù)文件;
所述存儲(chǔ)過(guò)程觸發(fā)器,用于根據(jù)觸發(fā)重算規(guī)則確定所述第二數(shù)據(jù)文件滿足重算條件時(shí),執(zhí)行對(duì)所述第二數(shù)據(jù)文件的重算操作。
上述方案中,所述FTP掃描器,用于根據(jù)預(yù)設(shè)的配置信息篩選出符合規(guī)則 的數(shù)據(jù)文件;判斷所述數(shù)據(jù)文件是否已發(fā)生變更;當(dāng)所述數(shù)據(jù)文件已發(fā)生變更時(shí),確定所述數(shù)據(jù)文件為第一數(shù)據(jù)文件。
上述方案中,所述文件掃描器包括轉(zhuǎn)換掃描器和加載掃描器;
所述轉(zhuǎn)換掃描器,用于對(duì)所述第一數(shù)據(jù)文件進(jìn)行轉(zhuǎn)換處理,得到轉(zhuǎn)換處理后的數(shù)據(jù)文件;
所述加載掃描器,用于對(duì)所述轉(zhuǎn)換處理后的數(shù)據(jù)文件進(jìn)行加載處理,得到第二數(shù)據(jù)文件。
上述方案中,所述轉(zhuǎn)換掃描器,用于獲取對(duì)應(yīng)于所述第一數(shù)據(jù)文件的轉(zhuǎn)換策略;根據(jù)所述轉(zhuǎn)換策略對(duì)所述第一數(shù)據(jù)文件進(jìn)行轉(zhuǎn)換處理,得到轉(zhuǎn)換處理后的數(shù)據(jù)文件。
上述方案中,所述加載掃描器,用于將所述轉(zhuǎn)換處理后的數(shù)據(jù)文件和數(shù)據(jù)庫(kù)表字段進(jìn)行加載處理,得到第二數(shù)據(jù)文件。
本發(fā)明實(shí)施例所提供的數(shù)據(jù)處理方法和系統(tǒng),當(dāng)檢測(cè)有第一數(shù)據(jù)文件時(shí),下載所述第一數(shù)據(jù)文件,所述第一數(shù)據(jù)文件為需要重傳的數(shù)據(jù)文件;對(duì)所述第一數(shù)據(jù)文件進(jìn)行轉(zhuǎn)換加載處理,得到第二數(shù)據(jù)文件;根據(jù)觸發(fā)重算規(guī)則確定所述第二數(shù)據(jù)文件滿足重算條件時(shí),執(zhí)行對(duì)所述第二數(shù)據(jù)文件的重算操作。如此,當(dāng)接口數(shù)據(jù)發(fā)生變更需要重傳時(shí),能在無(wú)需人工干預(yù)的情況下智能完成數(shù)據(jù)重算工作。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例數(shù)據(jù)處理方法的實(shí)現(xiàn)流程示意圖;
圖2為本發(fā)明實(shí)施例所述檢測(cè)有第一數(shù)據(jù)文件的實(shí)現(xiàn)流程示意圖;
圖3為本發(fā)明實(shí)施例對(duì)所述第一數(shù)據(jù)文件進(jìn)行轉(zhuǎn)換加載處理的實(shí)現(xiàn)流程示意圖;
圖4為本發(fā)明實(shí)施例數(shù)據(jù)處理系統(tǒng)的組成結(jié)構(gòu)示意圖;
圖5為本發(fā)明實(shí)施例文件掃描器的組成結(jié)構(gòu)示意圖。
具體實(shí)施方式
在本發(fā)明實(shí)施例中,當(dāng)檢測(cè)有第一數(shù)據(jù)文件時(shí),下載所述第一數(shù)據(jù)文件,所述第一數(shù)據(jù)文件為需要重傳的數(shù)據(jù)文件;對(duì)所述第一數(shù)據(jù)文件進(jìn)行轉(zhuǎn)換加載處理,得到第二數(shù)據(jù)文件;根據(jù)觸發(fā)重算規(guī)則確定所述第二數(shù)據(jù)文件滿足重算條件時(shí),執(zhí)行對(duì)所述第二數(shù)據(jù)文件的重算操作。
下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明再作進(jìn)一步詳細(xì)的說(shuō)明。
實(shí)施例一
圖1為本發(fā)明實(shí)施例數(shù)據(jù)處理方法的實(shí)現(xiàn)流程示意圖,如圖1所示,本發(fā)明實(shí)施例數(shù)據(jù)處理方法包括:
步驟S101:當(dāng)檢測(cè)有第一數(shù)據(jù)文件時(shí),下載所述第一數(shù)據(jù)文件;
其中,所述第一數(shù)據(jù)文件為需要重傳的數(shù)據(jù)文件。
具體地,文件傳輸協(xié)議(File Transfer Protocol,F(xiàn)TP)掃描器需要檢測(cè)是否有第一數(shù)據(jù)文件,在檢測(cè)有第一數(shù)據(jù)文件時(shí),再下載所述第一數(shù)據(jù)文件。這里,如圖2所示,所述檢測(cè)有第一數(shù)據(jù)文件包括:
步驟S1011:根據(jù)預(yù)設(shè)的配置信息篩選出符合規(guī)則的數(shù)據(jù)文件;
具體地,F(xiàn)TP掃描器通過(guò)預(yù)定的配置信息調(diào)用文件過(guò)濾器篩選出符合規(guī)則的數(shù)據(jù)文件。這里,所述預(yù)定的配置信息和對(duì)符合規(guī)則的數(shù)據(jù)文件的具體要求均會(huì)在用于實(shí)現(xiàn)所述數(shù)據(jù)處理方法的系統(tǒng)中加以預(yù)置。
步驟S1012:判斷所述數(shù)據(jù)文件是否已發(fā)生變更;
具體地,F(xiàn)TP掃描器判斷所述數(shù)據(jù)文件是否發(fā)生過(guò)諸如日期、文件大小等的變更。
步驟S1013:當(dāng)所述數(shù)據(jù)文件已發(fā)生變更時(shí),確定所述數(shù)據(jù)文件為第一數(shù)據(jù)文件。
具體地,當(dāng)所述數(shù)據(jù)文件已發(fā)生變更時(shí),則調(diào)用下載器進(jìn)行下載;同時(shí),還可以對(duì)所述數(shù)據(jù)文件信息加以記錄,并通過(guò)文件驅(qū)動(dòng)的方式廣播下載的數(shù)據(jù) 文件。
步驟S102:對(duì)所述第一數(shù)據(jù)文件進(jìn)行轉(zhuǎn)換加載處理,得到第二數(shù)據(jù)文件;
具體地,如圖3所示,所述對(duì)所述第一數(shù)據(jù)文件進(jìn)行轉(zhuǎn)換加載處理,得到第二數(shù)據(jù)文件,包括:
步驟S1021:對(duì)所述第一數(shù)據(jù)文件進(jìn)行轉(zhuǎn)換處理,得到轉(zhuǎn)換處理后的數(shù)據(jù)文件;
具體地,通過(guò)轉(zhuǎn)換掃描器獲取對(duì)應(yīng)于所述第一數(shù)據(jù)文件的轉(zhuǎn)換策略;之后,根據(jù)所述轉(zhuǎn)換策略對(duì)所述第一數(shù)據(jù)文件進(jìn)行轉(zhuǎn)換處理,得到轉(zhuǎn)換處理后的數(shù)據(jù)文件。
步驟S1022:對(duì)所述轉(zhuǎn)換處理后的數(shù)據(jù)文件進(jìn)行加載處理,得到第二數(shù)據(jù)文件。
具體地,通過(guò)加載掃描器將所述轉(zhuǎn)換處理后的數(shù)據(jù)文件和數(shù)據(jù)庫(kù)表字段進(jìn)行加載處理,如將所述轉(zhuǎn)換處理后的數(shù)據(jù)文件和數(shù)據(jù)庫(kù)表字段進(jìn)行一一映射、轉(zhuǎn)換處理,得到第二數(shù)據(jù)文件。
進(jìn)一步地,所述加載掃描器會(huì)改變所述第二數(shù)據(jù)文件對(duì)應(yīng)接口的狀態(tài),并廣播所述第二數(shù)據(jù)文件,以提供用于實(shí)現(xiàn)所述數(shù)據(jù)處理方法的系統(tǒng)對(duì)所述第二數(shù)據(jù)文件加以調(diào)度服務(wù),使得所述第二數(shù)據(jù)文件能夠盡快實(shí)現(xiàn)重新運(yùn)算。
在實(shí)際應(yīng)用中,還可以通過(guò)所述加載掃描器中的結(jié)果分析器對(duì)加載反饋的結(jié)果信息進(jìn)行深度分析,如判斷讀取、加載、拋棄等等指標(biāo)信息,以對(duì)本次加載進(jìn)行準(zhǔn)確的結(jié)果判斷;當(dāng)本次加載過(guò)程發(fā)生高級(jí)別錯(cuò)誤時(shí),中斷處理器會(huì)依據(jù)本次加載反饋的結(jié)果做出相應(yīng)的中斷處理,來(lái)防止鎖表、死鎖等情況出現(xiàn)。
步驟S103:根據(jù)觸發(fā)重算規(guī)則確定所述第二數(shù)據(jù)文件滿足重算條件時(shí),執(zhí)行對(duì)所述第二數(shù)據(jù)文件的重算操作。
這里,所述觸發(fā)重算規(guī)則通常由配置信息、資源池信息和依賴信息等組成。具體地,存儲(chǔ)過(guò)程觸發(fā)器根據(jù)配置信息、資源池信息和依賴信息來(lái)確定所述第二數(shù)據(jù)文件滿足重算條件時(shí),按順序?qū)λ龅诙?shù)據(jù)文件進(jìn)行重算。需要說(shuō)明的是,在重算過(guò)程中,對(duì)于互不沖突的調(diào)度可同時(shí)執(zhí)行重算操作。
如此,通過(guò)本發(fā)明實(shí)施例數(shù)據(jù)處理方法,能夠通過(guò)用于實(shí)現(xiàn)所述數(shù)據(jù)處理方法的系統(tǒng)中的各器件執(zhí)行文件驅(qū)動(dòng)程序,采用廣播通信傳遞重算文件,當(dāng)接口數(shù)據(jù)發(fā)生變更需要重傳時(shí),能在無(wú)需人工干預(yù)的情況下智能完成數(shù)據(jù)重算工作;進(jìn)一步通過(guò)增加重算條件判斷流程,以保證重算的安全性。
實(shí)施例二
圖4為本發(fā)明實(shí)施例數(shù)據(jù)處理系統(tǒng)的組成結(jié)構(gòu)示意圖,如圖4所示,所述系統(tǒng)包括FTP掃描器401、文件掃描器402和存儲(chǔ)過(guò)程觸發(fā)器403;
所述FTP掃描器401,用于當(dāng)檢測(cè)有第一數(shù)據(jù)文件時(shí),下載所述第一數(shù)據(jù)文件,所述第一數(shù)據(jù)文件為需要重傳的數(shù)據(jù)文件;
具體地,所述FTP掃描器401根據(jù)預(yù)設(shè)的配置信息篩選出符合規(guī)則的數(shù)據(jù)文件;判斷所述數(shù)據(jù)文件是否已發(fā)生變更;當(dāng)所述數(shù)據(jù)文件已發(fā)生變更時(shí),確定所述數(shù)據(jù)文件為第一數(shù)據(jù)文件。
在實(shí)際應(yīng)用中,F(xiàn)TP掃描器401通過(guò)預(yù)定的配置信息調(diào)用文件過(guò)濾器篩選出符合規(guī)則的數(shù)據(jù)文件;再判斷所述數(shù)據(jù)文件是否發(fā)生過(guò)諸如日期、文件大小等的變更;當(dāng)所述數(shù)據(jù)文件已發(fā)生變更時(shí),則調(diào)用下載器進(jìn)行下載;同時(shí),還可以對(duì)所述數(shù)據(jù)文件信息加以記錄,并通過(guò)文件驅(qū)動(dòng)的方式廣播下載的數(shù)據(jù)文件。
所述文件掃描器402,用于對(duì)所述第一數(shù)據(jù)文件進(jìn)行轉(zhuǎn)換加載處理,得到第二數(shù)據(jù)文件;
所述存儲(chǔ)過(guò)程觸發(fā)器403,用于根據(jù)觸發(fā)重算規(guī)則確定所述第二數(shù)據(jù)文件滿足重算條件時(shí),執(zhí)行對(duì)所述第二數(shù)據(jù)文件的重算操作。
這里,所述觸發(fā)重算規(guī)則通常由配置信息、資源池信息和依賴信息等組成。具體地,所述存儲(chǔ)過(guò)程觸發(fā)器403根據(jù)配置信息、資源池信息和依賴信息來(lái)確定所述第二數(shù)據(jù)文件滿足重算條件時(shí),按順序?qū)λ龅诙?shù)據(jù)文件進(jìn)行重算。需要說(shuō)明的是,在重算過(guò)程中,對(duì)于互不沖突的調(diào)度可同時(shí)執(zhí)行重算操作。
在一實(shí)施例中,如圖5所示,所述文件掃描器402包括轉(zhuǎn)換掃描器4021 和加載掃描器4022;
所述轉(zhuǎn)換掃描器4021,用于對(duì)所述第一數(shù)據(jù)文件進(jìn)行轉(zhuǎn)換處理,得到轉(zhuǎn)換處理后的數(shù)據(jù)文件;
具體地,所述轉(zhuǎn)換掃描器4021獲取對(duì)應(yīng)于所述第一數(shù)據(jù)文件的轉(zhuǎn)換策略;再根據(jù)所述轉(zhuǎn)換策略對(duì)所述第一數(shù)據(jù)文件進(jìn)行轉(zhuǎn)換處理,得到轉(zhuǎn)換處理后的數(shù)據(jù)文件。
所述加載掃描器4022,用于對(duì)所述轉(zhuǎn)換處理后的數(shù)據(jù)文件進(jìn)行加載處理,得到第二數(shù)據(jù)文件。
具體地,所述加載掃描器4022將所述轉(zhuǎn)換處理后的數(shù)據(jù)文件和數(shù)據(jù)庫(kù)表字段進(jìn)行加載處理,如將所述轉(zhuǎn)換處理后的數(shù)據(jù)文件和數(shù)據(jù)庫(kù)表字段進(jìn)行一一映射、轉(zhuǎn)換處理,得到第二數(shù)據(jù)文件。
進(jìn)一步地,所述加載掃描器4022會(huì)改變所述第二數(shù)據(jù)文件對(duì)應(yīng)接口的狀態(tài),并廣播所述第二數(shù)據(jù)文件,以提供用于實(shí)現(xiàn)所述數(shù)據(jù)處理方法的系統(tǒng)對(duì)所述第二數(shù)據(jù)文件加以調(diào)度服務(wù),使得所述第二數(shù)據(jù)文件能夠盡快實(shí)現(xiàn)重新運(yùn)算。
在實(shí)際應(yīng)用中,還可以通過(guò)所述加載掃描器中的結(jié)果分析器對(duì)加載反饋的結(jié)果信息進(jìn)行深度分析,如判斷讀取、加載、拋棄等等指標(biāo)信息,以對(duì)本次加載進(jìn)行準(zhǔn)確的結(jié)果判斷;當(dāng)本次加載過(guò)程發(fā)生高級(jí)別錯(cuò)誤時(shí),中斷處理器會(huì)依據(jù)本次加載反饋的結(jié)果做出相應(yīng)的中斷處理,來(lái)防止鎖表、死鎖等情況出現(xiàn)。
在實(shí)際應(yīng)用中,本發(fā)明實(shí)施例中提供的數(shù)據(jù)處理系統(tǒng)中的各部分均可以通過(guò)系統(tǒng)中的處理器實(shí)現(xiàn),也可以通過(guò)具體的邏輯電路實(shí)現(xiàn);比如,在實(shí)際應(yīng)用中,可由位于數(shù)據(jù)處理系統(tǒng)中的中央處理器(CPU)、微處理器(MPU)、數(shù)字信號(hào)處理器(DSP)、或現(xiàn)場(chǎng)可編程門陣列(FPGA)實(shí)現(xiàn)。
以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。