本發(fā)明涉及流數(shù)據(jù)存儲技術(shù)領(lǐng)域,特別涉及一種流數(shù)據(jù)存儲方法及裝置。
背景技術(shù):
伴隨著工業(yè)4.0的浪潮,制造業(yè)的信息化水平越來越高,在工業(yè)自動化生產(chǎn)過程中會相應(yīng)的產(chǎn)生海量的實時數(shù)據(jù),這些數(shù)據(jù)即是流數(shù)據(jù)。流數(shù)據(jù)的持續(xù)產(chǎn)生,海量,實時的特性,使得這類數(shù)據(jù)的存儲以及查詢異常困難。采用本地化的關(guān)系型數(shù)據(jù)進行處理,會大大延遲數(shù)據(jù)查詢的速度以及存儲的數(shù)據(jù)量。針對此問題,國內(nèi)外開始了大量的研究。比較傳統(tǒng)的做法是在本地采用實時數(shù)據(jù)庫或者實時數(shù)據(jù)庫與關(guān)系型數(shù)據(jù)庫集成的做法解決此問題。但是在工業(yè)互聯(lián)網(wǎng)時代顯然本地的數(shù)據(jù)無法發(fā)揮其數(shù)據(jù)的真正價值。另外一種做法是以單獨的流數(shù)據(jù)處理系統(tǒng)對數(shù)據(jù)文件進行管理從而達到流數(shù)據(jù)實時處理的效果。
這種方法大部分用在消費級互聯(lián)網(wǎng)領(lǐng)域,而且需要強大的服務(wù)器體系做支撐,在工業(yè)領(lǐng)域,數(shù)據(jù)的產(chǎn)生會量遠遠超過消費級的數(shù)據(jù)量,而且數(shù)據(jù)一般只有在某一段時間內(nèi)算是實時數(shù)據(jù),超過這一時間段即是歷史數(shù)據(jù),而且目前尚未出現(xiàn)巨大的服務(wù)器體系。因此采用一種將實時數(shù)據(jù)與歷史數(shù)據(jù)進行區(qū)分存儲處理,可以在滿足用戶查詢歷史數(shù)據(jù)的基礎(chǔ)上,大大減小流數(shù)據(jù)處理系統(tǒng)的壓力。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例的目的在于提供一種流數(shù)據(jù)存儲方法及裝置,以解決流數(shù)據(jù)的實時查詢問題,以及本地存儲量有限的問題,而且將流數(shù)據(jù)中實時數(shù)據(jù)與歷史數(shù)據(jù)進行區(qū)分,可以有效的對數(shù)據(jù)進行存儲以及處理,既可以減小服務(wù)器體系的成本,又可以達到實時數(shù)據(jù)快速查詢的效果。
為達到上述目的,本發(fā)明實施例公開了一種流數(shù)據(jù)存儲方法及裝置,技術(shù)方案如下:
一種流數(shù)據(jù)存儲方法,其特征在于,應(yīng)用于服務(wù)器,包括物聯(lián)網(wǎng)層,云端,網(wǎng)關(guān)、數(shù)據(jù)采集器,所述物聯(lián)網(wǎng)層與云端物理連接,所述方法包括:
所述物聯(lián)網(wǎng)固定時間間隔的采集用戶提交的數(shù)據(jù)查詢請求;
分析所述查詢請求,包括所述查詢請求的時間屬性及特征屬性;
根據(jù)所述時間屬性和所述特征屬性,選定分段的數(shù)量和分段的端點,并根據(jù)劃分的分段中待查詢數(shù)據(jù)的存儲量選定待寫入的緩存區(qū)的大?。?/p>
根據(jù)所述時間屬性、所述特征屬性、所述待查詢數(shù)據(jù)的存儲量、分段的端點和待寫入的緩存區(qū)的大小生成配置文件,并將配置文件存儲于文件服務(wù)器上;
數(shù)據(jù)采集器接收網(wǎng)絡(luò)流數(shù)據(jù),并將網(wǎng)絡(luò)流數(shù)據(jù)轉(zhuǎn)發(fā)給文件服務(wù)器,所述服務(wù)器上的接收進程接收轉(zhuǎn)發(fā)來的網(wǎng)絡(luò)流數(shù)據(jù);
所述服務(wù)器讀取配置文件,按照配置文件存儲接收到的網(wǎng)絡(luò)流數(shù)據(jù)。
優(yōu)選的,所述云端包括:
流數(shù)據(jù)處理系統(tǒng)、控制器和關(guān)系型數(shù)據(jù)庫,所述云端中的流數(shù)據(jù)處理系統(tǒng)存儲接收到的流數(shù)據(jù),并存儲為歷史數(shù)據(jù);所述控制器查詢流數(shù)據(jù)處理系統(tǒng)中的歷史數(shù)據(jù)將其存儲到關(guān)系型數(shù)據(jù)庫,并且從流數(shù)據(jù)庫中將這些數(shù)據(jù)刪除。
優(yōu)選的,所述時間屬性的時間跨度及每個特征屬性的出現(xiàn)頻率,根據(jù)每個特征屬性的出現(xiàn)頻率,選擇超出預(yù)設(shè)出現(xiàn)頻率的閾值的特征屬性進行確定。
優(yōu)選的,所述流數(shù)據(jù)處理系統(tǒng)采用HDFS分布式文件存儲系統(tǒng)與Impala平臺相結(jié)合的數(shù)據(jù)處理系統(tǒng)。
優(yōu)選的,所述方法還包括:
采用窗口顯示類顯示實時流數(shù)據(jù);
接收客戶端的應(yīng)用層通過服務(wù)端發(fā)送數(shù)據(jù)查詢請求;
所述控制器根據(jù)不同的查詢的請求從數(shù)據(jù)庫中查詢不同的數(shù)據(jù);
所述控制器將查詢到的數(shù)據(jù)發(fā)送給數(shù)據(jù)查詢類;
數(shù)據(jù)查詢類將數(shù)據(jù)傳送至數(shù)據(jù)類;
數(shù)據(jù)類根據(jù)用戶的動作顯示實時數(shù)據(jù)或者歷史數(shù)據(jù)。
優(yōu)選的,所述方法還包括:
所述服務(wù)器上的數(shù)據(jù)接收進程將網(wǎng)絡(luò)流數(shù)據(jù)轉(zhuǎn)發(fā)給數(shù)據(jù)存儲進程,數(shù)據(jù)存儲進程按照配置文件將網(wǎng)絡(luò)流數(shù)據(jù)分配到對應(yīng)的一級緩存區(qū)中進行存儲;
每個一級緩存區(qū)分別對分配過來的網(wǎng)絡(luò)流數(shù)據(jù)進行排序和壓縮;
將排序和壓縮后的網(wǎng)絡(luò)流數(shù)據(jù)寫入二級緩存區(qū),當(dāng)二級緩存區(qū)達到預(yù)定的大小時,采用追加寫的方式將壓縮后的數(shù)據(jù)文件寫入到相應(yīng)的存儲文件中。
一種流數(shù)據(jù)存儲裝置,應(yīng)用于服務(wù)器,包括物聯(lián)網(wǎng)層,云端,網(wǎng)關(guān)、數(shù)據(jù)采集器,所述物聯(lián)網(wǎng)層與云端物理連接,所述裝置包括:
采集單元,用于所述物聯(lián)網(wǎng)固定時間間隔的采集用戶提交的數(shù)據(jù)查詢請求;
分析單元,用于分析所述查詢請求,包括所述查詢請求的時間屬性及特征屬性;
選定單元,用于根據(jù)所述時間屬性和所述特征屬性,選定分段的數(shù)量和分段的端點,并根據(jù)劃分的分段中待查詢數(shù)據(jù)的存儲量選定待寫入的緩存區(qū)的大?。?/p>
生成單元,用于根據(jù)所述時間屬性、所述特征屬性、所述待查詢數(shù)據(jù)的存儲量、分段的端點和待寫入的緩存區(qū)的大小生成配置文件,并將配置文件存儲于文件服務(wù)器上;
第一轉(zhuǎn)發(fā)單元,用于數(shù)據(jù)采集器接收網(wǎng)絡(luò)流數(shù)據(jù),并將網(wǎng)絡(luò)流數(shù)據(jù)轉(zhuǎn)發(fā)給文件服務(wù)器,所述服務(wù)器上的接收進程接收轉(zhuǎn)發(fā)來的網(wǎng)絡(luò)流數(shù)據(jù);
存儲單元,用于所述服務(wù)器讀取配置文件,按照配置文件存儲接收到的網(wǎng)絡(luò)流數(shù)據(jù)。
優(yōu)選的,所述裝置還包括:
第二轉(zhuǎn)發(fā)單元,用于所述服務(wù)器上的數(shù)據(jù)接收進程將網(wǎng)絡(luò)流數(shù)據(jù)轉(zhuǎn)發(fā)給數(shù)據(jù)存儲進程,數(shù)據(jù)存儲進程按照配置文件將網(wǎng)絡(luò)流數(shù)據(jù)分配到對應(yīng)的一級緩存區(qū)中進行存儲;
排序單元,用于將每個一級緩存區(qū)分別對分配過來的網(wǎng)絡(luò)流數(shù)據(jù)進行排序和壓縮;
寫入單元,用于將排序和壓縮后的網(wǎng)絡(luò)流數(shù)據(jù)寫入二級緩存區(qū),當(dāng)二級緩存區(qū)達到預(yù)定的大小時,采用追加寫的方式將壓縮后的數(shù)據(jù)文件寫入到相應(yīng)的存儲文件中。
優(yōu)選的,所述云端包括:
流數(shù)據(jù)處理系統(tǒng)、控制器和關(guān)系型數(shù)據(jù)庫,所述云端中的流數(shù)據(jù)處理系統(tǒng)存儲接收到的流數(shù)據(jù),并存儲為歷史數(shù)據(jù);所述控制器查詢流數(shù)據(jù)處理系統(tǒng)中的歷史數(shù)據(jù)將其存儲到關(guān)系型數(shù)據(jù)庫,并且從流數(shù)據(jù)庫中將這些數(shù)據(jù)刪除。
優(yōu)選的,所述裝置還包括:
第一顯示單元,用于采用窗口顯示類顯示實時流數(shù)據(jù);
第一發(fā)送單元,用于接收客戶端的應(yīng)用層通過服務(wù)端發(fā)送數(shù)據(jù)查詢請求;
查詢單元,用于所述控制器根據(jù)不同的查詢的請求從數(shù)據(jù)庫中查詢不同的數(shù)據(jù);
第二發(fā)送單元,用于所述控制器將查詢到的數(shù)據(jù)發(fā)送給數(shù)據(jù)查詢類;
傳送單元,用于數(shù)據(jù)查詢類將數(shù)據(jù)傳送至數(shù)據(jù)類;
第二顯示單元,用于數(shù)據(jù)類根據(jù)用戶的動作顯示實時數(shù)據(jù)或者歷史數(shù)據(jù)。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為一種流數(shù)據(jù)存儲方法的流程圖。
圖2為另一種流數(shù)據(jù)存儲方法的流程圖。
圖3為一種流數(shù)據(jù)存儲裝置的結(jié)構(gòu)圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
圖1為一種流數(shù)據(jù)存儲方法的流程圖,應(yīng)用于服務(wù)器,包括物聯(lián)網(wǎng)層,云端,網(wǎng)關(guān)、數(shù)據(jù)采集器,物聯(lián)網(wǎng)層與云端物理連接,所述方法包括如下步驟:
A、物聯(lián)網(wǎng)固定時間間隔的采集用戶提交的數(shù)據(jù)查詢請求;
B、分析查詢請求,包括查詢請求的時間屬性及特征屬性;
C、根據(jù)時間屬性和特征屬性,選定分段的數(shù)量和分段的端點,并根據(jù)劃分的分段中待查詢數(shù)據(jù)的存儲量選定待寫入的緩存區(qū)的大??;
D、根據(jù)時間屬性、特征屬性、待查詢數(shù)據(jù)的存儲量、分段的端點和待寫入的緩存區(qū)的大小生成配置文件,并將配置文件存儲于文件服務(wù)器上;
E、數(shù)據(jù)采集器接收網(wǎng)絡(luò)流數(shù)據(jù),并將網(wǎng)絡(luò)流數(shù)據(jù)轉(zhuǎn)發(fā)給文件服務(wù)器,服務(wù)器上的接收進程接收轉(zhuǎn)發(fā)來的網(wǎng)絡(luò)流數(shù)據(jù);
F、服務(wù)器讀取配置文件,按照配置文件存儲接收到的網(wǎng)絡(luò)流數(shù)據(jù)。
進一步的,云端包括:流數(shù)據(jù)處理系統(tǒng)、控制器和關(guān)系型數(shù)據(jù)庫,云端中的流數(shù)據(jù)處理系統(tǒng)存儲接收到的流數(shù)據(jù),并存儲為歷史數(shù)據(jù);控制器查詢流數(shù)據(jù)處理系統(tǒng)中的歷史數(shù)據(jù)將其存儲到關(guān)系型數(shù)據(jù)庫,并且從流數(shù)據(jù)庫中將這些數(shù)據(jù)刪除。
進一步的,時間屬性的時間跨度及每個特征屬性的出現(xiàn)頻率,根據(jù)每個特征屬性的出現(xiàn)頻率,選擇超出預(yù)設(shè)出現(xiàn)頻率的閾值的特征屬性進行確定。
進一步的,流數(shù)據(jù)處理系統(tǒng)采用HDFS分布式文件存儲系統(tǒng)與Impala平臺相結(jié)合的數(shù)據(jù)處理系統(tǒng)。
圖2為另一種流數(shù)據(jù)存儲方法的流程圖,在圖1的基礎(chǔ)上,方法還包括如下步驟:
G、采用窗口顯示類顯示實時流數(shù)據(jù);
H、接收客戶端的應(yīng)用層通過服務(wù)端發(fā)送數(shù)據(jù)查詢請求;
I、控制器根據(jù)不同的查詢的請求從數(shù)據(jù)庫中查詢不同的數(shù)據(jù);
J、控制器將查詢到的數(shù)據(jù)發(fā)送給數(shù)據(jù)查詢類;
K、數(shù)據(jù)查詢類將數(shù)據(jù)傳送至數(shù)據(jù)類;
L、數(shù)據(jù)類根據(jù)用戶的動作顯示實時數(shù)據(jù)或者歷史數(shù)據(jù)。
進一步的,方法還包括:
服務(wù)器上的數(shù)據(jù)接收進程將網(wǎng)絡(luò)流數(shù)據(jù)轉(zhuǎn)發(fā)給數(shù)據(jù)存儲進程,數(shù)據(jù)存儲進程按照配置文件將網(wǎng)絡(luò)流數(shù)據(jù)分配到對應(yīng)的一級緩存區(qū)中進行存儲;
每個一級緩存區(qū)分別對分配過來的網(wǎng)絡(luò)流數(shù)據(jù)進行排序和壓縮;
將排序和壓縮后的網(wǎng)絡(luò)流數(shù)據(jù)寫入二級緩存區(qū),當(dāng)二級緩存區(qū)達到預(yù)定的大小時,采用追加寫的方式將壓縮后的數(shù)據(jù)文件寫入到相應(yīng)的存儲文件中。
圖3為一種流數(shù)據(jù)存儲裝置的結(jié)構(gòu)圖,所述裝置包括:
采集單元a,用于物聯(lián)網(wǎng)固定時間間隔的采集用戶提交的數(shù)據(jù)查詢請求;
分析單元b,用于分析查詢請求,包括查詢請求的時間屬性及特征屬性;
選定單元c,用于根據(jù)時間屬性和特征屬性,選定分段的數(shù)量和分段的端點,并根據(jù)劃分的分段中待查詢數(shù)據(jù)的存儲量選定待寫入的緩存區(qū)的大小;
生成單元d,用于根據(jù)時間屬性、特征屬性、待查詢數(shù)據(jù)的存儲量、分段的端點和待寫入的緩存區(qū)的大小生成配置文件,并將配置文件存儲于文件服務(wù)器上;
第一轉(zhuǎn)發(fā)單元e,用于數(shù)據(jù)采集器接收網(wǎng)絡(luò)流數(shù)據(jù),并將網(wǎng)絡(luò)流數(shù)據(jù)轉(zhuǎn)發(fā)給文件服務(wù)器,服務(wù)器上的接收進程接收轉(zhuǎn)發(fā)來的網(wǎng)絡(luò)流數(shù)據(jù);
存儲單元f,用于服務(wù)器讀取配置文件,按照配置文件存儲接收到的網(wǎng)絡(luò)流數(shù)據(jù)。
進一步的,裝置還包括:
第二轉(zhuǎn)發(fā)單元,用于服務(wù)器上的數(shù)據(jù)接收進程將網(wǎng)絡(luò)流數(shù)據(jù)轉(zhuǎn)發(fā)給數(shù)據(jù)存儲進程,數(shù)據(jù)存儲進程按照配置文件將網(wǎng)絡(luò)流數(shù)據(jù)分配到對應(yīng)的一級緩存區(qū)中進行存儲;
排序單元,用于將每個一級緩存區(qū)分別對分配過來的網(wǎng)絡(luò)流數(shù)據(jù)進行排序和壓縮;
寫入單元,用于將排序和壓縮后的網(wǎng)絡(luò)流數(shù)據(jù)寫入二級緩存區(qū),當(dāng)二級緩存區(qū)達到預(yù)定的大小時,采用追加寫的方式將壓縮后的數(shù)據(jù)文件寫入到相應(yīng)的存儲文件中。
進一步的,云端包括:
流數(shù)據(jù)處理系統(tǒng)、控制器和關(guān)系型數(shù)據(jù)庫,云端中的流數(shù)據(jù)處理系統(tǒng)存儲接收到的流數(shù)據(jù),并存儲為歷史數(shù)據(jù);控制器查詢流數(shù)據(jù)處理系統(tǒng)中的歷史數(shù)據(jù)將其存儲到關(guān)系型數(shù)據(jù)庫,并且從流數(shù)據(jù)庫中將這些數(shù)據(jù)刪除。
進一步的,所述裝置還包括:
第一顯示單元,用于采用窗口顯示類顯示實時流數(shù)據(jù);
第一發(fā)送單元,用于接收客戶端的應(yīng)用層通過服務(wù)端發(fā)送數(shù)據(jù)查詢請求;
查詢單元,用于控制器根據(jù)不同的查詢的請求從數(shù)據(jù)庫中查詢不同的數(shù)據(jù);
第二發(fā)送單元,用于控制器將查詢到的數(shù)據(jù)發(fā)送給數(shù)據(jù)查詢類;
傳送單元,用于數(shù)據(jù)查詢類將數(shù)據(jù)傳送至數(shù)據(jù)類;
第二顯示單元,用于數(shù)據(jù)類根據(jù)用戶的動作顯示實時數(shù)據(jù)或者歷史數(shù)據(jù)。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
本說明書中的各個實施例均采用相關(guān)的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于裝置實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述方法實施方式中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,所述程序可以存儲于計算機可讀取存儲介質(zhì)中,這里所稱得的存儲介質(zhì),如:ROM/RAM、磁碟、光盤等。
以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進等,均包含在本發(fā)明的保護范圍內(nèi)。