本發(fā)明涉及分布式實時數(shù)據(jù)庫,具體地,涉及分布式實時數(shù)據(jù)庫的存儲系統(tǒng)的架構。本發(fā)明能夠廣泛應用于工業(yè)大數(shù)據(jù)存儲。
背景技術:
伴隨著工業(yè)4.0的持續(xù)推進,工業(yè)設備的智能化以及企業(yè)的信息化改造將快速推進,由此也帶來了數(shù)據(jù)的爆發(fā)式增長,對傳統(tǒng)的實時數(shù)據(jù)庫在點數(shù)規(guī)模、數(shù)據(jù)分布、可靠性、擴展性等多個方面提出了巨大挑戰(zhàn)。對比研究目前國際領先的實時數(shù)據(jù)庫產(chǎn)品pi、phd,發(fā)現(xiàn)這些產(chǎn)品在面對工業(yè)大數(shù)據(jù)時都具有如下的局限性:
(1)數(shù)據(jù)存儲服務未能實現(xiàn)分布式架構,當單機服務異常時將導致服務不可用,無法提供檢索和存儲功能;
(2)數(shù)據(jù)存儲無副本機制,數(shù)據(jù)的安全性需要用戶自己備份,無法保證在磁盤損壞時所有的數(shù)據(jù)擁有可靠的備份;
(3)缺乏靈活的動態(tài)擴展能力,當存儲性能或者存儲容量達到瓶頸時難以做到動態(tài)的水平擴展;
(4)數(shù)據(jù)檢索能力有限,僅僅支持按照時間戳的檢索條件,對于按值范圍或者模糊檢索不支持;
(5)計算能力有限,僅僅能夠根據(jù)其提供的有限的計算方法進行計算,無法有效地利大數(shù)據(jù)分布式計算技術實現(xiàn)對海量數(shù)據(jù)的計算分析
經(jīng)檢索,發(fā)現(xiàn)如下相關檢索結果。
相關檢索結果1:
申請?zhí)枺篶n201410144241.3名稱:一種適用于電力系統(tǒng)的分布式實時數(shù)據(jù)庫管理系統(tǒng)及實現(xiàn)方法
摘要:該專利文獻公開了一種適用于電力系統(tǒng)的實時數(shù)據(jù)庫管理系統(tǒng)及實現(xiàn)方法,屬于數(shù)據(jù)庫技術領域。本發(fā)明的實時數(shù)據(jù)庫管理系統(tǒng)包括服務端、實時數(shù)據(jù)庫端和客戶端,并利用文件映射、實例id、版本號、客戶端緩存等機制來實現(xiàn)實時數(shù)據(jù)庫的分布式管理。本發(fā)明實現(xiàn)了多個數(shù)據(jù)庫實例的透明化,讓客戶對多個數(shù)據(jù)庫實例的訪問視同為對單個實例的訪問。本發(fā)明有利于數(shù)據(jù)庫全省集中式部署,同時便于全省統(tǒng)一數(shù)據(jù)規(guī)劃、數(shù)據(jù)模型和數(shù)據(jù)標準,還能滿足現(xiàn)有及未來數(shù)據(jù)接入需求。
技術要點比較:該專利文獻給出了利用hash算法實現(xiàn)數(shù)據(jù)的分布式存儲,但是對于數(shù)據(jù)的一致性、可靠性、安全性和擴展性沒有給出具體的技術方案。本發(fā)明不僅給出了高擴展性的分布式架構,而且解決了高可用、數(shù)據(jù)安全和整體系統(tǒng)的彈性擴展問題,該專利文獻只是本發(fā)明分布式存儲服務數(shù)據(jù)分片存儲的一個子集。
相關檢索結果2:
申請?zhí)枺?01110286149.7名稱:分布式實時數(shù)據(jù)庫數(shù)據(jù)層次索引方法
摘要:該專利文獻屬于分布式實時數(shù)據(jù)庫領域,提供了一種分布式環(huán)境下的實時數(shù)據(jù)庫層次索引方法,該方法在實現(xiàn)實時數(shù)據(jù)庫分布式的條件下,將數(shù)據(jù)存儲服務器對應哈希鍵值,并首尾相連構成環(huán)形哈??臻g,并建立數(shù)據(jù)層次索引方法,保證了實時數(shù)據(jù)庫數(shù)據(jù)的高效存儲和檢索。
技術要點比較:該專利文獻給出了分布式實時數(shù)據(jù)庫的檢索技術方案,但并未給出在分布式環(huán)境下索引數(shù)據(jù)本身的安全可靠的分布式存儲方案,未能徹底解決分布式實時數(shù)據(jù)庫面臨的數(shù)據(jù)一致性和安全性挑戰(zhàn)。
相關檢索結果3:
科技論文:名稱:基于云技術的分布式實時數(shù)據(jù)庫高性能數(shù)據(jù)存儲檢索機制的研究,錢益舟,2012年《浙江大學》
摘要:隨著大型流程工業(yè)迅速發(fā)展,企業(yè)生產(chǎn)信息化要求不斷提高。實時數(shù)據(jù)庫系統(tǒng)作為工業(yè)信息化基礎數(shù)據(jù)平臺,對點數(shù)規(guī)模、數(shù)據(jù)分布、可靠性、擴展性的要求不斷提高。系統(tǒng)現(xiàn)有架構存在規(guī)模相對固定、性能難以擴展、靈活性不足的缺點,難以滿足海量存儲、分布式冗余備份、規(guī)模動態(tài)調整等需求。當前云計算技術以其海量數(shù)據(jù)存儲、規(guī)模動態(tài)擴展、系統(tǒng)可用性可靠性高等特點得到了廣泛的運用。因此本文對系統(tǒng)架構做出大膽變革,將云計算核心技術引入到實時系統(tǒng)中來,在分布式架構下設計實現(xiàn)實時數(shù)據(jù)存儲檢索機制。本文通過研究現(xiàn)有實時數(shù)據(jù)存儲檢索技術與云計算核心技術之一的高性能分布式存儲技術,結合實時數(shù)據(jù)特點與動態(tài)擴展要求,基于分布式通訊服務平臺,提出一種具有分布式應用特點的實時數(shù)據(jù)存儲檢索機制,實現(xiàn)海量數(shù)據(jù)實時寫入、分布式存儲、多重冗余備份、數(shù)據(jù)檢索準確高效并支持系統(tǒng)規(guī)模動態(tài)擴展。本文以云計算技術為背景,基于分布式通訊服務平臺,結合應用需求將分布式實時數(shù)據(jù)庫數(shù)據(jù)存儲檢索機制的研究要點劃分為數(shù)據(jù)存儲、數(shù)據(jù)組織與數(shù)據(jù)檢索三部分。通過利用分布式哈希表(dht)技術,將分布式數(shù)據(jù)存儲機制簡化為本地數(shù)據(jù)存儲,在機制框架內(nèi)最大程度地利用集中式數(shù)據(jù)存儲技術;數(shù)據(jù)組織機制以數(shù)據(jù)點、記錄單元設計為基礎,實現(xiàn)數(shù)據(jù)“版本化”管理和數(shù)據(jù)頁序列管理,并設計數(shù)據(jù)遷移、副本同步、一致性修復等機制;數(shù)據(jù)檢索機制結合系統(tǒng)數(shù)據(jù)組織與數(shù)據(jù)分布特性進行檢索任務的分割與分發(fā),針對“版本化”數(shù)據(jù)進行查詢算法與流程設計,并通過緩存設計進一步提高檢索性能。本文最后搭建測試平臺、設計測試用例,對數(shù)據(jù)存儲性能、數(shù)據(jù)檢索性能進行功能、性能測試。結果表明系統(tǒng)能夠實現(xiàn)海量數(shù)據(jù)實時寫入、數(shù)據(jù)分布式冗余存儲、數(shù)據(jù)檢索準確高效并支持系統(tǒng)規(guī)模動態(tài)擴展,達到設計需求。
技術要點比較:該科技論文從理論上闡述了分布式實時數(shù)據(jù)庫高性能數(shù)據(jù)存儲與檢索機制并給出了對應的算法,但未能具體給出行之有效可擴展的架構設計,整個架構設計過于籠統(tǒng),對于數(shù)據(jù)傳輸?shù)目煽啃员WC、實時流數(shù)據(jù)處理和分布式索引機制以及對于未來的分布式計算的支撐并未能給出明確的設計方案。
技術實現(xiàn)要素:
針對現(xiàn)有技術中的缺陷,本發(fā)明的目的是提供一種分布式實時數(shù)據(jù)庫的存儲系統(tǒng)。本發(fā)明要解決的技術問題是如何基于當前流行的開源的大數(shù)據(jù)處理技術,實現(xiàn)分布式的實時數(shù)據(jù)庫系統(tǒng),使其具有高可靠、高可用、高性能和動態(tài)擴展的特性,滿足工業(yè)大數(shù)據(jù)的存儲要求,彌補傳統(tǒng)的實時數(shù)據(jù)庫的不足。
根據(jù)本發(fā)明提供的一種分布式實時數(shù)據(jù)庫的存儲系統(tǒng),包括:
分布式數(shù)據(jù)網(wǎng)關模塊:用于數(shù)據(jù)的接收與查詢代理;
分布式消息隊列模塊:用于通過分布式消息隊列實現(xiàn)數(shù)據(jù)的發(fā)布與訂閱;
分布式實時流計算服務模塊:用于基于storm實時流計算框架,實現(xiàn)消息訂閱服務、內(nèi)存快照存儲服務以及持久化存儲服務;
分布式緩存服務模塊:用于通過分布式緩存存儲數(shù)據(jù)快照;
分布式存儲服務模塊:通過nosql數(shù)據(jù)庫hbase進行分布式存儲服務,通過分布式搜索引擎solr實現(xiàn)數(shù)據(jù)的檢索。
優(yōu)選地,在數(shù)據(jù)存儲過程中:
分布式數(shù)據(jù)網(wǎng)關模塊在分布式消息隊列模塊中創(chuàng)建數(shù)據(jù)存儲話題和數(shù)據(jù)變化訂閱話題,通過數(shù)據(jù)存儲話題實現(xiàn)數(shù)據(jù)的上傳,通過數(shù)據(jù)變化訂閱話題接收數(shù)據(jù)變化,從而在數(shù)據(jù)變化時通知分布式實時數(shù)據(jù)庫的客戶端;
第三方客戶端調用分布式實時數(shù)據(jù)庫的客戶端傳輸數(shù)據(jù);
分布式數(shù)據(jù)網(wǎng)關模塊的負載均衡服務器接收到數(shù)據(jù),將數(shù)據(jù)發(fā)送到負荷較小的數(shù)據(jù)網(wǎng)關,數(shù)據(jù)網(wǎng)關將數(shù)據(jù)發(fā)送到分布式消息隊列中的數(shù)據(jù)存儲話題;
分布式實時流計算服務模塊從數(shù)據(jù)存儲話題中接收到訂閱消息,傳送給消息訂閱服務;
消息訂閱服務在數(shù)據(jù)發(fā)生變化以及該數(shù)據(jù)被分布式實時數(shù)據(jù)庫訂閱時,將該數(shù)據(jù)通過數(shù)據(jù)變化訂閱話題發(fā)布出去,并將數(shù)據(jù)路由到內(nèi)存快照存儲服務;
內(nèi)存快照存儲服務將數(shù)據(jù)發(fā)送到分布式緩存服務模塊進行快照的存儲,并將數(shù)據(jù)路由到持久化存儲服務;
持久化存儲將數(shù)據(jù)發(fā)送到分布式存儲服務模塊進行數(shù)據(jù)的持久化存儲;
分布式存儲服務模塊接收數(shù)據(jù),一方面將數(shù)據(jù)傳輸?shù)椒植际剿阉饕鎠olr進行數(shù)據(jù)的異步索引,另一方面將數(shù)據(jù)序列化存儲到hadoop的分布式文件系統(tǒng)中。
優(yōu)選地,在數(shù)據(jù)檢索過程中:
第三方客戶端通過分布式實時數(shù)據(jù)庫的客戶端提交數(shù)據(jù)查詢命令到分布式數(shù)據(jù)網(wǎng)關模塊;
分布式數(shù)據(jù)網(wǎng)關模塊根據(jù)查詢類型進行分類查詢,具體的:對于內(nèi)存快照查詢,直接查詢分布式緩存服務模塊;對于時間查詢,直接通過hbase的行鍵查詢;對于按值查詢,直接提交給solr查詢;
分布式數(shù)據(jù)網(wǎng)關模塊返回查詢結果。
優(yōu)選地,分布式數(shù)據(jù)網(wǎng)關模塊中的分布式數(shù)據(jù)網(wǎng)關采用haproxy和多個數(shù)據(jù)節(jié)點的分布式部署方式,分布式消息隊列基于分布式消息隊列kafka;數(shù)據(jù)傳輸?shù)陌踩杂蒶afka消息序列化機制和副本機制保證,數(shù)據(jù)處理的安全性由storm分布式框架的容錯機制和數(shù)據(jù)被處理且僅被處理一次的機制保證,數(shù)據(jù)存儲的安全性則由hbase的數(shù)據(jù)存儲副本機制保證;采用hbase的行鍵索引和solr索引相結合;分布式數(shù)據(jù)網(wǎng)關采用netty的純異步rpc通信框架,采用分布式的部署方式。
優(yōu)選地,在數(shù)據(jù)存儲過程中:分布式緩存服務模塊存儲標簽tag點對應的數(shù)據(jù)項;分布式存儲服務模塊將不同的標簽tag點數(shù)據(jù)放在同一行,通過時間作為主鍵。
與現(xiàn)有技術相比,本發(fā)明具有如下的有益效果:
本發(fā)明給出了一種純分布式實時數(shù)據(jù)庫的存儲系統(tǒng),可有效的解決傳統(tǒng)的實時數(shù)據(jù)庫在應對工業(yè)大數(shù)據(jù)在可靠性、擴展性、檢索和其上的計算支撐能力的不足,有效地提升企業(yè)的智能化和信息化水平,并利用大數(shù)據(jù)技術挖掘潛在的數(shù)據(jù)價值,為企業(yè)的轉型發(fā)展提供堅實的數(shù)據(jù)基礎。
附圖說明
通過閱讀參照以下附圖對非限制性實施例所作的詳細描述,本發(fā)明的其它特征、目的和優(yōu)點將會變得更明顯:
圖1為分布式實時數(shù)據(jù)庫架構圖。
圖2為分布式數(shù)據(jù)緩存服務數(shù)據(jù)存儲格式圖。
具體實施方式
下面結合具體實施例對本發(fā)明進行詳細說明。以下實施例將有助于本領域的技術人員進一步理解本發(fā)明,但不以任何形式限制本發(fā)明。應當指出的是,對本領域的普通技術人員來說,在不脫離本發(fā)明構思的前提下,還可以做出若干變化和改進。這些都屬于本發(fā)明的保護范圍。
根據(jù)本發(fā)明提供的一種分布式實時數(shù)據(jù)庫的存儲系統(tǒng),包括:
分布式數(shù)據(jù)網(wǎng)關模塊:用于數(shù)據(jù)的接收與查詢代理;
分布式消息隊列模塊:用于通過分布式消息隊列實現(xiàn)數(shù)據(jù)的發(fā)布與訂閱;
分布式實時流計算服務模塊:用于基于storm實時流計算框架,實現(xiàn)消息訂閱服務、內(nèi)存快照存儲服務以及持久化存儲服務;
分布式緩存服務模塊:用于通過分布式緩存存儲數(shù)據(jù)快照;
分布式存儲服務模塊:通過nosql數(shù)據(jù)庫hbase進行分布式存儲服務,通過分布式搜索引擎solr實現(xiàn)數(shù)據(jù)的檢索。
優(yōu)選地,在數(shù)據(jù)存儲過程中:
分布式數(shù)據(jù)網(wǎng)關模塊在分布式消息隊列模塊中創(chuàng)建數(shù)據(jù)存儲話題和數(shù)據(jù)變化訂閱話題,通過數(shù)據(jù)存儲話題實現(xiàn)數(shù)據(jù)的上傳,通過數(shù)據(jù)變化訂閱話題接收數(shù)據(jù)變化,從而在數(shù)據(jù)變化時通知分布式實時數(shù)據(jù)庫的客戶端;
第三方客戶端調用分布式實時數(shù)據(jù)庫的客戶端傳輸數(shù)據(jù);
分布式數(shù)據(jù)網(wǎng)關模塊的負載均衡服務器接收到數(shù)據(jù),將數(shù)據(jù)發(fā)送到負荷較小的數(shù)據(jù)網(wǎng)關,數(shù)據(jù)網(wǎng)關將數(shù)據(jù)發(fā)送到分布式消息隊列中的數(shù)據(jù)存儲話題;
分布式實時流計算服務模塊從數(shù)據(jù)存儲話題中接收到訂閱消息,傳送給消息訂閱服務;
消息訂閱服務在數(shù)據(jù)發(fā)生變化以及該數(shù)據(jù)被分布式實時數(shù)據(jù)庫訂閱時,將該數(shù)據(jù)通過數(shù)據(jù)變化訂閱話題發(fā)布出去,并將數(shù)據(jù)路由到內(nèi)存快照存儲服務;
內(nèi)存快照存儲服務將數(shù)據(jù)發(fā)送到分布式緩存服務模塊進行快照的存儲,并將數(shù)據(jù)路由到持久化存儲服務;
持久化存儲將數(shù)據(jù)發(fā)送到分布式存儲服務模塊進行數(shù)據(jù)的持久化存儲;
分布式存儲服務模塊接收數(shù)據(jù),一方面將數(shù)據(jù)傳輸?shù)椒植际剿阉饕鎠olr進行數(shù)據(jù)的異步索引,另一方面將數(shù)據(jù)序列化存儲到hadoop的分布式文件系統(tǒng)中。
優(yōu)選地,在數(shù)據(jù)檢索過程中:
第三方客戶端通過分布式實時數(shù)據(jù)庫的客戶端提交數(shù)據(jù)查詢命令到分布式數(shù)據(jù)網(wǎng)關模塊;
分布式數(shù)據(jù)網(wǎng)關模塊根據(jù)查詢類型進行分類查詢,具體的:對于內(nèi)存快照查詢,直接查詢分布式緩存服務模塊;對于時間查詢,直接通過hbase的行鍵查詢;對于按值查詢,直接提交給solr查詢;
分布式數(shù)據(jù)網(wǎng)關模塊返回查詢結果。
優(yōu)選地,分布式數(shù)據(jù)網(wǎng)關模塊中的分布式數(shù)據(jù)網(wǎng)關采用haproxy和多個數(shù)據(jù)節(jié)點的分布式部署方式,分布式消息隊列基于分布式消息隊列kafka;數(shù)據(jù)傳輸?shù)陌踩杂蒶afka消息序列化機制和副本機制保證,數(shù)據(jù)處理的安全性由storm分布式框架的容錯機制和數(shù)據(jù)被處理且僅被處理一次的機制保證,數(shù)據(jù)存儲的安全性則由hbase的數(shù)據(jù)存儲副本機制保證;采用hbase的行鍵索引和solr索引相結合;分布式數(shù)據(jù)網(wǎng)關采用netty的純異步rpc通信框架,采用分布式的部署方式。
優(yōu)選地,在數(shù)據(jù)存儲過程中:分布式緩存服務模塊存儲標簽tag點對應的數(shù)據(jù)項;分布式存儲服務模塊將不同的標簽tag點數(shù)據(jù)放在同一行,通過時間作為主鍵。
下面對本發(fā)明進行更為詳細的說明。
分布式實時數(shù)據(jù)庫的存儲系統(tǒng)的架構見圖1,主要由如下幾個模塊組成:
分布式數(shù)據(jù)網(wǎng)關模塊:分布式數(shù)據(jù)網(wǎng)關模塊主要由負載均衡服務(lb)模塊和多個數(shù)據(jù)網(wǎng)關構成(gw),通過分布式的數(shù)據(jù)網(wǎng)關實現(xiàn)數(shù)據(jù)的接收與查詢代理,該數(shù)據(jù)網(wǎng)關完全采用無狀態(tài)設計模式,從而任何一臺網(wǎng)關的異常都不會導致整個系統(tǒng)的異常;
分布式消息隊列模塊:分布式消息隊列模塊采用開源的kafka消息隊列,由多個broker節(jié)點組成,通過分布式消息隊列實現(xiàn)數(shù)據(jù)的發(fā)布與訂閱功能,該消息隊列必須滿足高吞吐量、高可靠性和持久化能力,從而實現(xiàn)數(shù)據(jù)的可靠傳輸;
分布式實時流計算服務模塊:基于分布式實時流處理框架storm,實現(xiàn)了消息訂閱(notifybolt)、內(nèi)存快照存儲(memstorebolt)和持久化存儲(persistentbolt)三個服務,通過實時流計算服務,對于上傳的數(shù)據(jù)進行計算、變化訂閱通知、內(nèi)存快照存儲與持久化存儲,該框架必須滿足動態(tài)可擴展,高可用和實時性,任何一臺節(jié)點的宕機不會影響數(shù)據(jù)的處理,確保數(shù)據(jù)可以被流式框架中的所有數(shù)據(jù)處理任務執(zhí)行,同時可以動態(tài)的在流計算服務中新增任務,滿足對實時流處理的動態(tài)需求;
分布式緩存服務模塊:基于nosql數(shù)據(jù)庫redis進行設計,通過分布式緩存存儲數(shù)據(jù)快照,也就是數(shù)據(jù)的最新值,確保數(shù)據(jù)的實時檢索性能;
分布式存儲服務模塊:分布式存儲服務是通過nosql數(shù)據(jù)庫hbase進行存儲,通過分布式搜索引擎solr實現(xiàn)數(shù)據(jù)的檢索,分布式存儲服務是用來做工業(yè)數(shù)據(jù)的持久化存儲,其必須滿足大容量、高可靠、高性能、數(shù)據(jù)副本安全、動態(tài)擴展和對基于其上的分布式計算框架的支持,是整個分布式實時數(shù)據(jù)庫的核心。
分布式實時數(shù)據(jù)庫的存儲系統(tǒng)的存儲流程如下:
1)系統(tǒng)初始化,分布式數(shù)據(jù)網(wǎng)關模塊在分布式消息隊列模塊中創(chuàng)建數(shù)據(jù)存儲topic和數(shù)據(jù)變化訂閱topic,通過數(shù)據(jù)存儲topic實現(xiàn)數(shù)據(jù)的上傳,通過數(shù)據(jù)變化訂閱topic接收數(shù)據(jù)變化,從而實現(xiàn)數(shù)據(jù)變化通知客戶端的功能;
2)第三方數(shù)據(jù)采集客戶端調用分布式實時數(shù)據(jù)庫客戶端sdk傳輸數(shù)據(jù);
3)分布式數(shù)據(jù)網(wǎng)關的lb服務器接收到數(shù)據(jù),將數(shù)據(jù)發(fā)送到負荷較小的數(shù)據(jù)網(wǎng)關節(jié)點,數(shù)據(jù)網(wǎng)關節(jié)點將數(shù)據(jù)發(fā)送到分布式消息隊列中的數(shù)據(jù)存儲topic;
4)分布式流式計算服務spout從數(shù)據(jù)存儲topic中接收到訂閱消息,傳送給notifybolt;
5)notifybolt判斷數(shù)據(jù)是否變化以及該數(shù)據(jù)是否被客戶端訂閱,如果滿足變化和被訂閱的條件,將該數(shù)據(jù)通過數(shù)據(jù)變化訂閱topic發(fā)布出去,并同時將數(shù)據(jù)路由到memstorebolt;
6)分布式流式計算服務memstorebolt將數(shù)據(jù)發(fā)送到分布式緩存服務進行快照的存儲,并同時將數(shù)據(jù)路由到persistentbolt;
7)分布式流式計算服務persistentbolt將數(shù)據(jù)發(fā)送到分布式存儲服務進行數(shù)據(jù)的持久化存儲;
8)分布式存儲服務接收數(shù)據(jù),一方面通過hbase的sep處理器將數(shù)據(jù)傳輸?shù)椒植际剿阉饕鎠olr進行數(shù)據(jù)的異步索引,另一方面通過其hbase自身機制將數(shù)據(jù)序列化存儲到hadoop的hdfs系統(tǒng)中。
分布式實時數(shù)據(jù)庫的存儲系統(tǒng)的數(shù)據(jù)檢索流程如下:
1)第三方服務通過sdk提交數(shù)據(jù)查詢命令到分布式數(shù)據(jù)網(wǎng)關;
2)分布式數(shù)據(jù)網(wǎng)關根據(jù)查詢類型進行分類查詢,具體如下:
對于內(nèi)存快照查詢,其直接查詢分布式緩存服務;
對于時間查詢,直接通過hbase的行鍵查詢;
對于按值查詢,直接提交給solr查詢
3)分布式網(wǎng)關返回查詢結果。
分布式實時數(shù)據(jù)庫的存儲系統(tǒng)的存儲流程特性分析:
高可靠性與動態(tài)擴展:整個系統(tǒng)采用純分布式架構無單點故障,分布式數(shù)據(jù)網(wǎng)關采用haproxy加多個數(shù)據(jù)節(jié)點的分布式部署方式,分布式消息隊列基于分布式消息隊列kafka,分布式流式計算框架采用storm,分布式存儲采用hbase,對應的數(shù)據(jù)索引采用solr分布式搜索引擎,采用這種分布式架構系統(tǒng)可方便的進行節(jié)點動態(tài)擴展;
數(shù)據(jù)安全性:數(shù)據(jù)傳輸?shù)陌踩杂蒶afka消息序列化機制和副本機制保證,數(shù)據(jù)處理的安全性由storm分布式框架的容錯機制和數(shù)據(jù)被處理且僅被處理一次的機制保證,數(shù)據(jù)存儲的安全性則由hbase的數(shù)據(jù)存儲副本機制保證,整個系統(tǒng)從數(shù)據(jù)的傳輸、處理到最后存儲均安全可靠;
多維度查詢:采用hbase的行鍵索引和solr索引相結合,可實現(xiàn)對于數(shù)值的多種復雜條件組合查詢,例如正則表達式查詢;
分布式計算的支持:對于實時計算我們采用了storm流式計算框架,僅僅需要在storm中增加對應的數(shù)據(jù)計算bolt即可,對于并行分布式計算,由于我們采用了hbase+hdfs的存儲方式,可方便的采用spark分布式計算框架對歷史數(shù)據(jù)進行計算分析;
高性能:分布式數(shù)據(jù)網(wǎng)關采用netty的純異步rpc通信框架,采用分布式的部署方式,可實現(xiàn)性能的任意擴展,所采用的消息隊列服務、流式計算服務、分布式內(nèi)存服務和分布式存儲服務均具有高性能和彈性擴展的能力,整個系統(tǒng)的性能可通過增加節(jié)點數(shù)得到快速的提升;
分布式實時數(shù)據(jù)庫的存儲系統(tǒng)的存儲結構設計:
工業(yè)數(shù)據(jù)主要是時序數(shù)據(jù),數(shù)據(jù)通常是由點名tag、值、時間戳、數(shù)據(jù)質量四個部分組成,其在分布式緩存服務和分布式存儲服務中存儲結構分別如圖2所示。
分布式緩存服務采用redis的hmset數(shù)據(jù)結構,存儲tag點對應的數(shù)據(jù)項;
分布式存儲服務采用hbase的無模式稀疏設計,將不同的tag點數(shù)據(jù)放在同一行,通過時間作為主鍵。
在一個優(yōu)選的具體實施方式中,本發(fā)明采用:
四臺x86服務器(命名為a、b、c、d),且內(nèi)存配置不低于64g,cpu推薦最低e2650。
部署分布式網(wǎng)關服務模塊,lb服務器部署在a,網(wǎng)關服務器部署在b、c、d。
部署分布式消息隊列服務模塊,將kafka同時部署在a、b、c、d四臺機器并完成集群的配置。
部署分布式流式計算服務模塊,將stormnimbus部署在節(jié)點a,b、c、d分別部署supervisor節(jié)點并完成集群的配置。
部署分布式緩存服務模塊,將redis分別部署在節(jié)點a,b、c、d并完成集群的配置。
部署分布式存儲服務模塊,將hbase的master部署在節(jié)點a,節(jié)點b、c、d分別部署regionserver,同時完成hadoop環(huán)境的配置,將hadoop的namenode部署在節(jié)點a,節(jié)點b、c、d分別部署datanode并完成集群的配置。
在一個能源云能耗數(shù)據(jù)存儲平臺的應用中:
(1)配置能源云數(shù)據(jù)采集網(wǎng)關,配置需要采集的點
(2)能源云數(shù)據(jù)采集網(wǎng)關從智能設備采集到數(shù)據(jù),通過分布式實時數(shù)據(jù)庫存儲客戶端sdk發(fā)送數(shù)據(jù)到分布式數(shù)據(jù)網(wǎng)關
(3)分布式數(shù)據(jù)網(wǎng)關將數(shù)據(jù)發(fā)送到分布式消息隊列
(4)分布式流式數(shù)據(jù)處理服務從分布式消息隊列里消費數(shù)據(jù),依次通過notifybolt、memstorebolt和persistentbolt完成數(shù)據(jù)的變化通知、快照存儲和持久化存儲。
以上對本發(fā)明的具體實施例進行了描述。需要理解的是,本發(fā)明并不局限于上述特定實施方式,本領域技術人員可以在權利要求的范圍內(nèi)做出各種變化或修改,這并不影響本發(fā)明的實質內(nèi)容。在不沖突的情況下,本申請的實施例和實施例中的特征可以任意相互組合。