一種大數據分布式存儲的方法和裝置的制造方法
【技術領域】
[0001]本發明涉及數據存儲領域,具體涉及一種大數據分布式存儲的方法和裝置。
【背景技術】
[0002]隨著移動互聯網、物聯網等應用的飛速發展,全球數據量出現了爆炸式增長。數據量的飛速增長預示著現在已經進入了大數據時代。
[0003]數據按類型分為結構化數據、半結構化數據和非結構化數據,其中結構化數據是指能夠以二維結構表示的一種數據類型,能通過關系型數據庫存儲;半結構化數據是指具有一定結構,但語義不夠明確的一種數據類型,如郵件、HTML網頁等,它們有些字段是確定的,也有些字段是不確定的;非結構化數據是指無法用二維結構表示的一種數據類型,主要包括辦公文檔、文本、圖片、音視頻文件等,無法采用關系型數據庫進行處理。伴隨社交網絡的興起和發展,產生了大量的UGC(User Generated Content,用戶生成內容),包括音頻、視頻、文本和圖片等非結構化數據。在所有數據中,結構化數據占數據總量的20%,半結構化數據和非結構化數據占數據總量的80 %,如何科學管理和合理應用這些數據顯得日益重要。
[0004]傳統的關系型數據庫具有非常優異的性能,但由于強一致性與強事務性等規則約束,關系型數據不適宜于大規模的橫向擴展,從而使得關系型數據庫應用在半結構化或非結構化的數據存儲時存在諸多問題。大數據給傳統的數據分析處理技術(例如并行數據庫、數據倉庫)帶來的技術挑戰。傳統數據分析處理技術無法處理大數據的高擴展性和海量需求。針對億萬的用戶,數據呈現出多源化、異構化的趨勢,不同的應用對數據的一致性、數據交互、傳輸延時等均有不同的需求。
[0005]現有技術中對大數據的處理采用基于Hadoop的平臺。Hadoop是一個開源分布式計算平臺,其核心包括HDFS (Hadoop Distributed Files System, Hadoop分布式文件系統)。HDFS的眾多優點(主要包括高容錯性、高伸縮性等)允許用戶將Hadoop部署在低廉的硬件上,搭建分布式集群,構成分布式系統。HBase (Hadoop DataBase,Hadoop數據庫)是建立在分布式文件系統HDFS之上的提供高可靠性、高性能、列存儲、可伸縮、實時讀寫的分布式數據庫系統,主要用來存儲非結構化和半結構化的松散數據。
[0006]如何實現對不同數據結構的數據的有效存儲,是大數據存儲領域面臨的一個問題。
【發明內容】
[0007]為解決現有技術中存在的上述技術問題,本發明提出一種大數據分布式存儲的方法和裝置。
[0008]本發明提出的一種大數據分布式存儲的方法,包括:
[0009]步驟S100,對待存儲數據進行預處理;將所述待存儲數據封裝成對象數據,所述對象數據中添加有對象數據的屬性信息,所述屬性信息包括對象數據的數據類型;
[0010]步驟S200,接收對象數據,根據對象數據的屬性信息確定對象數據的數據類型;
[0011]步驟S300,根據對象數據的數據類型將對象數據存儲到不同的存儲單元中。
[0012]其中,步驟SlOO中所述的對象數據的數據類型包括結構化數據、半結構化數據和非結構化數據;步驟S300中所述的不同的存儲單元包括HDFS分布式文件系統單元、HBase數據庫單元和關系數據庫單元;其中,HDFS分布式文件系統單元用于存儲非結構化數據,HBase數據庫單元用于存儲半結構化數據,關系數據庫用于存儲結構化數據。
[0013]其中,步驟SlOO中被封裝的對象數據具有統一的數據操作接口,所述數據操作接口接收對對象數據的操作;
[0014]不同的存儲單元分別具有各自的數據操作解析單元,用于接收對象數據的數據操作接口發送的數據操作,并對所述數據操作進行解析,將數據操作接口發送的數據操作轉換為本存儲單元可以執行的操作。
[0015]其中,采用樹型結構保存對象數據之間的關聯關系,一方面,樹型結構的每個節點保存了指向一個對象數據的鏈接,即樹型結構并沒有存儲實際的對象數據,樹型結構的節點與對象數據是一一對應的關系,另一方面,樹型結構父子節點之間的關系表示了對象數據之間的對應關系。
[0016]本發明提出的大數據分布式存儲的方法,進一步包括:
[0017]步驟S400,對各存儲單元中的對象數據進行同步,所述同步是指客戶端的對象數據與服務器端的對象數據之間的同步。
[0018]本發明提出的大數據分布式存儲的方法,進一步包括:
[0019]在對象數據的屬性信息中包括實時同步標志,在客戶端進行同步時,首先檢測網絡環境,如果數據傳輸速率大于第一閾值,則進行實時同步,如果數據傳輸速率不大于第一閾值,則檢測對象數據的實時同步標志,如果實時同步標志為“是”,則進行實時同步,如果實時同步標志為“否”,則暫時不進行實時同步,等待數據傳輸速率大于指定閾值時再進行同步操作。
[0020]本發明提出的大數據分布式存儲的方法,進一步包括:
[0021]對于非實時同步的情況,在進行同步時包括兩種同步處理方式,一種是全部同步方式,即不用考慮單個對象數據是否需要同步,將全部對象數據進行同步,另一種是增量同步方式,即僅同步需要同步的對象數據,即有變化的對象數據;在同步操作時,通過同步方式判斷來決定采用增量同步方式或者全部同步方式,所述同步方式判斷包括:判斷所有對象數據的最早同步時間,當最早同步時間與當前時間的差值大于第二閾值,則采用全部同步方式。
[0022]本發明還提出了一種大數據分布式存儲的裝置,包括:
[0023]預處理模塊,用于對待存儲數據進行預處理;將所述待存儲數據封裝成對象數據,所述對象數據中添加有對象數據的屬性信息,所述屬性信息包括對象數據的數據類型;
[0024]接收模塊,接收對象數據,根據對象數據的屬性信息確定對象數據的數據類型;
[0025]存儲模塊,根據對象數據的數據類型將對象數據存儲到不同的存儲單元中;
[0026]其中,預處理模塊中所述的對象數據的數據類型包括結構化數據、半結構化數據和非結構化數據;存儲模塊中所述的不同的存儲單元包括HDFS分布式文件系統單元、HBase數據庫單元和關系數據庫單元;其中,HDFS分布式文件系統單元用于存儲非結構化數據,HBase數據庫單元用于存儲半結構化數據,關系數據庫用于存儲結構化數據。
[0027]本發明提出的一種大數據分布式存儲的方法和裝置,通過利用不同的存儲單元分別存儲不同數據類型的數據,從而可以發揮不同存儲單元的存儲優勢。通過對象數據的方式將不同數據類型的數據進行封裝,并提供統一的數據操作接口,可以實現對不同存儲單元中的數據的統一操作。通過樹型結構組織不同存儲單元中的對象數據,可以方便操作離散的對象數據。
【附圖說明】
[0028]圖1為本發明數據存儲方法的流程圖;
[0029]圖2為本發明數據存儲裝置的結構圖。
【具體實施方式】