本發(fā)明屬于物聯(lián)網(wǎng)技術領域,尤其涉及一種物聯(lián)網(wǎng)中海量異構(gòu)傳感數(shù)據(jù)的分布式存儲系統(tǒng)和方法。
背景技術:
物聯(lián)網(wǎng)技術是新一代信息技術的重要組成部分,是互聯(lián)網(wǎng)的延伸和擴展,是指通過無線通信技術、電信通信網(wǎng)、以太網(wǎng)等將物理世界中的傳感器、rfid設備、嵌入式設備等融合到互聯(lián)網(wǎng)并為人類提供更智能服務的技術。隨著物聯(lián)網(wǎng)技術的快速發(fā)展,傳感器的種類和數(shù)量都在飛速增長,隨之而來的是數(shù)據(jù)量幾何級規(guī)模的增長。物聯(lián)網(wǎng)中的傳感數(shù)據(jù)有海量性、異構(gòu)性、實時性等特點,如何保證海量異構(gòu)物聯(lián)網(wǎng)傳感數(shù)據(jù)合法、快速、大規(guī)模的存儲越來越成為制約著物聯(lián)網(wǎng)存儲技術的發(fā)展的瓶頸。傳統(tǒng)的物聯(lián)網(wǎng)傳感數(shù)據(jù)存儲技術是基于關系型數(shù)據(jù)庫的,在系統(tǒng)開發(fā)之前要先創(chuàng)建于物聯(lián)網(wǎng)感知層設備實體與程序代碼相對應的關系模型,傳感數(shù)據(jù)上傳時,數(shù)據(jù)包中的物聯(lián)網(wǎng)網(wǎng)關和傳感器節(jié)點的唯一標識與關系型數(shù)據(jù)庫中已存在的物聯(lián)網(wǎng)網(wǎng)關和傳感器節(jié)點的唯一標識數(shù)據(jù)對比,以確保匯聚數(shù)據(jù)的合法性,然后將合法的物聯(lián)網(wǎng)數(shù)據(jù)存儲到關系型數(shù)據(jù)庫中,如果傳感器數(shù)據(jù)的屬性發(fā)生變化,還需修改代碼和數(shù)據(jù)庫中數(shù)據(jù)表的數(shù)據(jù)結(jié)構(gòu),這些都嚴重影響了存儲性能,增加了存儲系統(tǒng)的維護成本。
綜上所述,現(xiàn)有技術存在的問題是:傳統(tǒng)的物聯(lián)網(wǎng)傳感數(shù)據(jù)存儲技術存在傳感器數(shù)據(jù)的屬性發(fā)生變化時,需修改代碼和數(shù)據(jù)庫中數(shù)據(jù)表的數(shù)據(jù)結(jié)構(gòu),嚴重影響了存儲性能,增加了存儲系統(tǒng)的維護成本;在校驗傳感數(shù)據(jù)合法性時對數(shù)據(jù)庫的查詢操作影響了系統(tǒng)響應時間。
技術實現(xiàn)要素:
針對現(xiàn)有技術存在的問題,本發(fā)明提供了一種物聯(lián)網(wǎng)中海量異構(gòu)傳感數(shù)據(jù)的分布式存儲系統(tǒng)和方法。
本發(fā)明是這樣實現(xiàn)的,一種物聯(lián)網(wǎng)中海量異構(gòu)傳感數(shù)據(jù)的分布式存儲系統(tǒng),所述物聯(lián)網(wǎng)中海量異構(gòu)傳感數(shù)據(jù)的分布式存儲系統(tǒng)包括:
物聯(lián)網(wǎng)傳感數(shù)據(jù)上傳接口模塊,定義統(tǒng)一物聯(lián)網(wǎng)傳感數(shù)據(jù)上傳接口,并將物聯(lián)網(wǎng)傳感數(shù)據(jù)發(fā)送至所述物聯(lián)網(wǎng)數(shù)據(jù)解析模塊;規(guī)范采用http請求中的post請求方式;實現(xiàn)物聯(lián)網(wǎng)數(shù)據(jù)傳輸層與物聯(lián)網(wǎng)數(shù)據(jù)中心的松耦合;
物聯(lián)網(wǎng)傳感數(shù)據(jù)解析模塊,用于解析上傳的物聯(lián)網(wǎng)數(shù)據(jù),提取存儲所需的數(shù)據(jù),清洗無用數(shù)據(jù),并將解析后的數(shù)據(jù)發(fā)送至所述物聯(lián)網(wǎng)傳感數(shù)據(jù)校驗模塊;
物聯(lián)網(wǎng)傳感數(shù)據(jù)校驗模塊,用于校驗物聯(lián)網(wǎng)傳感數(shù)據(jù)解析模塊解析的數(shù)據(jù)是否合法,并將合法數(shù)據(jù)存儲至nosql數(shù)據(jù)庫存儲模塊;
關系型數(shù)據(jù)庫存儲模塊,用于存儲關系型數(shù)據(jù),為物聯(lián)網(wǎng)傳感數(shù)據(jù)校驗模塊提供合法數(shù)據(jù)依據(jù);
nosql數(shù)據(jù)庫模塊,用于存儲物聯(lián)網(wǎng)傳感器數(shù)據(jù)校驗模塊發(fā)送來的合法數(shù)據(jù),具體采用分布式mongodb數(shù)據(jù)庫;
分布式高速緩存模塊,用于存儲物聯(lián)網(wǎng)傳感器數(shù)據(jù)校驗模塊命中的物聯(lián)網(wǎng)網(wǎng)關唯一標識數(shù)據(jù)和傳感器節(jié)點唯一標識數(shù)據(jù),為下次物聯(lián)網(wǎng)傳感數(shù)據(jù)校驗模塊提供高速合法數(shù)據(jù)校驗支持,具體采用分布式memcache系統(tǒng)。
進一步,所述物聯(lián)網(wǎng)傳感數(shù)據(jù)接口模塊由ip地址段、物聯(lián)網(wǎng)網(wǎng)關唯一標識段、傳感器節(jié)點唯一標識段、數(shù)據(jù)段組成。
進一步,所述關系型數(shù)據(jù)庫存儲模塊由分布式關系型數(shù)據(jù)庫組成,包含多個關系型節(jié)點,具體由1個關系型數(shù)據(jù)庫主節(jié)點和n個關系型數(shù)據(jù)庫從節(jié)點組成。
進一步,所述關系型數(shù)據(jù)庫存儲模塊用于存儲不同物聯(lián)網(wǎng)應用場景中的關系型數(shù)據(jù),具體為用戶數(shù)據(jù)、管理數(shù)據(jù)、配置數(shù)據(jù)、物聯(lián)網(wǎng)網(wǎng)關唯一標識數(shù)據(jù)和傳感器節(jié)點唯一標識數(shù)據(jù)。
進一步,所述nosql數(shù)據(jù)庫存儲模塊由分布式mongodb數(shù)據(jù)庫組成,采用mongodb的replicaset集群方式,具體由1個主mongodb節(jié)點,1個仲裁節(jié)點,n個備mongodb節(jié)點。
進一步,所述分布式高速緩存模塊由分布式memcache系統(tǒng)組成,包含多個memcache節(jié)點,具體包含n個memcache節(jié)點。
本發(fā)明的另一目的在于提供一種所述物聯(lián)網(wǎng)中海量異構(gòu)傳感數(shù)據(jù)的分布式存儲系統(tǒng)的物聯(lián)網(wǎng)中海量異構(gòu)傳感數(shù)據(jù)的分布式存儲方法,所述物聯(lián)網(wǎng)中海量異構(gòu)傳感數(shù)據(jù)的分布式存儲方法包括以下步驟:
步驟一,用戶先將物聯(lián)網(wǎng)網(wǎng)關唯一標識數(shù)據(jù)和傳感器節(jié)點唯一標識數(shù)據(jù)存入關系型數(shù)據(jù)庫模塊,通過一致性哈希算法將物聯(lián)網(wǎng)網(wǎng)關唯一標識數(shù)據(jù)和傳感器節(jié)點唯一標識數(shù)據(jù)存入不同memcache節(jié)點,物聯(lián)網(wǎng)傳感數(shù)據(jù)接口模塊將數(shù)據(jù)發(fā)送至物聯(lián)網(wǎng)傳感器數(shù)據(jù)解析模塊,解析模塊將請求解析并提取數(shù)據(jù)段,并將數(shù)據(jù)段發(fā)送至物聯(lián)網(wǎng)傳感數(shù)據(jù)校驗模塊;
步驟二,聯(lián)網(wǎng)傳感數(shù)據(jù)校驗模塊從傳感數(shù)據(jù)段中提取物聯(lián)網(wǎng)網(wǎng)關與傳感器節(jié)點唯一標識數(shù)據(jù),從分布式高速緩存模塊查詢物聯(lián)網(wǎng)網(wǎng)關與傳感器節(jié)點唯一標識數(shù)據(jù),若命中,則代表傳感數(shù)據(jù)合法,進入步驟四,若查詢分布式高速緩存模塊未命中,則進入步驟三;
步驟三,從關系型數(shù)據(jù)庫存儲模塊查詢網(wǎng)關和傳感器節(jié)點唯一標識數(shù)據(jù),若命中,則代表傳感數(shù)據(jù)合法,將物聯(lián)網(wǎng)網(wǎng)關與傳感器節(jié)點唯一標識數(shù)據(jù)存入分布式高速緩存模塊,然后進入步驟四,若未命中,則代表傳感數(shù)據(jù)不合法,丟棄,進入結(jié)束;
步驟四,將傳感數(shù)據(jù)存入所述nosql數(shù)據(jù)庫存儲模塊。
本發(fā)明的另一目的在于提供一種應用所述物聯(lián)網(wǎng)中海量異構(gòu)傳感數(shù)據(jù)的分布式存儲系統(tǒng)的智能家居。
本發(fā)明的另一目的在于提供一種應用所述物聯(lián)網(wǎng)中海量異構(gòu)傳感數(shù)據(jù)的分布式存儲系統(tǒng)的環(huán)境監(jiān)測系統(tǒng)。
本發(fā)明的另一目的在于提供一種應用所述物聯(lián)網(wǎng)中海量異構(gòu)傳感數(shù)據(jù)的分布式存儲系統(tǒng)的智慧農(nóng)業(yè)控制系統(tǒng)。
本發(fā)明的優(yōu)點及積極效果為:定義了物聯(lián)網(wǎng)傳感數(shù)據(jù)上傳請求格式規(guī)范,物聯(lián)網(wǎng)傳感器數(shù)據(jù)校驗模塊可以校驗傳感數(shù)據(jù)的是否合法;保證了數(shù)據(jù)存儲的合法性;分布式高速緩存模塊可以幫助物聯(lián)網(wǎng)傳感數(shù)據(jù)校驗模塊快速校驗,提高了存儲系統(tǒng)的存儲性能;nosql數(shù)據(jù)庫存儲模塊采用分布式mongodb數(shù)據(jù)庫作為存儲節(jié)點,保證了傳感數(shù)據(jù)存儲的縱向擴展性,而且采用分布式架構(gòu),保證了傳感數(shù)據(jù)存儲的橫向擴展性。本發(fā)明可應用于不同物聯(lián)網(wǎng)應用場景中,如智能家居、環(huán)境監(jiān)測、智慧農(nóng)業(yè)、智能醫(yī)療等;以滿足物聯(lián)網(wǎng)傳感設備指數(shù)級增長所帶來的更高的存儲需求,具有較高可靠性、實時性和可擴展性。所述緩存機制對傳感數(shù)據(jù)校驗時可達90%的緩存命中率;存儲系統(tǒng)從收到傳感數(shù)據(jù)到完成存儲總時間為毫秒級。
附圖說明
圖1是本發(fā)明實施例提供的物聯(lián)網(wǎng)中海量異構(gòu)傳感數(shù)據(jù)的分布式存儲系統(tǒng)結(jié)構(gòu)示意圖;
圖中:1、物聯(lián)網(wǎng)傳感數(shù)據(jù)上傳接口模塊;2、物聯(lián)網(wǎng)傳感數(shù)據(jù)解析模塊;3、物聯(lián)網(wǎng)傳感數(shù)據(jù)校驗模塊;4、關系型數(shù)據(jù)庫存儲模塊;5、nosql數(shù)據(jù)庫存儲模塊;6、分布式高速緩存模塊。
圖2是本發(fā)明實施例提供的物聯(lián)網(wǎng)中海量異構(gòu)傳感數(shù)據(jù)的分布式存儲方法流程圖。
圖3是本發(fā)明實施例提供的物聯(lián)網(wǎng)中海量異構(gòu)傳感數(shù)據(jù)的分布式存儲方法具體實現(xiàn)流程圖。
圖4是本發(fā)明實施例提供的物聯(lián)網(wǎng)傳感數(shù)據(jù)上傳接口格式規(guī)范示意圖。
具體實施方式
為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結(jié)合實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
下面結(jié)合附圖對本發(fā)明的應用原理作詳細的描述。
如圖1所示,本發(fā)明實施例提供的物聯(lián)網(wǎng)中海量異構(gòu)傳感數(shù)據(jù)的分布式存儲系統(tǒng)包括:
物聯(lián)網(wǎng)傳感數(shù)據(jù)上傳接口模塊1:定義統(tǒng)一物聯(lián)網(wǎng)傳感數(shù)據(jù)上傳接口,并將物聯(lián)網(wǎng)傳感數(shù)據(jù)發(fā)送至所述物聯(lián)網(wǎng)數(shù)據(jù)解析模塊2;規(guī)范采用http請求中的post請求方式,由ip地址段、物聯(lián)網(wǎng)網(wǎng)關唯一標識段、傳感器節(jié)點唯一標識段、數(shù)據(jù)段組成;實現(xiàn)物聯(lián)網(wǎng)數(shù)據(jù)傳輸層與物聯(lián)網(wǎng)數(shù)據(jù)中心的松耦合。
物聯(lián)網(wǎng)傳感數(shù)據(jù)解析模塊2,用于負責解析上傳的物聯(lián)網(wǎng)數(shù)據(jù),提取存儲所需的數(shù)據(jù),清洗無用數(shù)據(jù),并將解析后的數(shù)據(jù)發(fā)送至所述物聯(lián)網(wǎng)傳感數(shù)據(jù)校驗模塊3。
物聯(lián)網(wǎng)傳感數(shù)據(jù)校驗模塊3,用于負責校驗所述物聯(lián)網(wǎng)傳感數(shù)據(jù)解析模塊2解析的數(shù)據(jù)是否合法,并將合法數(shù)據(jù)存儲至所述nosql數(shù)據(jù)庫存儲模塊5。
關系型數(shù)據(jù)庫存儲模塊4,用于負責存儲關系型數(shù)據(jù),尤其是物聯(lián)網(wǎng)網(wǎng)關唯一標識和傳感器節(jié)點唯一標識,為所述物聯(lián)網(wǎng)傳感數(shù)據(jù)校驗模塊3提供合法數(shù)據(jù)依據(jù)。
nosql數(shù)據(jù)庫模塊5,用于負責存儲所述物聯(lián)網(wǎng)傳感器數(shù)據(jù)校驗模塊3發(fā)送來的合法數(shù)據(jù),具體采用分布式mongodb數(shù)據(jù)庫。
分布式高速緩存模塊6,用于負責存儲所述物聯(lián)網(wǎng)傳感器數(shù)據(jù)校驗模塊3命中的物聯(lián)網(wǎng)網(wǎng)關唯一標識數(shù)據(jù)和傳感器節(jié)點唯一標識數(shù)據(jù),為下次物聯(lián)網(wǎng)傳感數(shù)據(jù)校驗模塊3提供高速合法數(shù)據(jù)校驗支持,具體采用分布式memcache系統(tǒng)。
如圖2所示,本發(fā)明實施例提供的物聯(lián)網(wǎng)中海量異構(gòu)傳感數(shù)據(jù)的分布式存儲方法包括以下步驟:
s101:用戶先將物聯(lián)網(wǎng)網(wǎng)關唯一標識數(shù)據(jù)和傳感器節(jié)點唯一標識數(shù)據(jù)存入關系型數(shù)據(jù)庫模塊,通過一致性哈希算法將物聯(lián)網(wǎng)網(wǎng)關唯一標識數(shù)據(jù)和傳感器節(jié)點唯一標識數(shù)據(jù)存入不同memcache節(jié)點,物聯(lián)網(wǎng)傳感數(shù)據(jù)接口模塊將數(shù)據(jù)發(fā)送至物聯(lián)網(wǎng)傳感器數(shù)據(jù)解析模塊,解析模塊將請求解析并提取數(shù)據(jù)段,并將數(shù)據(jù)段發(fā)送至物聯(lián)網(wǎng)傳感數(shù)據(jù)校驗模塊;
s102:物聯(lián)網(wǎng)傳感數(shù)據(jù)校驗模塊從傳感數(shù)據(jù)段中提取物聯(lián)網(wǎng)網(wǎng)關與傳感器節(jié)點唯一標識數(shù)據(jù),從分布式高速緩存模塊查詢物聯(lián)網(wǎng)網(wǎng)關與傳感器節(jié)點唯一標識數(shù)據(jù),若命中,則代表傳感數(shù)據(jù)合法,進入步驟s104,若查詢分布式高速緩存模塊未命中,則進入步驟s103;
s103:從關系型數(shù)據(jù)庫存儲模塊查詢網(wǎng)關和傳感器節(jié)點唯一標識數(shù)據(jù),若命中,則代表傳感數(shù)據(jù)合法,將物聯(lián)網(wǎng)網(wǎng)關與傳感器節(jié)點唯一標識數(shù)據(jù)存入分布式高速緩存模塊,然后進入步驟s104,若未命中,則代表傳感數(shù)據(jù)不合法,丟棄,進入結(jié)束;
s104:將傳感數(shù)據(jù)存入所述nosql數(shù)據(jù)庫存儲模塊。
下面結(jié)合附圖對本發(fā)明的應用原理作進一步的描述。
本發(fā)明實施例提供的物聯(lián)網(wǎng)中海量異構(gòu)傳感數(shù)據(jù)的分布式存儲系統(tǒng)包括:物聯(lián)網(wǎng)傳感數(shù)據(jù)上傳接口模塊1、物聯(lián)網(wǎng)傳感數(shù)據(jù)解析模塊2、物聯(lián)網(wǎng)傳感數(shù)據(jù)校驗模塊3、關系型數(shù)據(jù)庫存儲模塊4、nosql數(shù)據(jù)庫存儲模塊5、分布式高速緩存模塊6共六個模塊。
物聯(lián)網(wǎng)傳感數(shù)據(jù)接口模塊1,定義物聯(lián)網(wǎng)傳感數(shù)據(jù)上傳格式規(guī)范,具體定義如圖4所示,由ip地址段、物聯(lián)網(wǎng)網(wǎng)關唯一標識段、傳感器節(jié)點唯一標識段、數(shù)據(jù)段組成;實現(xiàn)物聯(lián)網(wǎng)數(shù)據(jù)傳輸層與物聯(lián)網(wǎng)數(shù)據(jù)中心的松耦合。
關系型數(shù)據(jù)庫存儲模塊4,由分布式關系型數(shù)據(jù)庫組成,包含多個關系型節(jié)點,具體由1個關系型數(shù)據(jù)庫主節(jié)點和n個關系型數(shù)據(jù)庫從節(jié)點組成,主節(jié)點與從節(jié)點之間通過主從復制實現(xiàn)數(shù)據(jù)的一致性,所有的存儲操作都在主節(jié)點進行,所有的查詢操作通過負載均衡在從節(jié)點進行,從而實現(xiàn)讀寫分離,所述關系型數(shù)據(jù)庫存儲模塊4用于存儲不同物聯(lián)網(wǎng)應用場景中的關系型數(shù)據(jù),具體為用戶數(shù)據(jù)、管理數(shù)據(jù)、配置數(shù)據(jù)、物聯(lián)網(wǎng)網(wǎng)關唯一標識數(shù)據(jù)和傳感器節(jié)點唯一標識數(shù)據(jù)等。
nosql數(shù)據(jù)庫存儲模塊5,由分布式mongodb數(shù)據(jù)庫組成,采用mongodb的replicaset集群方式,具體由1個主mongodb節(jié)點,1個仲裁節(jié)點,n個備mongodb節(jié)點,具體幾個備mongodb節(jié)點由數(shù)據(jù)存儲需求再進行配置,主mongodb節(jié)點負責存儲傳感數(shù)據(jù),主mongodb節(jié)點與備mongodb節(jié)點之間保持數(shù)據(jù)一致性;通過負載均衡,備mongodb節(jié)點負責查詢傳感數(shù)據(jù),仲裁節(jié)點不存儲數(shù)據(jù),用于當主mongodb節(jié)點宕機時,通過選舉算法,從n個備mongodb節(jié)點中選舉一個重新作為主mongodb節(jié)點工作。
分布式高速緩存模塊6,由分布式memcache系統(tǒng)組成,包含多個memcache節(jié)點,具體包含n個memcache節(jié)點,每次啟動需通過一致性哈希算法,將物聯(lián)網(wǎng)網(wǎng)關唯一標識數(shù)據(jù)和傳感器節(jié)點唯一標識數(shù)據(jù)平均散列到n個memcache節(jié)點,用于所述物聯(lián)網(wǎng)傳感數(shù)據(jù)校驗模塊3工作時快速匹配數(shù)據(jù)。
如圖3所示,本發(fā)明實施例提供的物聯(lián)網(wǎng)中海量異構(gòu)傳感數(shù)據(jù)的分布式存儲方法包括以下步驟:
步驟s201,物聯(lián)網(wǎng)傳感數(shù)據(jù)接口模塊收到數(shù)據(jù)存儲請求,代表存儲系統(tǒng)輸入傳感數(shù)據(jù)請求,物聯(lián)網(wǎng)傳感數(shù)據(jù)接口模塊將傳感數(shù)據(jù)請求發(fā)送至物聯(lián)網(wǎng)傳感數(shù)據(jù)解析模塊;
步驟s202,物聯(lián)網(wǎng)傳感數(shù)據(jù)解析模塊解析步驟s201傳感數(shù)據(jù)請求,提取傳感數(shù)據(jù)段,并將傳感數(shù)據(jù)段發(fā)送至物聯(lián)網(wǎng)傳感數(shù)據(jù)校驗模塊;
步驟s203,物聯(lián)網(wǎng)傳感數(shù)據(jù)校驗模塊校驗步驟s202發(fā)送的傳感數(shù)據(jù)段;
步驟s204,校驗時,先從分布式高速緩存模塊查詢物聯(lián)網(wǎng)網(wǎng)關唯一標識數(shù)據(jù)和傳感器節(jié)點唯一標識數(shù)據(jù),若步驟s203中傳感數(shù)據(jù)段中的物聯(lián)網(wǎng)網(wǎng)關唯一標識數(shù)據(jù)和傳感器節(jié)點唯一標識數(shù)據(jù)在分布式高速緩存模塊中查詢到,則代表傳感數(shù)據(jù)合法;
步驟s205,將合法的物聯(lián)網(wǎng)傳感數(shù)據(jù)存入nosql數(shù)據(jù)庫存儲模塊,即將合法的傳感數(shù)據(jù)存入分布式mongodb節(jié)點中的主mongodb節(jié)點;
步驟s206,若步驟s204中傳感數(shù)據(jù)段中的物聯(lián)網(wǎng)網(wǎng)關唯一標識數(shù)據(jù)和傳感器節(jié)點唯一標識數(shù)據(jù)在分布式高速緩存模塊中未查詢到,則在關系型數(shù)據(jù)庫存儲模塊進行查詢,及在關系型數(shù)據(jù)庫存儲模塊的關系型數(shù)據(jù)庫從節(jié)點進行查詢,若查詢到,則代表傳感數(shù)據(jù)合法;
步驟s207,將上述步驟s206中從關系型數(shù)據(jù)庫存儲模塊查詢到的物聯(lián)網(wǎng)網(wǎng)關唯一標識數(shù)據(jù)和傳感器節(jié)點唯一標識數(shù)據(jù)通過一致性哈希算法存儲到分布式高速緩存模塊,及memcache節(jié)點;
步驟s208,經(jīng)步驟s204和步驟206都未查詢到,則代表傳感數(shù)據(jù)不合法,丟棄;
步驟s209,結(jié)束。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。