大數(shù)據(jù)的存儲訪問系統(tǒng)及方法
【技術(shù)領域】
[0001]本發(fā)明涉及大數(shù)據(jù)技術(shù)領域,特別是涉及一種大數(shù)據(jù)的存儲訪問系統(tǒng)及方法。
【背景技術(shù)】
[0002]隨著物聯(lián)網(wǎng)的發(fā)展,物聯(lián)網(wǎng)終端設備不斷增長,隨之產(chǎn)生的數(shù)據(jù)量也呈爆炸性增長。傳統(tǒng)的關(guān)系型數(shù)據(jù)庫如果不能提出水平擴展的功能,已經(jīng)不能滿足日益增長的數(shù)據(jù)存儲、檢索、計算的需求。
[0003]現(xiàn)有技術(shù)中的計算框架可以針對性地解決很多的數(shù)據(jù)存儲和分析需求,但是,現(xiàn)有的計算框架在海量數(shù)據(jù)上的查詢和分析方面,存在實時性較低的問題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要解決的技術(shù)問題是提供一種大數(shù)據(jù)存儲訪問系統(tǒng)及方法,提高大數(shù)據(jù)訪問的實時性。
[0005]為解決上述技術(shù)問題,本發(fā)明實施例提供一種大數(shù)據(jù)存儲訪問系統(tǒng),所述系統(tǒng)包括:
[0006]實時數(shù)據(jù)服務節(jié)點、歷史數(shù)據(jù)服務節(jié)點和分布式協(xié)調(diào)服務器;
[0007]所述實時數(shù)據(jù)服務節(jié)點,適于存儲消息隊列中實時到達的實時數(shù)據(jù),在收到來自所述分布式協(xié)調(diào)服務器的所述實時數(shù)據(jù)超過服務期限的通知時,轉(zhuǎn)存所述實時數(shù)據(jù)至所述歷史數(shù)據(jù)服務節(jié)點;
[0008]所述歷史數(shù)據(jù)服務節(jié)點,包括分布式文件系統(tǒng),所述分布式文件系統(tǒng)適于將來自所述實時數(shù)據(jù)服務節(jié)點的超過服務期限的所述實時數(shù)據(jù)作為歷史數(shù)據(jù)存儲;
[0009]所述分布式協(xié)調(diào)服務器,適于管理所述實時數(shù)據(jù)服務節(jié)點與所述歷史數(shù)據(jù)服務節(jié)點中的原數(shù)據(jù)信息,監(jiān)控所述實時數(shù)據(jù)服務節(jié)點和所述歷史數(shù)據(jù)服務節(jié)點,以及在所述實時數(shù)據(jù)超過服務期限通知所述實時數(shù)據(jù)服務節(jié)點。
[0010]可選地,所述實時數(shù)據(jù)服務節(jié)點,適于讀取存儲消息隊列中實時到達的實時數(shù)據(jù),根據(jù)來自所述分布式協(xié)調(diào)服務器的數(shù)據(jù)表的配置信息對所述實時數(shù)據(jù)進行解析以及構(gòu)建索引,按照預定義的時間粒度組織成數(shù)據(jù)塊進行存儲。
[0011]可選地,所述實時數(shù)據(jù)服務節(jié)點適于通過寫入接口存儲所述數(shù)據(jù)塊于所述實時數(shù)據(jù)服務節(jié)點的內(nèi)存中,在數(shù)據(jù)表所占內(nèi)存達到閾值或數(shù)據(jù)表條目超過設定數(shù)目時,將所述實時數(shù)據(jù)轉(zhuǎn)存至所述實時數(shù)據(jù)服務節(jié)點的磁盤中,并將所述數(shù)據(jù)塊的狀態(tài)改變通知所述分布式協(xié)調(diào)服務器。
[0012]可選地,所述分布式協(xié)調(diào)服務器適于記錄所述實時數(shù)據(jù)的服務時間,當所述實時數(shù)據(jù)的服務時間達到所述服務期限時,通知所述實時數(shù)據(jù)服務節(jié)點將所述實時數(shù)據(jù)寫入所述歷史數(shù)據(jù)服務節(jié)點的分布式文件系統(tǒng)中。
[0013]可選地,所述歷史數(shù)據(jù)服務節(jié)點還包括緩存,適于按照LRU存儲最近的時間段內(nèi)被檢索到的查詢結(jié)果。
[0014]可選地,所述分布式文件系統(tǒng)根據(jù)元數(shù)據(jù)表中存儲介質(zhì)配置信息設置對應的存儲介質(zhì),所述存儲介質(zhì)包括SSD、DISK和ARCHIVE。
[0015]可選地,所述實時數(shù)據(jù)服務節(jié)點和所述歷史數(shù)據(jù)服務節(jié)點中的數(shù)據(jù)為列式表達的數(shù)據(jù)。
[0016]可選地,所述大數(shù)據(jù)存儲訪問系統(tǒng),還包括:數(shù)據(jù)服務節(jié)點:
[0017]所述數(shù)據(jù)服務節(jié)點,適于接收客戶端的訪問請求,根據(jù)所述訪問請求中涉及數(shù)據(jù)片的產(chǎn)生時間,將所述訪問請求拆分成實時數(shù)據(jù)的訪問請求和歷史數(shù)據(jù)的訪問請求,調(diào)度所述實時數(shù)據(jù)的訪問請求至所述實時數(shù)據(jù)服務節(jié)點計算第一中間結(jié)果,調(diào)度所述歷史數(shù)據(jù)的訪問請求至所述歷史數(shù)據(jù)服務節(jié)點計算第二中間結(jié)果,合并所述第一中間結(jié)果和所述第二中間結(jié)果得到最終結(jié)果,并返回所述最終結(jié)果至所述客戶端。
[0018]可選地,所述實時數(shù)據(jù)服務節(jié)點還適于接收實時數(shù)據(jù)的訪問請求,計算所述實時數(shù)據(jù)的訪問請求得到所述第一中間結(jié)果,并返回所述第一中間結(jié)果至所述數(shù)據(jù)服務節(jié)點。
[0019]可選地,所述歷史數(shù)據(jù)服務節(jié)點還適于接收所述歷史數(shù)據(jù)的訪問請求,計算所述歷史數(shù)據(jù)的訪問請求得到所述第二中間結(jié)果,并返回所述第二中間結(jié)果至所述數(shù)據(jù)服務節(jié)點。
[0020]本發(fā)明實施例還提供一種大數(shù)據(jù)存儲訪問方法,采用上述的大數(shù)據(jù)存儲訪問系統(tǒng),所述方法包括:
[0021]將消息隊列中實時達到的實時數(shù)據(jù)存儲于所述實時數(shù)據(jù)服務節(jié)點,并由所述分布式協(xié)調(diào)服務器記錄實時數(shù)據(jù)片的存儲位置;
[0022]在收到來自所述分布式協(xié)調(diào)服務器的所述實時數(shù)據(jù)超過服務期限的通知時,轉(zhuǎn)存所述實時數(shù)據(jù)至所述歷史數(shù)據(jù)服務節(jié)點。
[0023]可選地,所述將消息隊列中實時達到的實時數(shù)據(jù)存儲于所述實時數(shù)據(jù)服務節(jié)點,包括:讀取存儲消息隊列中實時到達的實時數(shù)據(jù),根據(jù)來自所述分布式協(xié)調(diào)服務器的數(shù)據(jù)表的配置信息對所述實時數(shù)據(jù)進行解析以及構(gòu)建索引,按照預定義的時間粒度組織成數(shù)據(jù)塊進行存儲。
[0024]可選地,所述將消息隊列中實時達到的實時數(shù)據(jù)存儲于所述實時數(shù)據(jù)服務節(jié)點,包括:
[0025]實時數(shù)據(jù)服務節(jié)點通過寫入接口存儲所述數(shù)據(jù)塊于所述實時數(shù)據(jù)服務節(jié)點的內(nèi)存中;
[0026]在數(shù)據(jù)表所占內(nèi)存達到閾值或數(shù)據(jù)表條目超過設定數(shù)目時,將所述實時數(shù)據(jù)轉(zhuǎn)存至所述實時數(shù)據(jù)服務節(jié)點的磁盤中,并將所述數(shù)據(jù)塊的狀態(tài)改變通知所述分布式協(xié)調(diào)服務器。
[0027]可選地,所述大數(shù)據(jù)存儲訪問方法還包括:
[0028]所述數(shù)據(jù)服務節(jié)點接收客戶端的訪問請求;
[0029]根據(jù)所述訪問請求中涉及數(shù)據(jù)片的產(chǎn)生時間,將所述訪問請求拆分成實時數(shù)據(jù)的訪問請求和歷史數(shù)據(jù)的訪問請求;
[0030]調(diào)度所述實時數(shù)據(jù)的訪問請求至所述實時數(shù)據(jù)服務節(jié)點計算第一中間結(jié)果,調(diào)度所述歷史數(shù)據(jù)的訪問請求至所述歷史數(shù)據(jù)服務節(jié)點計算第二中間結(jié)果,合并所述第一中間結(jié)果和所述第二中間結(jié)果得到最終結(jié)果;
[0031]返回所述最終結(jié)果至所述客戶端。
[0032]與現(xiàn)有技術(shù)相比,本發(fā)明實施例的技術(shù)方案具有以下有益效果:
[0033]本發(fā)明實施例的技術(shù)方案設置實時數(shù)據(jù)服務節(jié)點、歷史數(shù)據(jù)服務節(jié)點和分布式協(xié)調(diào)服務器,由實時數(shù)據(jù)服務節(jié)點存儲實時數(shù)據(jù),并在所述分布式協(xié)調(diào)服務器通知實時數(shù)據(jù)服務期限到達時,轉(zhuǎn)存所述實時數(shù)據(jù)至所述歷史服務節(jié)點,由所述歷史服務節(jié)點存儲超過服務期限的實時數(shù)據(jù),并且有所述分布式協(xié)調(diào)服務器管理所述實時服務節(jié)點與所述歷史服務節(jié)點,在所述實時數(shù)據(jù)的服務期限到達時同時所述實時服務節(jié)點將實施數(shù)據(jù)寫入所述歷史服務節(jié)點,從而可以在系統(tǒng)接收到數(shù)據(jù)訪問的請求時,由相應的數(shù)據(jù)服務節(jié)點提供實時數(shù)據(jù)或歷史數(shù)據(jù),從而提升了系統(tǒng)訪問實時數(shù)據(jù)的效率,從而提高大數(shù)據(jù)訪問的實時性。
[0034]進一步地,通過設置數(shù)據(jù)服務節(jié)點,將來自客戶端的訪問請求根據(jù)所述訪問請求中涉及數(shù)據(jù)片的產(chǎn)生時間,將所述訪問請求拆分成實時數(shù)據(jù)的訪問請求和歷史數(shù)據(jù)的訪問請求,再調(diào)度所述實時數(shù)據(jù)的訪問請求和所述歷史數(shù)據(jù)的訪問請求至相應的數(shù)據(jù)服務節(jié)點計算中間結(jié)果返回給所述數(shù)據(jù)服務節(jié)點,由所述數(shù)據(jù)服務節(jié)點來合并中間結(jié)果得到最終結(jié)果至所述客戶端,從而可以提升系統(tǒng)處理訪問請求的效率,提升系統(tǒng)訪問數(shù)據(jù)的實時性。
[0035]進一步地,通過在所述歷史數(shù)據(jù)服務節(jié)點中設置緩存,在歷史數(shù)據(jù)服務節(jié)點設置本地緩存以存儲中間結(jié)果,可以借助LRU算法加快熱點查詢的效率。
[0036]進一步地,將所述實時數(shù)據(jù)服務節(jié)點和所述歷史數(shù)據(jù)服務節(jié)點中的行式數(shù)據(jù)轉(zhuǎn)換為列式表達,可以通過更有效的壓縮技術(shù)降低存儲開銷,并且提供對列數(shù)據(jù)更快速的訪問。
【附圖說明】
[0037]圖1是本發(fā)明實施例中的一種大數(shù)據(jù)存儲訪問系統(tǒng)的結(jié)構(gòu)示意圖;
[0038]圖2是本發(fā)明實施例中的一種大數(shù)據(jù)存儲訪問系統(tǒng)的結(jié)構(gòu)示意圖;
[0039]圖3是本發(fā)明實施例中的一種大數(shù)據(jù)存儲訪問的方法的流程圖;
[0040]圖4是本發(fā)明實施例中的一種大數(shù)據(jù)存儲訪問方法的流程圖。
【具體實施方式】
[0041]如前所述,現(xiàn)有技術(shù)中的計算框架可以針對性地解決很多的數(shù)據(jù)存儲和分析需求,現(xiàn)有的計算框架在海量數(shù)據(jù)上的查詢和分析還存在實時性較低的問題。
[0042]本發(fā)明實施例的技術(shù)方案設置實時數(shù)據(jù)服務節(jié)點、歷史數(shù)據(jù)服務節(jié)點和分布式協(xié)調(diào)服務器,由實時數(shù)據(jù)服務節(jié)點存儲實時數(shù)據(jù),并在所述分布式協(xié)調(diào)服務器通知實時數(shù)據(jù)服務期限到達時,轉(zhuǎn)存所述實時數(shù)據(jù)至所述歷史服務節(jié)點,由所述歷史服務節(jié)點存儲超過服務期限的實時數(shù)據(jù),并且有所述分布