MatrixOne從入門到實踐——物聯網平臺架構升級
公司介紹
西安天能軟體科技有限責任公司,成立于2018年,公司自成立起集中力量精心打造物聯網平臺,擁有集自主研發、終端生產、銷售、服務一體的物聯網平臺及服務團隊,已為國內外300多家物聯網企業、千萬級物聯網設備提供合作支持,
公司在物聯網領域擁有多項設備接入、遠程管理及大資料分析等研發技術專利,用行業領先的物聯網服務經驗為企業注入了全新的生產力,
智能家居上云:針對消費級設備智能化特點,Skyable為空凈新風、凈水機、廚衛電器、白色大家電、可穿戴設備、血糖儀、體脂秤、智能鎖等消費級智能產品提供設備連接、資料分析、設備管理、智能售后、APP開發、用戶畫像分析等服務,方便廠商快速實作產品智能化,
工業物聯網:通過工業IOT平臺建設,將海量工業設備通過智能工業網關接入IOT平臺,對海量工業設備運行資料及狀態進行集中實時上報、分析、監測、跟蹤,靈活設定設備引數,達到設備故障提前預知,并提前主動對設備進行狀態調整或檢修,減少設備故障造成的財產損失也減少強迫停機的次數,提升設備的使用壽命,
行業背景
物聯網作為一個提出 20 多年的概念,在技術上已經獲得了各項突破性進展,包括感知技術促進智能設備獲取資料,通信技術負責傳輸資料,大資料技術使企業開始向往海量資料存盤與處理的能力,以及近年引起廣泛討論的 AIoT,讓人們對人工智能在物聯網的應用充滿期待,
以客戶為中心——這一理念的正確性在不同商業領域得到驗證,尤其在產業鏈復雜、市場分散化、碎片化的物聯網行業,企業更應該關注目標客戶的痛點與需求,選擇合適的路徑進行商業化運作,但物聯網前端客戶的需求一向是多樣化的,在很多細節上都會有不同,如果企業做服務時每次都為客戶的定制化需求大費周章做開發,實際很容易拖累整個公司業務的高效運行,
平臺介紹

Skyable IOT平臺
支持海量設備接入,平臺提供安全穩定的設備通信信道,靈活兼容MQTT、CoAP、TCP、UDP、REST/HTTP等多種物聯網常用傳輸協議,完成千萬量級設備的連接管理、資料計算和存盤等高并發處理,
平臺提供適用于APP、Web、云服務開發的API和SDK,通過分布式集群調度系統自動優化計算資源的使用,客戶只需關注業務邏輯,即可快速實作高性能、高可用、穩定可靠的應用,
平臺提供豐富的通用功能組件庫,減少“重復造輪子”的作業,客戶可以快速組合出適用于自己業務場景的應用,
物聯網設備攻擊日益頻繁的今天,平臺構建了覆寫設備端、云端、客戶端完備的安全體系,為客戶的設備和資料安全性提供了有力支撐,
平臺(公有云)目前已部署了包括中國、東南亞、歐洲、北美等多地域的服務集群,遍布全球核心商業價值圈,幫助客戶更好的拓展國際化業務,
業務背景
平臺對于設備基礎資料、狀態資料以及少量的應用資料會存放在Mysql中,對于大量的歷史資料平臺會將資料寫入MongoDB資料庫中進行存盤,另外會通過資料采集模塊異步的將資料寫入MongoDB中提供給分析平臺做后續的分析處理,針對日志資料,會通過自定義日志決議模塊寫入Elasticsearch中進行搜索查詢,
平臺現狀
目前平臺主要分了以下幾個層面:
-
租戶設備
租戶設備包括邊緣網關和直連設備,邊緣網關子設備如PLC設備、工業電腦、工業服務器等設備,將資料上報網關與平臺互動,直連設備可直接上報資料與平臺進行互動,
-
接入層
設備接入層包括邊緣網關及平臺接入集群,邊緣網關通過平臺提供的設備端SDK,將資料上報的平臺接入集群,支持MQTT、HTTP、CoAP等傳輸協議,SDK按照平臺的通訊協議標準,在設備的資料協議的基礎上進行了二次封裝,包括平臺驗證等,
-
決議層
用戶自定義腳本決議是由用戶創建決議規則腳本,上傳到平臺針對上報資料進行決議,決議后的資料推送到第三方業務平臺,
-
存盤層
存盤層負責平臺基礎資料存盤和設備業務資料存盤,平臺基礎資料包括產品基礎資料、屬性資料、設備基礎資料、企業基礎資料、用戶基礎資料、權限基礎資料等,基礎資料采用MySQL資料庫存盤,設備業務資料存盤分為實時資料、歷史資料和平臺日志,實時資料和歷史資料采用MongoDB資料庫,平臺日志采用ES資料庫,
-
應用層
應用層負責展示、控制,包括產品管理、設備管理、計量管理、企業管理、云端組件、云端服務等,

在核心的計算存盤層,我們原有的架構引入的多種資料庫來解決不同的業務場景,如:
- mysql
- Redis
- MongoDB
- kafka集群
- elasticsearch集群

目前存在以下痛點:
-
資料冗余度高
多個組件之間資料都有多副本,資料冗余成本高
-
架構復雜,多個組件之間的資料耦合性高
組件與組件之間存在資料的反復流向,架構復雜,耦合性較高
-
運維成本高,私有云部署成本高
部分客戶部署環境不會允許太高的資源消耗,目前架構部署比較吃硬體成本
-
ap性能不足
基于MongoDB的ap,在資料量大了之后,ap性能不佳
因此,我們想尋找一個能解決HTAP,并還能解區域分流式計算場景的資料庫來承擔我們平臺的核心存盤計算功能,簡化我們的平臺架構,提高硬體資源的利用率,減少我們的開發和硬體成本,
通過調研對比業內幾家HTAP的產品,我們最終選擇了一家新興的資料庫產品:MatrixOne,由于該產品目前出于打磨階段,我們也是現在小部分業務場景進行了部分業務替代,進行方案平臺的逐步升級,
選擇MatrixOne的主要原因有以下幾點:
-
優異的云原生系統架構
在IOT場景,有許多邊緣云的場景,需要資料庫能夠面對復雜多變的存盤介質和資料協議,MatrixOne天生云原生的架構,支持TP、AP雙模式,能夠更好的應對這一業務場景,
-
GO開源的源代碼
團隊中有很多GO語言開發者,基于MatrixOne開源的源代碼,我們能更好的利用MatrixOne的特性
-
出色的AP性能
我們內部在對比了tpch的性能測驗后,由于業務場景需要,我們之前使用的是MongoDB作為我們的AP場景,MySQL做為TP場景,由于設備量逐漸增大,上報資料量大,MongoDB和MySQL已無法滿足AP、TP場景的性能要求,而MatrixOne即支持了TP,AP的性能表現還十分的優異,且AP業務可以和TP共用同一套框架,


平臺改造
目前初步改造主要是統一TP和AP的場景,即將原來的MySQL和MongoDB更換為MatrixOne,而在原有的日志決議的ES集群,期望MatrixOne在具備流式計算的功能之后,將整個資料決議層統一為MatrixOne,進而整個核心資料存盤計算基本全由MatrixOne對外提供服務,
下圖為我們平臺改造后的部分架構調整:

業務提升
-
成本優化
我們在測驗環境充分測驗后,逐步使用新的平臺架構,替換了部分客戶的私有云物聯網平臺,最明顯的提升在于硬體資源得到了充分的利用,部分物聯網客戶平臺資料量并不是很大(數十億的資料總量),因而原有的架構 在ap場景會存在部分的資源浪費,在使用新的架構之后,我們相比較之前的架構,可以使用原來AP場景下MongoDB空閑時的硬體資源,來解決所有的場景問題,原有的架構需要大概5臺低配 (16C + 32G ) + 3臺高配 (64C + 128G)的服務器資源,改造后,我們只需要3臺高配的硬體資源即可,節省了大概5臺的硬體資源成本,并且減少了系統之間的復雜度和資料的重復冗余,業務開發人員也只需要針對同一個核心資料庫進行業務編碼,
-
查詢優化
針對大資料量的場景下,相比較原有的MongoDB查詢速度,部分復雜查詢分鐘級別甚至更久的查詢速度,MatrixOne能夠優化至秒級別的回應,同時在測驗環境下,我們對數十億級別的關聯查詢,MatrixOne相比較MongoDB表現的更加優異,
總結
在初步嘗鮮了MatrixOne之后,目前MatrixOne還存在一些問題,但是得益于優異的架構設計,和社區快速的反饋,我相信未來MatrixOne產品會越來越好,同時目前基于我們平臺,對于MatrixOne急需支持的有以下幾點:
-
流式計算的支持
要統一我們整個資料存盤計算,還需要目前將整個流式計算鏈路解放出來,目前我們還是使用Kafka + MongoDB的解決方案,這一塊的資源消耗較為嚴重,希望MatrixOne 可以先行提供流式資料接入的內嵌插件,替換我們目前的解決方案,完全去掉MongoDB,同時更希望,MatrixOne能夠集成完整的流式計算,不依賴于中間件,去掉Kafka集群和zk集群,進一步減少系統的復雜度,
-
分布式的支持
目前0.5.1的版本還不支持完全的分布式,0.6的版本會支持,我們希望來驗證一些更大資料集的業務場景,
-
機器學習的支持
目前我們分析平臺的機器學習還需要集成傳統的spark 框架,希望MatrixOne未來能夠支持機器學習的框架,并且能夠快速發布訂閱機器學習的模型,
-
更豐富的資料型別匯入支持
目前我們資料從統一gateway出口的資料為json,進入MatrixOne還需要人為進行一次決議,我們希望MatrixOne能夠支持更加豐富的資料接入模式,來應對物聯網場景復雜的資料源,
-
豐富的公有云平臺支持
目前我們有眾多的大客戶使用的是公有云服務體系,我們希望MatrixOne能夠上線更多的公有云市場,避免我們目前部署還需要使用裸金屬服務器,同時享受云的優異特性,
未來展望
期望未來MatrixOne能夠讓我們平臺進化為如下架構:
HSTAP一體
- 設備端出來的原始二進制資料能夠直接通過各種協議,統一入口,進入到MatrixOne的流式引擎中
- 超大資料規模場景下優異的HSTAP性能,滿足大資料量下的實時寫入,更新,查詢的場景,優化快取場景,,
- 能夠直接通過MatrixOne內部的多表延遲物化視圖、UDF等特性,通過SQL在線決議原始資料,并且落地到TP表或者AP表
- 所有的業務系統 由MatrixOne提供統一服務出口,提供業務服務
- MatrixOne內置機器學習框架,可以在平臺上集成多種不同語言的模型,進行機器學習SQL化開發

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/513135.html
標籤:其他
