大數(shù)據(jù)加載系統(tǒng)和方法
【專利摘要】本發(fā)明公開了一種大數(shù)據(jù)加載系統(tǒng),其包括用于接收用戶數(shù)據(jù)的客戶端、用于存儲用戶數(shù)據(jù)的數(shù)據(jù)存儲系統(tǒng)、以及用于存儲用戶數(shù)據(jù)的管理信息的元數(shù)據(jù)庫,其中管理信息包括數(shù)據(jù)結(jié)構、數(shù)據(jù)屬性和數(shù)據(jù)存儲位置。而且,大數(shù)據(jù)加載系統(tǒng)還包括加載服務器,其與客戶端建立連接以從客戶端接收用戶數(shù)據(jù),并根據(jù)數(shù)據(jù)存儲系統(tǒng)的狀態(tài)信息和元數(shù)據(jù)庫的管理信息,將用戶數(shù)據(jù)加載至數(shù)據(jù)存儲系統(tǒng)。本發(fā)明還公開了一種大數(shù)據(jù)加載方法。本發(fā)明的系統(tǒng)和方法實現(xiàn)了海量結(jié)構化數(shù)據(jù)、半結(jié)構化數(shù)據(jù)和非結(jié)構化數(shù)據(jù)的有效結(jié)合和統(tǒng)一存儲管理,并且為各種數(shù)據(jù)之間的關聯(lián)分析查詢提供了可能。
【專利說明】大數(shù)據(jù)加載系統(tǒng)和方法
【技術領域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲領域,具體涉及一種大數(shù)據(jù)加載系統(tǒng)和方法。
【背景技術】
[0002]隨著云計算、物聯(lián)網(wǎng)、社交網(wǎng)絡、移動互聯(lián)的快速發(fā)展,數(shù)據(jù)量以前所未有的速度增長,并且更加集中,而且這種趨勢將持續(xù)下去。數(shù)據(jù)正在迅速膨脹并變大,數(shù)據(jù)規(guī)模越大,處理的難度也越大,但對其進行挖掘可能得到的價值也越大,人們正在越來越深地意識到數(shù)據(jù)的重要性。
[0003]然而,海量數(shù)據(jù)的危機并不單純是數(shù)據(jù)量的爆炸性增長,它還涉及到數(shù)據(jù)類型的改變。以往的數(shù)據(jù)基本都可以用二維表結(jié)構表示并存儲在數(shù)據(jù)庫中,也就是結(jié)構化數(shù)據(jù),但是現(xiàn)在越來越多的互聯(lián)網(wǎng)多媒體等應用的出現(xiàn),使得諸如圖片、音視頻等非結(jié)構化數(shù)據(jù)占到了越來越大的比重,甚至增長速度遠遠超過了結(jié)構化數(shù)據(jù)。這些非結(jié)構化數(shù)據(jù)往往蘊含著更大量的信息,如何將這些數(shù)據(jù)轉(zhuǎn)化為可用的結(jié)構化數(shù)據(jù)信息,以便于進行數(shù)據(jù)分析和預測,則成為越來越迫切的需求。
[0004]現(xiàn)階段,結(jié)構化數(shù)據(jù)的存儲分析通過數(shù)據(jù)庫實現(xiàn),如oracle, pos tgresql, mysql等等,非結(jié)構化數(shù)據(jù)的存儲分析通過Hadoop平臺和MapReduce編程模型實現(xiàn)。數(shù)據(jù)庫在結(jié)構化數(shù)據(jù)的高速加載和實時查詢方面提供了良好的支持,Hadoop的文件系統(tǒng)HDFS滿足了非結(jié)構化數(shù)據(jù)分析處理的底層支持。但是數(shù)據(jù)庫或者Hadoop及相關組件只能單一地實現(xiàn)結(jié)構化或非結(jié)構化的數(shù)據(jù)處理,并沒有實現(xiàn)結(jié)構化和非結(jié)構化數(shù)據(jù)的有效結(jié)合。如南大通用的gbase數(shù)據(jù)庫,只支持結(jié)構化數(shù)據(jù)處理的功能。Facebook提出的Hive,支持對非結(jié)構化數(shù)據(jù)處理的功能,但在對數(shù)據(jù)處理的實時性上效果并不理想。EMC等相關廠商也發(fā)布了結(jié)構化數(shù)據(jù)和非結(jié)構化數(shù)據(jù)的統(tǒng)一處理平臺,如Greenplum并行數(shù)據(jù)庫,Teradata, Vertica等,但是目前在對非結(jié)構化數(shù)據(jù)的處理方面并沒有滿足高可擴展性和容錯性的需求。
[0005]現(xiàn)階段針對移動互聯(lián)網(wǎng)應用海量數(shù)據(jù)復雜的處理需求,比如復雜的關聯(lián)分析,不同類型數(shù)據(jù)的處理(包括結(jié)構化數(shù)據(jù)、文本數(shù)據(jù)、和音視頻數(shù)據(jù)等),甚至不同類型數(shù)據(jù)的聯(lián)合分析和檢索等,決定了很多應用需求并非能夠通過現(xiàn)有技術(數(shù)據(jù)庫的結(jié)構化數(shù)據(jù)處理或是其他平臺的非結(jié)構化數(shù)據(jù)處理)滿足,這些應用需要實現(xiàn)對不同類型數(shù)據(jù)的統(tǒng)一處理。
[0006]現(xiàn)有技術,無論是各種數(shù)據(jù)庫或是Hadoop及其各種組件均是只支持單一類型的數(shù)據(jù)分析,或是結(jié)構化數(shù)據(jù)的分析處理或是非結(jié)構化數(shù)據(jù)的分析處理。雖然有些廠商對并行數(shù)據(jù)庫融合了 Hadoop平臺對于非結(jié)構化數(shù)據(jù)的支持,仍然不能有效地支持結(jié)構化數(shù)據(jù)和非結(jié)構化數(shù)據(jù)的結(jié)合。因為現(xiàn)有的各種數(shù)據(jù)庫,在設計上均是采用二維表的結(jié)構表示和處理數(shù)據(jù),不能支持某些非結(jié)構化數(shù)據(jù)的存儲及分析。對于某些能夠通過數(shù)據(jù)庫存儲分析的非結(jié)構化數(shù)據(jù)來說,雖然對結(jié)構化數(shù)據(jù)的實時查詢支持效果很好,但由于非結(jié)構化數(shù)據(jù)文件較大,利用數(shù)據(jù)庫分析處理會在很大程度上降低數(shù)據(jù)庫的性能。而Hadoop及其相關組件以及其他非結(jié)構化數(shù)據(jù)處理平臺雖然支持非結(jié)構化數(shù)據(jù)的存儲管理,但是在對數(shù)據(jù)本身價值的利用并不完全,且在數(shù)據(jù)分析的實時性方面效果一般。有效地將結(jié)構化數(shù)據(jù)和非結(jié)構化數(shù)據(jù)統(tǒng)一存儲管理,并進行數(shù)據(jù)的分析處理是當前迫切需要解決的問題。
[0007]綜上所述,現(xiàn)有技術存在的主要問題在于,大數(shù)據(jù)加載平臺不能同時支持結(jié)構化數(shù)據(jù)和非結(jié)構化數(shù)據(jù)的處理,并且保證數(shù)據(jù)分析的實時性。
【發(fā)明內(nèi)容】
[0008]為了解決上述問題,本發(fā)明提供了一種大數(shù)據(jù)加載系統(tǒng),其包括:
[0009]客戶端,用于接收用戶數(shù)據(jù);
[0010]數(shù)據(jù)存儲系統(tǒng),用于存儲所述用戶數(shù)據(jù);
[0011]元數(shù)據(jù)庫,用于存儲所述用戶數(shù)據(jù)的管理信息,其中所述管理信息包括數(shù)據(jù)結(jié)構、數(shù)據(jù)屬性和數(shù)據(jù)存儲位置;
[0012]其特征在于
[0013]還包括加載服務器,其與客戶端建立連接以從客戶端接收用戶數(shù)據(jù),并根據(jù)數(shù)據(jù)存儲系統(tǒng)的狀態(tài)信息和元數(shù)據(jù)庫的管理信息,將所述用戶數(shù)據(jù)加載至所述數(shù)據(jù)存儲系統(tǒng)。
[0014]在另一方面,本發(fā)明還提供了一種大數(shù)據(jù)加載方法,其特征在于包括步驟:
[0015]客戶端接收用戶數(shù)據(jù);
[0016]加載服務器從客戶端接收用戶數(shù)據(jù),并根據(jù)數(shù)據(jù)存儲系統(tǒng)的狀態(tài)信息和元數(shù)據(jù)庫的管理信息,將所述用戶數(shù)據(jù)加載至所述數(shù)據(jù)存儲系統(tǒng);
[0017]其中所述元數(shù)據(jù)庫存儲所述用戶數(shù)據(jù)的管理信息,所述管理信息包括數(shù)據(jù)結(jié)構、數(shù)據(jù)屬性和數(shù)據(jù)存儲位置。
[0018]本發(fā)明提供的大數(shù)據(jù)加載系統(tǒng)和方法,可以對包含結(jié)構化數(shù)據(jù)、半結(jié)構化數(shù)據(jù)和非結(jié)構數(shù)據(jù)的大數(shù)據(jù)進行統(tǒng)一加載,實現(xiàn)了海量結(jié)構化數(shù)據(jù)、半結(jié)構化數(shù)據(jù)和非結(jié)構化數(shù)據(jù)的有效結(jié)合和統(tǒng)一存儲管理。本發(fā)明還提出了采用元數(shù)據(jù)庫對數(shù)據(jù)結(jié)構、數(shù)據(jù)屬性和數(shù)據(jù)存儲位置等信息進行存儲和管理,為各種數(shù)據(jù)之間的關聯(lián)分析查詢提供了可能。與單一的結(jié)構化數(shù)據(jù)處理數(shù)據(jù)庫相比,解決了半結(jié)構化數(shù)據(jù)和非結(jié)構化數(shù)據(jù)的存儲管理問題。與單一的非結(jié)構化數(shù)據(jù)處理平臺相比,解決了結(jié)構化數(shù)據(jù)、半結(jié)構化數(shù)據(jù)和非結(jié)構化數(shù)據(jù)的融合問題,并且使得能在后續(xù)數(shù)據(jù)的分析查詢中利用數(shù)據(jù)庫的實時分析查詢優(yōu)勢。
【專利附圖】
【附圖說明】
[0019]圖1為本發(fā)明的大數(shù)據(jù)加載系統(tǒng)的示意圖;
[0020]圖2為本發(fā)明的大數(shù)據(jù)加載方法的流程圖;
[0021]圖3為本發(fā)明的大數(shù)據(jù)加載方法中建立客戶端與加載服務器之間連接的流程圖?!揪唧w實施方式】
[0022]為了使本發(fā)明的技術方案及優(yōu)點更加清楚明白,以下結(jié)合附圖對本發(fā)明的示例性實施例進行進一步詳細的說明,顯然,所描述的實施例僅是本發(fā)明的一部分實施例,而不是所有實施例的窮舉。
[0023]如圖1所示,本發(fā)明實施例提供了一種大數(shù)據(jù)加載系統(tǒng),其包括:客戶端101,用于接收用戶數(shù)據(jù);數(shù)據(jù)存儲系統(tǒng)104,用于存儲用戶數(shù)據(jù);元數(shù)據(jù)庫105,用于存儲用戶數(shù)據(jù)的管理信息,其中管理信息包括數(shù)據(jù)結(jié)構、數(shù)據(jù)屬性和數(shù)據(jù)存儲位置;以及加載服務器103,其與客戶端101建立連接以從客戶端101接收用戶數(shù)據(jù),并根據(jù)數(shù)據(jù)存儲系統(tǒng)104和元數(shù)據(jù)庫105的狀態(tài)信息以及元數(shù)據(jù)庫105的管理信息,將用戶數(shù)據(jù)加載(即存儲)至數(shù)據(jù)存儲系統(tǒng)104。
[0024]客戶端101接收到的用戶數(shù)據(jù)可以是結(jié)構化數(shù)據(jù)、半結(jié)構化數(shù)據(jù)以及非結(jié)構化數(shù)據(jù)中的一種或多種的混合。相應地,數(shù)據(jù)存儲系統(tǒng)104可包括用于存儲結(jié)構化數(shù)據(jù)的結(jié)構化數(shù)據(jù)存儲子系統(tǒng)、用于存儲半結(jié)構化數(shù)據(jù)的半結(jié)構化數(shù)據(jù)存儲子系統(tǒng)以及用于存儲非結(jié)構化數(shù)據(jù)的非結(jié)構化數(shù)據(jù)存儲子系統(tǒng)。加載服務器103依據(jù)用戶數(shù)據(jù)的具體屬性進行數(shù)據(jù)劃分并將其分別加載至數(shù)據(jù)存儲系統(tǒng)104相應的存儲子系統(tǒng)的分區(qū)中。用戶數(shù)據(jù)的存儲需要其他存儲系統(tǒng)支持,比如結(jié)構化數(shù)據(jù)采用oracle或是postgresql數(shù)據(jù)庫存儲,半結(jié)構化和非結(jié)構化數(shù)據(jù)采用開源的Hadoop平臺組件HDFS/HBase/Hive存儲,這些數(shù)據(jù)庫和Hadoop平臺組件存儲技術均屬于數(shù)據(jù)存儲領域的現(xiàn)有技術并且本發(fā)明的重點也不在于此,故不再贅述。
[0025]本發(fā)明實施例的大數(shù)據(jù)加載系統(tǒng)還可包括負載均衡裝置102,用于基于加載服務器103的負載情況均衡加載服務器103與客戶端101的連接,以防止某個加載服務器由于連接過多導致加載緩慢或是某個加載服務器由于連接較少導致資源浪費。
[0026]為了便于加載服務器103獲得數(shù)據(jù)存儲系統(tǒng)104和元數(shù)據(jù)庫105的狀態(tài)信息,本發(fā)明實施例的大數(shù)據(jù)加載系統(tǒng)還包括狀態(tài)信息監(jiān)測模塊106,用于監(jiān)測數(shù)據(jù)存儲系統(tǒng)104和元數(shù)據(jù)庫105的狀態(tài)信息,比如各數(shù)據(jù)存儲單元是否正常可用等。在本說明書中,數(shù)據(jù)存儲單元指的是數(shù)據(jù)存儲系統(tǒng)104的各個數(shù)據(jù)存儲子系統(tǒng)。這些狀態(tài)信息由狀態(tài)信息同步模塊107周期性地讀取,并發(fā)送給加載服務器103,以便加載服務器103根據(jù)最新的服務狀態(tài)確定有效的數(shù)據(jù)劃分及分發(fā)過程,進行正確的數(shù)據(jù)加載,根據(jù)數(shù)據(jù)存儲系統(tǒng)的狀態(tài)(數(shù)據(jù)存儲子系統(tǒng)包括的主節(jié)點和數(shù)據(jù)節(jié)點狀態(tài))和數(shù)據(jù)屬性將數(shù)據(jù)拆分并存儲至各個存儲系統(tǒng)子系統(tǒng)的不同分區(qū)中。
[0027]以下,本發(fā)明實施例的大數(shù)據(jù)加載系統(tǒng)的數(shù)據(jù)加載工作過程將結(jié)合圖2逆行描述。如圖2所示,本發(fā)明實施例的數(shù)據(jù)加載方法包括步驟:
[0028]S201,客戶端接收用戶數(shù)據(jù);以及
[0029]S202,加載服務器從客戶端接收用戶數(shù)據(jù),并根據(jù)數(shù)據(jù)存儲系統(tǒng)和元數(shù)據(jù)庫的狀態(tài)信息以及元數(shù)據(jù)庫的管理信息,將用戶數(shù)據(jù)加載至數(shù)據(jù)存儲系統(tǒng);
[0030]其中元數(shù)據(jù)庫存儲用戶數(shù)據(jù)的管理信息,管理信息包括數(shù)據(jù)結(jié)構、數(shù)據(jù)屬性和數(shù)據(jù)存儲位置。
[0031]在本發(fā)明的另一個實施例中,在步驟S201客戶端接收用戶數(shù)據(jù)之前,還包括建立客戶端與加載服務器之間的連接,如圖3所示,其具體步驟為:
[0032]S301,啟動數(shù)據(jù)加載服務并在負載均衡器上注冊;
[0033]S302,客戶端向負載均衡器發(fā)出數(shù)據(jù)加載請求;
[0034]5303,負載均衡器按照均衡規(guī)則動態(tài)分配一個加載服務器給客戶端,讓兩者之間建立連接。均衡的目的是防止加載服務器超負載或負載過低,并使得各個加載服務器之間的負載相對均勻。
[0035]客戶端與加載服務器之間的連接建立后,客戶端即可接收用戶數(shù)據(jù)并發(fā)送至加載服務器。
[0036]加載服務器在接收到用戶數(shù)據(jù)后,進行以下操作:
[0037]a)加載服務器根據(jù)加載請求的數(shù)量和當前加載執(zhí)行狀態(tài),確定加載請求立即執(zhí)行或是等待,當加載服務器的請求數(shù)超過設定的上限或資源占用較多時,則再次接收到的所有請求均需等待,直到正在執(zhí)行的請求數(shù)低于上限且資源占用正常,當加載服務器的請求數(shù)未達到設定上限時,立即執(zhí)行;
[0038]b)加載服務器根據(jù)數(shù)據(jù)存儲系統(tǒng)和元數(shù)據(jù)庫的狀態(tài)信息,結(jié)合從元數(shù)據(jù)庫獲得的關于用戶數(shù)據(jù)的屬性,確定數(shù)據(jù)分區(qū)策略,并從元數(shù)據(jù)庫獲取數(shù)據(jù)分布規(guī)則和存儲位置,從狀態(tài)信息監(jiān)測模塊獲取數(shù)據(jù)存儲系統(tǒng)和元數(shù)據(jù)庫的狀態(tài)信息,將用戶數(shù)據(jù)存儲至正常工作的數(shù)據(jù)存儲單元,對于故障數(shù)據(jù)存儲單元的數(shù)據(jù)采取故障策略進行備份。
[0039]然后將用戶數(shù)據(jù)存入相應數(shù)據(jù)存儲單元中,如果加載服務器的某個數(shù)據(jù)緩存中的數(shù)據(jù)量超過定義的批大小(例如batchsize = 1000)或超時,則調(diào)用加載接口進行數(shù)據(jù)的并行加載。
[0040]在數(shù)據(jù)寫入成功后,如果是同步接口,則將結(jié)果返回給客戶端。如果是異步接口,則在前述步驟中將數(shù)據(jù)寫入加載服務器本地緩存時即可返回結(jié)果給客戶端。
[0041]在加載服務正常運行的整個過程中,為了保證數(shù)據(jù)加載的可靠性和正確性,加載服務器需要及時地得到各數(shù)據(jù)存儲單元的當前狀態(tài)即數(shù)據(jù)存儲單元包括的主節(jié)點和數(shù)據(jù)節(jié)點狀態(tài)以及底層文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)的運行狀態(tài),因此在加載服務運行的過程中需要利用狀態(tài)信息同步模塊周期性地向加載服務器報告各數(shù)據(jù)存儲單元的工作狀態(tài),,并記錄整個加載服務運行期間的日志和數(shù)據(jù)存儲過程日志。
[0042]下面結(jié)合圖1描述加載服務狀態(tài)信息管理流程。
[0043]首先,狀態(tài)信息監(jiān)測模塊106在加載服務啟動時開始數(shù)據(jù)存儲服務狀態(tài)信息的搜集與記錄,包括各數(shù)據(jù)存儲單元包含的所有節(jié)點和元數(shù)據(jù)庫的運行狀態(tài)。
[0044]隨后,狀態(tài)信息監(jiān)測模塊106不斷地從元數(shù)據(jù)105讀取數(shù)據(jù)存儲單元所有節(jié)點狀態(tài)信息,獲取要監(jiān)測的文件系統(tǒng)(即HDFS,HBaSe,HiVe)的節(jié)點列表和數(shù)據(jù)庫(即結(jié)構化數(shù)據(jù)存儲子系統(tǒng))的節(jié)點列表,并開始定期向文件系統(tǒng)節(jié)點和數(shù)據(jù)庫節(jié)點發(fā)送探測信息,監(jiān)測各數(shù)據(jù)存儲單元(文件系統(tǒng)存儲單元和數(shù)據(jù)庫存儲單元)是否可用。
[0045]在當前數(shù)據(jù)存儲單元狀態(tài)發(fā)生改變時,狀態(tài)信息監(jiān)測模塊106將更新數(shù)據(jù)存儲單元故障節(jié)點的信息,由可用變?yōu)椴豢捎?,或不可用變?yōu)榭捎谩H缓?,狀態(tài)信息同步模塊107將由狀態(tài)信息監(jiān)測模塊106獲取的最新服務狀態(tài)發(fā)送給加載服務器103。加載服務器103根據(jù)最新服務狀態(tài)確定有效的數(shù)據(jù)劃分及分發(fā)過程,進行正確的數(shù)據(jù)加載。
[0046]總體上看,本發(fā)明實施例的數(shù)據(jù)加載方法在進行數(shù)據(jù)加載時有三個主要過程:數(shù)據(jù)傳輸、數(shù)據(jù)劃分和數(shù)據(jù)分發(fā)。數(shù)據(jù)傳輸是,將用戶數(shù)據(jù)(結(jié)構化數(shù)據(jù)、半結(jié)構化數(shù)據(jù)和非結(jié)構化數(shù)據(jù))按列的方式組織由客戶端發(fā)送至加載服務器。數(shù)據(jù)劃分是,將加載服務器接收到的數(shù)據(jù)按照某種劃分策略分割成適合于結(jié)構化數(shù)據(jù)存儲單元和非結(jié)構化數(shù)據(jù)存儲單元存儲的結(jié)構(組織成結(jié)構化數(shù)據(jù)列,半結(jié)構化數(shù)據(jù)列,非結(jié)構化數(shù)據(jù)列,各數(shù)據(jù)列寫入對應于不同存儲單元的分區(qū)緩存中)。數(shù)據(jù)分發(fā)是,將數(shù)據(jù)劃分后的各個緩存數(shù)據(jù)并行地寫入到數(shù)據(jù)存儲單元中。
[0047]在數(shù)據(jù)傳輸過程中,數(shù)據(jù)按類型的不同組織成不同的列循環(huán)發(fā)送到加載服務器。在數(shù)據(jù)劃分過程,加載服務器根據(jù)客戶端傳輸數(shù)據(jù)的不同屬性將其按照某種劃分策略劃分并寫入到不同數(shù)據(jù)存儲單元對應的緩存中,同時寫入到加載服務器本地文件以保證數(shù)據(jù)寫入安全準確。每個數(shù)據(jù)存儲單元按照數(shù)據(jù)的屬性存在一個緩存組。在數(shù)據(jù)分發(fā)過程中,力口載服務器對于每個底層數(shù)據(jù)存儲單元HDFS/HBase/Hive/Database,啟動多個線程以將各個緩存組中的數(shù)據(jù)并行地寫入到各存儲單元中,從而實現(xiàn)結(jié)構化數(shù)據(jù)、半結(jié)構化數(shù)據(jù)和非結(jié)構化數(shù)據(jù)的統(tǒng)一加載和存儲管理。
[0048]整個數(shù)據(jù)加載過程在處理結(jié)構化數(shù)據(jù)和非結(jié)構化數(shù)據(jù)的部分對于用戶是透明的,用戶只需要將數(shù)據(jù)按列組織傳輸即可,無需關心數(shù)據(jù)類型,從而便于使用。
[0049]本發(fā)明提供的結(jié)構化數(shù)據(jù)和非結(jié)構數(shù)據(jù)統(tǒng)一加載平臺實現(xiàn)了海量結(jié)構化數(shù)據(jù)和非結(jié)構化數(shù)據(jù)的有效結(jié)合和統(tǒng)一存儲管理,這一平臺為各種數(shù)據(jù)之間的關聯(lián)分析查詢提供了可能。與單一的結(jié)構化數(shù)據(jù)處理數(shù)據(jù)庫相比解決了非結(jié)構化數(shù)據(jù)的存儲管理問題,與單一的非結(jié)構化數(shù)據(jù)處理平臺相比解決了結(jié)構化數(shù)據(jù)和非結(jié)構化數(shù)據(jù)的融合,并且將數(shù)據(jù)庫的實時分析查詢優(yōu)勢在后續(xù)數(shù)據(jù)的分析查詢中得以利用提供了可能。同時在一定程度上彌補了現(xiàn)階段結(jié)構化數(shù)據(jù)和非結(jié)構化數(shù)據(jù)的統(tǒng)一管理方面的不足,有效的降低了數(shù)據(jù)管理方面的成本。
[0050]最后應說明的是,以上實施例僅用以說明本發(fā)明的技術方案而非對本發(fā)明保護范圍的限制。盡管參照上述實施例對本發(fā)明進行了詳細的說明,所述領域的普通技術人員應該理解,可以對本發(fā)明的具體實施例方式進行修改或等同替換,而未脫離本發(fā)明精神和范圍的任何修改或者等同替換,均涵蓋在本發(fā)明的權利要求范圍中。
【權利要求】
1.一種大數(shù)據(jù)加載系統(tǒng),其包括:客戶端,用于接收用戶數(shù)據(jù);數(shù)據(jù)存儲系統(tǒng),用于存儲所述用戶數(shù)據(jù);元數(shù)據(jù)庫,用于存儲所述用戶數(shù)據(jù)的管理信息,其中所述管理信息包括數(shù)據(jù)結(jié)構、數(shù)據(jù)屬性和數(shù)據(jù)存儲位置;其特征在于還包括加載服務器,其與客戶端建立連接以從客戶端接收用戶數(shù)據(jù),并根據(jù)數(shù)據(jù)存儲系統(tǒng)的狀態(tài)信息和元數(shù)據(jù)庫的管理信息,將所述用戶數(shù)據(jù)加載至所述數(shù)據(jù)存儲系統(tǒng)。
2.如權利要求1所述的大數(shù)據(jù)加載系統(tǒng),其特征在于,還包括負載均衡裝置,用于基于所述加載服務器的負載情況均衡所述加載服務器與所述客戶端的連接。
3.如權利要求1或2所述的大數(shù)據(jù)加載系統(tǒng),其特征在于,所述數(shù)據(jù)存儲系統(tǒng)包括用于存儲結(jié)構化數(shù)據(jù)的結(jié)構化數(shù)據(jù)存儲子系統(tǒng)、用于存儲半結(jié)構化數(shù)據(jù)的半結(jié)構化數(shù)據(jù)存儲子系統(tǒng)以及用于存儲非結(jié)構化數(shù)據(jù)的非結(jié)構化數(shù)據(jù)存儲子系統(tǒng)。
4.如權利要求3所述的大數(shù)據(jù)加載系統(tǒng),其特征在于,所述加載服務器將所述用戶數(shù)據(jù)加載至所述數(shù)據(jù)存儲系統(tǒng)具體為:加載服務器依據(jù)所述用戶數(shù)據(jù)的屬性進行數(shù)據(jù)劃分并將其加載至數(shù)據(jù)存儲系統(tǒng)相應的存儲子系統(tǒng)。
5.如權利要求4所述的大數(shù)據(jù)加載系統(tǒng),其特征在于,所述數(shù)據(jù)劃分是將所述加載服務器接收到的數(shù)據(jù)劃分為適合于結(jié)構化數(shù)據(jù)存儲和非結(jié)構化數(shù)據(jù)存儲的多個數(shù)據(jù)列,所述多個數(shù)據(jù)列按照分區(qū)策略存 儲于緩存組中,緩存組中的每個緩存存儲結(jié)構化數(shù)據(jù)或半結(jié)構化數(shù)據(jù)或非結(jié)構化數(shù)據(jù)的獨立分區(qū)數(shù)據(jù),并且所述數(shù)據(jù)分發(fā)是所述緩存組的數(shù)據(jù)并行地寫入到所述數(shù)據(jù)存儲系統(tǒng)的各個存儲子系統(tǒng)中,并進一步地寫入到各個存儲子系統(tǒng)的相應分區(qū)中。
6.如權利要求1或2所述的大數(shù)據(jù)加載系統(tǒng),其特征在于,還包括狀態(tài)信息監(jiān)測模塊,用于監(jiān)測數(shù)據(jù)存儲系統(tǒng)和元數(shù)據(jù)庫的狀態(tài)。
7.如權利要求6所述的大數(shù)據(jù)加載系統(tǒng),其特征在于,還包括狀態(tài)信息同步模塊,用于從狀態(tài)信息監(jiān)測模塊周期性地讀取數(shù)據(jù)存儲系統(tǒng)和元數(shù)據(jù)庫的狀態(tài)信息,并發(fā)送給加載服務器。
8.如權利要求7所述的大數(shù)據(jù)加載系統(tǒng),其特征在于,所述狀態(tài)信息同步模塊還記錄加載服務器的運行日志和數(shù)據(jù)存儲過程日志。
9.一種大數(shù)據(jù)加載方法,其特征在于包括步驟:客戶端接收用戶數(shù)據(jù);加載服務器從客戶端接收用戶數(shù)據(jù),并根據(jù)數(shù)據(jù)存儲系統(tǒng)的狀態(tài)信息和元數(shù)據(jù)庫的管理信息,將所述用戶數(shù)據(jù)加載至所述數(shù)據(jù)存儲系統(tǒng);其中所述元數(shù)據(jù)庫存儲所述用戶數(shù)據(jù)的管理信息,所述管理信息包括數(shù)據(jù)結(jié)構、數(shù)據(jù)屬性和數(shù)據(jù)存儲位置。
10.如權利要求9所述的大數(shù)據(jù)加載方法,其特征在于,所述加載服務器與所述客戶端的連接由負載均衡裝置基于所述加載服務器的負載情況進行均衡。
11.如權利要求10所述的大數(shù)據(jù)加載方法,其特征在于,所述均衡具體為:首先,啟動數(shù)據(jù)加載服務后在負載均衡器上注冊;然后,客戶端向負載均衡器發(fā)出數(shù)據(jù)加載請求;最后,負載均衡器動態(tài)分配加載服務器給客戶端,兩者之間建立連接。
12.如權利要求9所述的大數(shù)據(jù)加載方法,其特征在于,所述加載服務器周期性地獲取數(shù)據(jù)存儲系統(tǒng)和元數(shù)據(jù)庫的狀態(tài)信息,并根據(jù)數(shù)據(jù)存儲系統(tǒng)的狀態(tài)和數(shù)據(jù)屬性將數(shù)據(jù)拆分并存儲至各個存儲系統(tǒng)子系統(tǒng)的不同分區(qū)中。
13.如權利要求9所述的大數(shù)據(jù)加載方法,其特征在于,所述加載服務器以同步或異步方式將所述用戶數(shù)據(jù)加載至所述數(shù)據(jù)存儲系統(tǒng)。
14.如權利要求9至13中任一所述的大數(shù)據(jù)加載方法,其特征在于,所述加載服務器將所述用戶數(shù)據(jù)加載至所述數(shù)據(jù)存儲系統(tǒng)具體為:加載服務器依據(jù)所述用戶數(shù)據(jù)的屬性進行數(shù)據(jù)劃分并將其加載至數(shù)據(jù)存儲系統(tǒng)相應的存儲子系統(tǒng)。
15.如權利要求14所述的大數(shù)據(jù)加載方法,其特征在于,所述數(shù)據(jù)劃分是將所述加載服務器接收到的數(shù)據(jù)劃分為適合于結(jié)構化數(shù)據(jù)存儲、半結(jié)構化數(shù)據(jù)存儲和非結(jié)構化數(shù)據(jù)存儲的存儲于多個緩存組中的多個數(shù)據(jù)列組,并且所述數(shù)據(jù)分發(fā)是所述緩存數(shù)據(jù)組中的數(shù)據(jù)并行地寫入到所述數(shù)據(jù)存儲系.統(tǒng)的各個存儲子系統(tǒng)相應的分區(qū)中。
【文檔編號】G06F17/30GK103440290SQ201310359675
【公開日】2013年12月11日 申請日期:2013年8月16日 優(yōu)先權日:2013年8月16日
【發(fā)明者】狄靜舒, 王穎, 宋懷明, 苗艷超, 劉新春, 邵宗有 申請人:曙光信息產(chǎn)業(yè)股份有限公司