主頁 > 資料庫 > MatrixOne從入門到實踐10——物聯網平臺架構升級

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

2022-10-11 07:25:58 資料庫

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化開發

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

標籤:其他

上一篇:[20221008]sql profile優化失效問題.txt

下一篇:如何優雅的備份MySQL資料?看這篇文章就夠了

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more