MatrixOne從入門到實踐10——物聯網平臺架構升級

来源:https://www.cnblogs.com/mklzl/archive/2022/10/10/16774524.html
-Advertisement-
Play Games

MatrixOne從入門到實踐——物聯網平臺架構升級 公司介紹 西安天能軟體科技有限責任公司,成立於2018年,公司自成立起集中力量精心打造物聯網平臺,擁有集自主研發、終端生產、銷售、服務一體的物聯網平臺及服務團隊,已為國內外300多家物聯網企業、千萬級物聯網設備提供合作支持。 公司在物聯網領域擁有 ...


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一體

  1. 設備端出來的原始二進位數據能夠直接通過各種協議,統一入口,進入到MatrixOne的流式引擎中
  2. 超大數據規模場景下優異的HSTAP性能,滿足大數據量下的實時寫入,更新,查詢的場景,優化緩存場景。。
  3. 能夠直接通過MatrixOne內部的多表延遲物化視圖、UDF等特性,通過SQL線上解析原始數據,並且落地到TP表或者AP表
  4. 所有的業務系統 由MatrixOne提供統一服務出口,提供業務服務
  5. MatrixOne內置機器學習框架,可以在平臺上集成多種不同語言的模型,進行機器學習SQL化開發


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 視圖和用戶許可權 1.視圖(view) 看一個需求 emp表的列信息很多,有些信息是個人重要信息(比如:sal、comm、mgr、hiredate),如果我們希望某個用戶只能查詢emp表的empno、enamel、job和deptno信息,有什麼辦法呢? 答案是使用視圖。 1.1基本原理 視圖是一個虛 ...
  • 我們偶爾需要在已有表,並且有數據的情況下,修改其某個欄位的類型或改變他的長度,但是因為表中有數據,所以不可以直接修改,需要換個思路。 -- Create table create table TABLE1 ( col1 number(9), col2 char(20) ); -- 嘗試修改 -- 修 ...
  • 在 StoneDB 1.0 版本中,InnoDB 引擎處理 OLTP 的事務型業務,Tianmu 引擎處理 OLAP 的分析型業務。因此,需要在主從複製環境的基礎上做讀寫分離,所有的寫操作和部分讀操作走 InnoDB 引擎,所有的分析類查詢走 Tianmu 引擎。讀寫分離方案既可以使用第三方中間件, ...
  • MGR 的新主選舉演算法,在節點版本一致的情況下,其實也挺簡單的。 首先比較權重,權重越高,選為新主的優先順序越高。 如果權重一致,則會進一步比較節點的 server_uuid。server_uuid 越小,選為新主的優先順序越高。 所以,在節點版本一致的情況下,會選擇權重最高,server_uuid 最 ...
  • Hadoop是Apache基金會旗下最知名的基礎架構開源項目之一。自2006年誕生以來,逐步發展成為海量數據存儲、處理最為重要的基礎組件,形成了非常豐富的技術生態。 作為國內頂尖的 Hadoop 開源生態技術峰會,第四屆 China Apache Hadoop Meetup於 2022年9月24日在 ...
  • 點亮 ⭐️ Star · 照亮開源之路 GitHub:https://github.com/apache/dolphinscheduler ​ 版本發佈 感謝本次的 Release Manager --@zhuangchong,是他主導了我們這個版本的發佈流程,引導社區進行版本內容溝通,發版前的問題 ...
  • 摘要:GaussDB(DWS) 中鎖等待可以設置等待超時相關參數,一旦等鎖的時間超過參數配置值會拋錯。 本文分享自華為雲社區《GaussDB(DWS) 鎖相關參數及視圖詳解》,作者: yd_220527686。 一、鎖相關參數 GaussDB(DWS) 中鎖等待可以設置等待超時相關參數,一旦等鎖的時 ...
  • 先說一下為什麼需要備份MySQL數據? 一句話總結就是:為了保證數據的安全性。 如果我們把數據只存儲在一個地方,如果物理機器損壞,會導致數據丟失,無法恢復。 還有就是我們每次手動修改線上數據之前,為了安全起見,都需要先備份數據。防止人為的誤操作,導致弄髒數據或弄丟數據。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...