摘要:實現建筑精細化管理需要面向建筑能耗、環境、設備運行和使用需求等海量數據。提出一種面向大數據的建筑能耗與環境實時管理云平臺架構設計,通過應用分布式消息中間件、分布式NewSQL數據庫、分布式計算框架等大數據技術,以及深度神經網絡與機器學習框架等人工智能技術,滿足海量數據集成、存儲、處理和分析需求。這些成果可以為建筑高效運行管理提供技術支撐。
關鍵詞:建筑能耗與環境;實時管理;系統架構;大數據;分布式
1背景
我國國家機關和大型公共建筑能耗監測系統建設示范覆蓋了30多個省、自治區、直轄市,以及計劃單列市,全國累計監測11000余棟建筑[1],已經積累了大量的建筑能耗數據。但是,目前這些數據有效利用率不高,平臺價值未充分發揮。其中一個很重要的原因是建筑能耗監測平臺數據全面性不夠,只有能耗數據,甚至只有分項電耗數據。要為建筑運行管理提供更有效的數據支撐,應充分采集建筑各種能耗數據、室內外環境數據、機電設備運行數據,以及人流等使用需求數據,但會造成數據量的急劇增長,因而對平臺的數據集成能力、存儲能力、處理能力、分析能力和展現能力都提出了很大的挑戰。
2建筑能耗與環境管理平臺新需求
建筑能耗與環境管理平臺要為建筑運行管理提供更有效的技術支撐,面向的海量數據對此提出了新的要求。
(1)強大的數據集成能力:需要集成大量的建筑能源、室內外環境、機電系統設備運行數據以及使用需求。
(2)海量數據存儲和處理能力:平臺的存儲和處理能力應該能夠進行水平擴展,以滿足海量數據存儲和處理的需求。
(3)智能的數據分析能力:集成機器學習、深度學習等人工智能技術,能夠基于大數據進行建筑能耗預測、診斷和優化等應用。
(4)豐富的數據展現能力和友好易用的用戶界面:在Web端和移動APP端為用戶提供多端應用。
3面向大數據的云平臺架構設計
3.1 平臺總體架構
為滿足海量數據傳輸、集成、存儲和分析需求,平臺采用大數據技術和人工智能技術構建,總體架構可分為數據集成、數據存儲、數據處理、數據分析、數據展現等,如圖1所示。
圖 1 面向大數據的云平臺總體架構
(1)建筑的能源、環境和設備運行實時數據傳輸到分布式消息中間件,可同時支持MQTT協議、TCP協議和WebService協議接口。
(2)消息處理子系統從消息中間件中獲取數據,將數據緩存到Redis。
(3)數據存儲子系統將Redis中的數據定時持久化到數據庫。
(4)采用分布式數據庫存儲數據,支持分布式事務和水平彈性擴展,可按需擴展,有效應對高并發、海量數據場景。
(5)采用分布式數據處理框架進行匯總計算和指標計算。
(6)基于機器學習庫、深度學習庫開發數據分析模塊,實現能耗預測、診斷和優化運行等數據分析應用。
(7)Web服務為上層Web和APP提供數據服務,分布式緩存為數據訪問加速。
3.2 數據集成
3.2.1 數據通信協議
目前公共建筑能耗監測系統采用的是基于TCP的傳輸協議。TCP協議是底層傳輸協議,沒有定義QoS(QualityofService,服務質量)。上海市住房和城鄉建設管理委員會DGJ08-2068─2017《公共建筑用能監測系統工程技術標準》在國家住房和城鄉建設部《國家機關辦公建筑和大型公共建筑能耗監測系統分項能耗數據傳輸技術導則》基礎上增加了WebService協議,便于建筑上傳能耗數據。WebService協議是一種基于TCP的通用協議,但WebService的處理開銷較大,不適合高頻率傳輸大量數據。
本平臺數據傳輸采用MQTT協議。MQTT協議已經成為OASIS(結構信息標準化促進組織)標準(參見MQTT官方網站),是物聯網的重要組成部分。MQTT基于“發布/訂閱”模式的消息傳輸協議,是輕量級的M2M(Machine-to-Machine)通信協議,適合于低帶寬、不可靠連接、嵌入式設備、CPU/內存資源緊張的場景。MQTT定義了0、1、2三種QoS服務質量等級,可根據消息的重要程度確定QoS等級,同時MQTT的“發布/訂閱”模式可支持下行數據的傳輸,平臺可向數據采集器發送控制指令。
3.2.2 數據傳輸格式
現有能耗監測系統采用XML數據傳輸格式,平臺和數據采集器之間采用JSON格式,同時兼容原有XML格式和通信協議。XML格式通用性強,但是處理開銷較大,不適合海量數據實時傳輸。JSON是一種輕量級的數據交換格式,比XML簡潔,格式簡單,占用帶寬較少,處理性能要求低,更適用于大量網絡數據傳輸的場景。
3.2.3 消息中間件
在分布式系統中廣泛運用消息中間件進行系統間的數據交換,主要解決應用耦合、異步消息、流量削峰等問題,以實現高性能、高可用、可伸縮和最終一致性架構。消息中間件是大型分布式系統不可缺少的組件。建筑中的數據采集器發送的數據先進入平臺的消息中間件,由消息處理程序進行后續處理。
課題平臺采用Artemis消息中間件。Artemis是Apache基金會支持的開源項目,是高性能、支持集群的異步消息中間件,支持包括MQTT在內的多種協議。Artemis既作為MQTT的服務端,同時也作為消息中間件,后期隨著數據量的擴展,可以采用Kafka作為海量數據中間件。
3.3 數據緩存
為提高數據訪問效率,對于平臺的實時數據使用數據緩存存放最新的能源和環境數據。目前流行的分布式緩存有Memcached、Redis。Redis支持的數據類型豐富,包括String(字符串)、List(鏈表)、Set(集合)、Zset(SortedSet,有序集合)和Hash(哈希類型)多種數據格式,支持數據持久化,平臺采用Redis作為分布式緩存。
3.4 數據存儲
平臺的數據存儲需要數據庫支撐。數據庫可分為傳統關系型數據庫、NoSQL數據庫、NewSQL數據庫等。分布式領域的CAP定理指出,在一個分布式系統中,Consistency(一致性)、Availability(可用性)、PartitionTolerance(分區容錯性)三者不可兼得[2]。在大數據時代,傳統關系型數據庫如Oracle、MSSQLServer、MySQL等,滿足一致性和可用性,但都面臨高并發讀寫和高可擴展性、高可用性的挑戰——關系型數據庫難以處理海量數據。關系型數據庫的橫向擴展通常采用主從復制、集群、分片(Sharding)等方法,但都有不足,面臨各種問題。近年出現的NoSQL數據庫可以很好地支持海量數據擴展,以滿足海量數據存儲需求。NoSQL有高擴展性、高可用性、無預定義模式的特點,但是不支持SQL語句、不支持事務、不支持ACID(原子性、一致性、隔離性和持久性),且每種NoSQL有自己的API,很難規范應用程序接口,同時原有開發模式需要做較大的改變。
針對NoSQL的不足,近年來出現了NewSQL數據庫,如谷歌的GoogleSpanner/F1、阿里巴巴OceanBase、TiDB、CockroachDB等。它們不僅具有NoSQL對海量數據的存儲管理能力,還保持了傳統數據庫支持ACID和SQL等特性。
3.5 數據庫
平臺采用TiDB數據庫。TiDB是新一代開源分布式NewSQL數據庫,實現了自動的水平伸縮、強一致性的分布式事務、基于Raft算法的多副本復制等重要的NewSQL特性。TiDB結合了關系型數據庫和NoSQL的優點,部署簡單,在線彈性擴容和異步表結構變更不影響業務,通過異地多活及自動故障恢復保障數據安全,同時兼容MySQL協議,使遷移使用成本降到極低。平臺通過TiDB同時滿足海量數據實時寫入、實時查詢以及數據在線分析需求。
3.6 數據處理
常規數據處理技術已無法滿足平臺海量數據處理要求,平臺采用分布式數據處理技術提高計算性能。分布式計算將一個龐大的計算任務劃分為若干個子任務,然后為計算機網絡中的計算節點分別分配一部分子任務,通過并行處理提高處理效率,最后綜合整理計算數據,得到最后的計算結果。
3.6.1 分布式計算優點
與集中式計算相比,分布式計算有以下優點:①分布式網絡中的每臺機器都能存儲和處理數據,降低了對機器性能的要求,所以不必購買昂貴的高性能機器,可以大大降低硬件投資成本;②擴展性好,在當前系統存儲或計算能力不足時,可以簡單地通過增加廉價PC機的方式來增加系統的處理和存儲能力;③處理能力極強,龐大的計算任務可以在合理分割后由分布式網絡中的機器并行地處理。
3.6.2 平臺數據處理的兩種類型
平臺數據處理分為批量處理和實時計算兩種類型。
(1)批量計算。對于小時、日、月、年等定時計算任務采用批量計算。平臺采用Spark作為分布式數據處理引擎。Spark是一個新興大數據處理引擎,與Hadoop比較,Spark采用的有向無環圖(DAG)計算模型比Hadoop的Mapreduce計算模型有更廣泛的適用性,同時Spark通過在內存中緩存數據,提高迭代式計算的性能,比Hadoop的運行速度有極大提高。Spark同時為批處理(SparkCore)、交互式(SparkSQL)、流式(SparkStreaming)、機器學習(Mllib)、圖計算(Graphx)提供了統一的數據處理平臺。Tispark是將SparkSQL直接運行在分布式存儲引擎Tikv上的OLAP解決方案。借助Spark平臺,同時融合Tikv分布式集群的優勢,與Tidb一起為用戶一站式滿足HTAP(HybridTransactional/AnalyticalProcessing)需求。
(2)實時計算。批量計算面向的是海量離線數據的處理與分析,主要針對一段時期內采集與存儲的靜態數據,數據總吞吐量較好,但不適用于持續到達的數據流。對于需要進行實時處理的數據采用SparkStreaming、Storm、Flink等流式計算框架進行實時計算。實時計算系統不斷地接收數據采集系統持續發來的數據流、實時地進行處理與分析,并及時反饋結果,以滿足對數據處理有較高實時性要求的場景。實時計算系統輸出的數據,可視情況進行存儲,以便之后進一步分析與應用。
3.7 數據分析
數據分析功能是平臺支撐建筑運行管理的關鍵,平臺通過機器學習和深度學習框架支持其數據分析功能。目前常用的機器學習庫有SparkMLlib、Scikit-Learn等機器學習庫,可支持線性回歸、邏輯回歸、樸素貝葉斯、K-means、kNN(k-最近鄰)、決策樹、支持向量機(SVM)、Boosting等常用機器學習算法。深度學習框架有GoogleTensorFlow、微軟CNTK、MXNet、FacebookCaffe2、Caffe、Torch、PyTorch、百度PaddlePaddle、Keras等多種開源框架。其中TensorFlow應用最為廣泛,平臺應用TensorFlow開發數據分析應用子系統,實現能耗預測和分析診斷功能。
3.8 數據展現
數據展現層為用戶提供基于Web和APP的用戶界面,對該層的設計具有以下特點。
(1)前后端分離的RESTful風格架構。前端頁面和后臺程序接口采用前后端分離的RESTful風格架構,數據通過JSON格式進行數據交換。RESTful架構設計具有以下特性:①無狀態,每個請求都必須包含所有必需的信息;②資源,應用程序數據和功能可以劃分為各種資源,每種資源對應一個特定的URI;③狀態轉化(操作),采用HTTP協議的GET、POST、PUT、DELETE動作表示操作。
(2)前端組件化。前端采用成熟的Vue框架,基于HTML5技術開發。Vue是一套用于構建用戶界面的漸進式框架,具有雙向數據綁定和組件化開發功能。與現代化的工具鏈以及各種支持類庫結合使用,Vue能夠為復雜的單頁應用提供驅動。
(3)后端微服務化。微服務架構模式將大型的、復雜的應用程序構建為一組相互配合的服務,微服務之間通過RESTAPI形式的接口或者消息隊列進行整合。整個系統由很多微服務構成,因此具備更高的敏捷性、可伸縮性和可用性;系統可以水平擴展,從而降低了對各服務進行局部改良和快速迭代的難度。
4結語
本文提出一種面向大數據的建筑能耗和環境實時管理云平臺架構設計。通過應用物聯網協議、分布式消息中間件、分布式數據庫、分布式計算等大數據技術以及人工智能技術,提供較強的海量數據采集、存儲、處理和分析能力。在后續工作中,將在平臺基礎上結合機電系統、空調系統等專業知識和數據以及人工智能技術,開發節能診斷、能源管理、環境管理、設備運行優化等專業應用,為建筑智慧運行奠定基礎。
參考文獻
[1]丁洪濤,劉海柱,殷帥.我國公共建筑節能監管平臺建設現狀及趨勢研究[J].建設科技,2017(23):10-11.
[2]GILBERTS,LYNCHN.Brewer'sconjectureandthefeasibilityofconsistent,available,partition-tolerantwebservices[J].ACMSIGACTNews,2002,33(2):51-59.
基金項目
國家重點研發計劃項目“基于全過程的大數據綠色建筑管理技術研究與示范”(2017YFC0704200),上海市建筑科學研究院(集團)有限公司科研創新項目“面向智慧園區的通用實時計算與數據平臺關鍵技術研究”(M5.10)資助
作者簡介
陳勤平,教授級高工,現供職于上海市建筑科學研究院,主要研究方向為建筑信息化及建筑節能。