本發(fā)明涉及大數(shù)據(jù),尤其涉及一種數(shù)據(jù)處理的方法和裝置。
背景技術(shù):
1、離線數(shù)據(jù)的生產(chǎn)一般以定時任務(wù)的形式寫在在線服務(wù)中,通過定時任務(wù)去查詢組裝數(shù)據(jù),進行數(shù)據(jù)的分發(fā)和處理。目前運營端有很多種情況下,需要進行數(shù)據(jù)的下載,但是這種下載一般都是直接查詢數(shù)據(jù),進行數(shù)據(jù)的查詢和處理,然后提供下載鏈接進行下載。數(shù)據(jù)量非常大,或者查詢周期非常長,或者sql(關(guān)系型數(shù)據(jù)庫管理系統(tǒng))較慢等情況,不僅會導(dǎo)致文件導(dǎo)出失敗,也可能會導(dǎo)致數(shù)據(jù)庫cpu(中央處理器)飆升,影響線上業(yè)務(wù)。
2、在實現(xiàn)本發(fā)明過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題:
3、離線與在線耦合:離線服務(wù)耦合在在線服務(wù)中,會大量占用在線服務(wù)的資源,在線服務(wù)cpu/gc(中央處理器/垃圾回收)抖動大,影響在線服務(wù)啟動時長;數(shù)據(jù)源壓力大:離線數(shù)據(jù)獲取時需要定時所有線上機器同時從數(shù)據(jù)源獲取,對數(shù)據(jù)源壓力過大;以及數(shù)據(jù)管理容錯問題:數(shù)據(jù)無版控控制能力,無容錯能力,數(shù)據(jù)分散無法統(tǒng)一管控。
技術(shù)實現(xiàn)思路
1、有鑒于此,本發(fā)明實施例提供一種數(shù)據(jù)處理的方法,能夠使離線數(shù)據(jù)與在線服務(wù)分離,釋放數(shù)據(jù)源壓力,數(shù)據(jù)生產(chǎn)流程化、配置化,提升容錯能力。離線數(shù)據(jù)獲取與加載獨立成一個獨立的服務(wù),由此服務(wù)單獨承擔(dān)離線數(shù)據(jù)加載獲取的功能。
2、為實現(xiàn)上述目的,根據(jù)本發(fā)明實施例的一個方面,提供了一種數(shù)據(jù)處理的方法,包括:
3、拉取原始數(shù)據(jù)并進行加工處理;以及
4、接收經(jīng)由所述加工處理而獲得的中間數(shù)據(jù)并將所述中間數(shù)據(jù)寫入到遠端文件中心,并且向消息處理中心發(fā)送具有與所述中間數(shù)據(jù)相關(guān)的預(yù)定內(nèi)容的通知消息,其中,所述通知消息的預(yù)定內(nèi)容的變更能夠由客戶端監(jiān)聽。
5、可選地,在實施例的一個方面所述的數(shù)據(jù)處理的方法中,所述原始數(shù)據(jù)的加工處理,包括:響應(yīng)于用戶的需求,拉取服務(wù)端的原始數(shù)據(jù)并將其存儲于內(nèi)存中,在內(nèi)存中對所存儲的原始數(shù)據(jù)進行加工處理,生成所述中間數(shù)據(jù)。
6、可選地,在實施例的一個方面所述的數(shù)據(jù)處理的方法中,所所述接收經(jīng)由所述加工處理而獲得的中間數(shù)據(jù)并將所述中間數(shù)據(jù)寫入到遠端文件中心,包括:將所述中間數(shù)據(jù)的全量結(jié)果序列化成預(yù)定格式,并在本地生成第一臨時文件;以及將所生成的第一臨時文件存儲于所述遠端文件中心,并刪除本地上的第一臨時文件。
7、可選地,在實施例的一個方面所述的數(shù)據(jù)處理的方法中,所述方法通過以分布式鎖且能夠橫向擴容的方式配置多臺機器而實現(xiàn),所述多臺機器冗余部署且采用爭搶鎖,并且所述原始數(shù)據(jù)被拆分為多片數(shù)據(jù)塊,每一個所述機器針對一片所述數(shù)據(jù)塊進行處理,生成相應(yīng)的一個子文件并存儲于遠端文件中心。
8、可選地,在實施例的一個方面所述的數(shù)據(jù)處理的方法中,還包括:對所述原始數(shù)據(jù)的拉取時長、所述原始數(shù)據(jù)的加工處理時長、所述寫入的時長進行超時時間設(shè)置與監(jiān)控,設(shè)置超時報警。
9、為實現(xiàn)上述目的,根據(jù)本發(fā)明實施例的一個方面,還提供了一種數(shù)據(jù)處理的方法,包括:
10、對由服務(wù)端向消息處理中心發(fā)送的具有預(yù)定內(nèi)容的通知消息進行監(jiān)聽,監(jiān)聽所述通知消息的預(yù)定內(nèi)容的變更,其中,所述通知消息的預(yù)定內(nèi)容與經(jīng)由對原始數(shù)據(jù)加工處理而獲得的中間數(shù)據(jù)相關(guān);以及
11、響應(yīng)于所述通知消息的所述預(yù)定內(nèi)容的變更,從消息處理中心接收回調(diào)信息,并且對所述回調(diào)信息的消息信息進行解析,獲取數(shù)據(jù)。
12、可選地,在實施例的一個方面所述的數(shù)據(jù)處理的方法中,所述對所述回調(diào)信息的消息信息進行解析,獲取數(shù)據(jù),包括:獲取存儲于遠端文件中心的文件的文件下載地址,將文件作為第二臨時文件下載至本地,將所述第二臨時文件反序列化為內(nèi)存中的目標(biāo)對象,刪除本地的第二臨時文件,并對所述目標(biāo)對象和所述回調(diào)消息中的數(shù)據(jù)進行校驗,以及當(dāng)所述校驗通過時,觸發(fā)用所述目標(biāo)對象替換內(nèi)存中的舊的目標(biāo)對象。
13、可選地,在實施例的一個方面所述的數(shù)據(jù)處理的方法中,所述文件被配置為包括多個子文件,以及獲取存儲于遠端文件中心的每一個所述子文件的下載地址,將每一個所述子文件作為第二臨時文件下載至本地,將每一個所述第二臨時文件反序列化為內(nèi)存中的子目標(biāo)對象,并且將每一個所述子目標(biāo)對象聚合,成為最終的所述目標(biāo)對象。
14、可選地,在實施例的一個方面所述的數(shù)據(jù)處理的方法中,當(dāng)接收到所獲取的所述數(shù)據(jù)存在錯誤的信號時,向所述遠端文件中心查詢與所述數(shù)據(jù)相關(guān)的文件的歷史版本,并且基于回退的歷史版本的文件獲取數(shù)據(jù)。
15、為實現(xiàn)上述目的,根據(jù)本發(fā)明實施例的第二方面提供了一種數(shù)據(jù)處理的裝置,包括:
16、數(shù)據(jù)生產(chǎn)單元:從數(shù)據(jù)源拉取原始數(shù)據(jù)并進行加工處理;
17、數(shù)據(jù)寫入單元:接收經(jīng)由所述加工處理而獲得的中間數(shù)據(jù)并將所述中間數(shù)據(jù)寫入到遠端文件中心,并且向消息處理中心發(fā)送具有與所述中間數(shù)據(jù)相關(guān)的預(yù)定內(nèi)容的通知消息,其中,所述通知消息的預(yù)定內(nèi)容的變更能夠由客戶端監(jiān)聽。
18、為實現(xiàn)上述目的,根據(jù)本發(fā)明實施例的第二方面還提供了一種數(shù)據(jù)處理的裝置,包括:
19、監(jiān)聽單元:對由服務(wù)端向消息處理中心發(fā)送的具有預(yù)定內(nèi)容的通知消息進行監(jiān)聽,監(jiān)聽所述通知消息的預(yù)定內(nèi)容的變更,其中,所述通知消息的預(yù)定內(nèi)容與經(jīng)由對原始數(shù)據(jù)加工處理而獲得的中間數(shù)據(jù)相關(guān);以及
20、數(shù)據(jù)獲取單元:響應(yīng)于所述通知消息的所述預(yù)定內(nèi)容的變更,從消息處理中心接收回調(diào)信息,并且對所述回調(diào)信息的消息信息進行解析,獲取數(shù)據(jù)。
21、為實現(xiàn)上述目的,根據(jù)本發(fā)明實施例的第三方面提供了一種數(shù)據(jù)處理的電子設(shè)備,包括:一個或多個處理器;存儲裝置,用于存儲一個或多個程序,當(dāng)所述一個或多個程序被所述一個或多個處理器執(zhí)行,使得所述一個或多個處理器實現(xiàn)如實施例的一個方面中所述的方法。
22、為實現(xiàn)上述目的,根據(jù)本發(fā)明實施例的第四方面提供了一種計算機可讀介質(zhì),其上存儲有計算機程序,其特征在于,所述程序被處理器執(zhí)行時實現(xiàn)如實施例的一個方面中所述的方法。
23、上述發(fā)明中的一個實施例具有如下優(yōu)點或有益效果:因為數(shù)據(jù)處理采用了從數(shù)據(jù)源拉取原始數(shù)據(jù)并進行加工處理;接收經(jīng)由所述加工處理而獲得的中間數(shù)據(jù)并將所述中間數(shù)據(jù)寫入到遠端文件中心,并且向消息處理中心發(fā)送具有與所述中間數(shù)據(jù)相關(guān)的預(yù)定內(nèi)容的通知消息的這種技術(shù)手段,離線數(shù)據(jù)獲取與加載獨立成一個獨立的服務(wù),由此服務(wù)單獨承擔(dān)離線數(shù)據(jù)加載獲取的功能,使得離線與在線完全解耦。另外,因為數(shù)據(jù)處理采用了對由服務(wù)端向消息處理中心發(fā)送的具有預(yù)定內(nèi)容的通知消息進行監(jiān)聽,監(jiān)聽所述通知消息的預(yù)定內(nèi)容的變更,其中,所述通知消息的預(yù)定內(nèi)容與經(jīng)由對原始數(shù)據(jù)加工處理而獲得的中間數(shù)據(jù)相關(guān);以及響應(yīng)于所述通知消息的所述預(yù)定內(nèi)容的變更,從消息處理中心接收回調(diào)信息,并且對所述回調(diào)信息的消息信息進行解析,從而獲取數(shù)據(jù)這樣的技術(shù)手段,因此,該在線服務(wù)能夠獨立于離線服務(wù),與離線服務(wù)完全解耦,提升在線服務(wù)穩(wěn)定性,減少資源消耗,減少在線服務(wù)資源爭搶,提升在線服務(wù)穩(wěn)定性。在線服務(wù)與離線數(shù)據(jù)源解耦,不直接依賴離線數(shù)據(jù)源,架構(gòu)拆分將完全可進行;減少初始化邏輯:服務(wù)啟動時只需要加載數(shù)據(jù)文件,減少不必要的網(wǎng)絡(luò)io(數(shù)據(jù)的輸入輸)與數(shù)據(jù)聚合處理,所有的對數(shù)據(jù)的解析、處理等操作完全由離線數(shù)據(jù)服務(wù)來承載;減輕數(shù)據(jù)源壓力:離線數(shù)據(jù)將完全由離線數(shù)據(jù)服務(wù)定時獲取,減少數(shù)據(jù)源(mysql,redis,rpc,http)訪問壓力。
24、而且,上述發(fā)明中的一個實施例的一個方面中的其他技術(shù)手段還能夠?qū)崿F(xiàn),版本控制與容錯能力提升:提升多版本數(shù)據(jù),異??煽焖倩赝酥辽弦话姹?,并提供手動干預(yù)措施和完善的監(jiān)控環(huán)境;以及減少不必要的數(shù)據(jù)替換:在線服務(wù)拉取數(shù)據(jù)通過監(jiān)聽獲取,這樣可以保證每次加載的數(shù)據(jù)一定是有變動的數(shù)據(jù),而不是舊有技術(shù)一樣,獲取同一份數(shù)據(jù),減少資源的浪費。
25、上述的非慣用的可選方式所具有的進一步效果將在下文中結(jié)合具體實施方式加以說明。