為物聯網解決方案選擇正確的數據庫平臺是一項艱巨的任務。首先,物聯網解決方案可以跨地理區域分布。與集中式的基于云的解決方案相反,更多的解決方案正在采用邊緣霧計算和云計算的組合。因此,您的數據庫平臺必須為您提供在邊緣處理數據以及在邊緣服務器和云之間進行同步的靈活性。
其次,根據您的物聯網使用情況,您需要的數據庫功能可能包括實時數據流、數據過濾和聚合、接近零延遲的讀取操作、即時分析、高可用性、地理分布、模式靈活性等等。本文介紹了為物聯網解決方案選擇正確的數據庫平臺的四個步驟:
步驟1 確定解決方案的數據需求
物聯網解決方案依賴于從聯網設備中收集和處理數據,做出智能決策,如觸發通知或動作,計算實時分析,從歷史數據中收集模式,等等。
為了便于討論,在通用的物聯網解決方案中,可以在整個企業中安裝傳感器和執行器。成千上萬的傳感器和執行器與一臺edge服務器相連。物聯網解決方案不斷從所有傳感器收集數據,做出實時決策來控制傳感器和執行器,向系統監視器發出異常活動警報,并為最終用戶提供分析的歷史視圖。
在決定使用哪些服務和與之配套的數據庫之前,有必要清楚地了解如何使用數據以及在何處使用數據。一些問題可以幫助理解和優先考慮你的數據需求:
哪些數據處理和決策被委托給邊緣服務器?
云解決方案是部署在一個地區,還是分散在多個地區?
從設備到邊緣服務器和從邊緣服務器到中央服務器傳輸的數據量是多少?估計的峰值容量是多少?
物聯網解決方案是否控制設備或致動器?如果是,它們需要實時響應嗎?
從歷史數據中獲得的業務洞察力是什么?
步驟2 將解決方案分解為獨立的軟件服務
在此步驟中,您將設計執行獨立的特定任務的軟件服務或組件。
當將前面描述的樣例物聯網解決方案分解為獨立的服務時,可以得到圖2所示的設計。物聯網解決方案本身是地理分布的,其中一些組件部署在邊緣網絡,其余組件在一個集中位置。
現在讓我們將架構分解為服務,并分析它們的職責和數據需求:
數據攝取
目的:收集和存儲設備日志和消息。
數據庫需求:支持高速寫操作,因為數據可能以突發的方式到達,確保數據在不尋常的情況下不會丟失。
邊緣分析
用途:對輸入數據執行數據轉換、分類、聚合、過濾和功能。它負責在邊緣進行實時決策。
數據庫需求:支持高速讀寫與亞毫秒延遲;提供工具和命令來對數據執行復雜的分析計算。
設備管理器
用途:向設備傳遞信息。
數據庫需求:以最小的延遲訪問和向設備發送消息。
系統分析
目的:從邊緣服務器收集數據,執行數據轉換和分析操作。
數據庫需求:提供對數據執行分析計算的命令,并根據分析引擎的需要長時間存儲數據。
C&C (命令和控制)儀表板
目的:提供物聯網生態系統當前狀態的可視化表示。
數據庫需求:保持數據的當前和準確,讀取數據的延遲小于毫秒。
商業智能
用途:從歷史數據運行報告、查詢和推斷。
數據庫需求:長時間存儲數據,節約成本;提供查詢和分析數據的工具。
物聯網數據流出口
用途:將數據規范化為一種通用格式,并將其推送給訂閱服務器。
數據庫需求:高效執行數據轉換操作的能力;支持發布和訂閱功能。
步驟3:根據數據需求對服務進行分組,并選擇正確的數據庫
下一步是根據每個服務的數據選擇正確的數據庫。圖3將我們的物聯網示例中的服務連接到圖中,根據數據在數據庫中停留的時間和服務所需的數據讀/寫速度對它們進行分類。
您將看到數據不斷進出數據攝取服務器,在數據庫中停留的時間非常短。同時,數據的到達量大,速度快。因此,我們需要一個具有低延遲的高速數據庫來保存用于攝入服務的數據。另一方面,商業智能服務依賴于歷史數據。
下一步是對具有類似數據訪問特征的服務進行分組,目標是限制數據庫的數量(多余的數據庫和不符合您需求的數據庫),從而減少操作開銷。
在圖4中,我們將示例服務分組到兩個主數據庫中—一個熱數據庫和一個冷數據庫。保存熱數據的數據庫部署在靠近物聯網設備的位置,以最小化網絡延遲。熱數據和冷數據的數據庫選擇是:
熱數據庫:由于RAM的成本越來越便宜,內存中的數據庫通常是一個不錯的選擇。內存中的數據庫以最小的延遲交付數據讀寫能力。當選擇一個熱數據庫時,這些額外的功能和能力將幫助您縮小選擇范圍:
數據格式的靈活性——幫助您支持廣泛的設備和通信格式
查詢功能——使您能夠實時運行高效的查詢
消息傳遞和排隊——驅動通信和數據交換
分層內存模型-提供一個經濟有效的內存模型,但高性能
高可用性和災難恢復-幫助您保持業務的所有時間
地理分布-服務地理分布的物聯網部署
二進制安全-幫助您保存二進制數據
冷數據庫:物聯網解決方案的歷史數據可能增長到多個tb,在某些情況下可能超過一個pb。存儲歷史數據的流行選擇包括在普通硬件上存儲解決方案。查詢通常遵循map-reduce模式。通常,歷史數據也會在搜索引擎中建立索引,用于模式匹配和數據聚合。如果您要將數據存儲在云中,請與您的云服務提供商聯系,在您所在的地區,哪種數據存儲方案最劃算。
第四步:評估成本、資源效率
將數據庫分為熱數據庫和冷數據庫有助于縮小數據庫選擇范圍。對于大多數物聯網用例,一個高速數據庫可以滿足熱數據庫的所有需求。對于冷數據庫,選項可能從關系數據庫到數據湖。設計人員經常犯的一個錯誤是為每個服務創建具有專門數據庫的多語言體系結構。這增加了應用程序堆棧的復雜性以及操作開銷和成本。
擁有一個數據庫的總成本是許多參數的函數。數據庫本身的成本只是成本的一小部分。以下是一些費用:
數據庫許可證成本:該成本可能與cpu數量、集群中的碎片數量、數據庫大小、吞吐量(每秒最大操作數量)、時間(年、月、小時等)、高可用性和恢復特性、云的多個區域的可用性等有關。如果您使用的數據庫可以作為開放源碼軟件使用,根據許可證的類型,數據庫成本甚至可能為零。
基礎設施成本:基礎設施成本取決于數據庫的資源效率。例如,一個輕量級、線程安全的數據庫可能只使用兩個商用服務器每秒執行100萬次讀/寫操作,而傳統數據庫可能需要更多的服務器才能得到相同的結果。除了數據庫效率,硬件成本還取決于吞吐量、cpu數量、RAM、數據大小、閃存、網卡等。用于高可用性的數據庫體系結構也發揮了作用。例如,基于仲裁的故障轉移架構將只需要一個備用服務器副本,但非基于仲裁的架構將需要兩個數據副本,以避免分裂大腦。
數據丟失成本:為數據丟失提供適當的保險是極其重要的,特別是對于商用物聯網解決方案。您丟失數據的總成本為:虧損的業務數據丟失的概率*恢復數據的成本
您可以使用數據庫供應商提供的適當SLA來抵消部分成本。
操作開銷:自動化是成功的咒語。如果數據庫提供控制來自動化部署、配置、故障轉移、擴展、數據分區、備份和恢復、監視和警報等操作,那么將有助于高效地操作。
結論
當為下一代物聯網解決方案選擇正確的數據庫時,很容易迷失在現有的大量數據庫中。但是,如果將解決方案分解為組件服務并理解它們的數據庫需求,就可以有效地縮小數據庫選擇范圍。大多數物聯網解決方案都依賴于熱數據庫進行實時數據收集、處理、消息傳遞、分析,而冷數據庫用于存儲歷史數據和收集商業智能。這將使架構簡單、精簡和健壯。
最后需要說明的是,Redis實驗室贊助的開源內存數據庫Redis是物聯網解決方案的熱門數據庫。它被物聯網解決方案廣泛用于數據攝取、實時分析、消息傳遞、緩存和許多其他用例。
責任編輯人:CC
-
物聯網
+關注
關注
2903文章
44284瀏覽量
371309 -
數據庫
+關注
關注
7文章
3766瀏覽量
64277 -
物聯網平臺
+關注
關注
7文章
98瀏覽量
20713
發布評論請先 登錄
相關推薦
評論