隨著 IoT 技術的快速發展,物聯網設備產生的數據呈爆炸式增長。這些數據通常隨時間產生,稱之為時序數據。這樣的一種專門用于管理時序數據的數據庫被稱為時序數據庫。
時序數據庫是當前物聯網 IoT垂直領域最為合適的數據庫解決方案。作為物聯網下火熱的智慧健康養老應用,時序數據庫能為智慧健康養老行業帶來哪些貢獻?華為云數據庫專家向宇解讀了時序數據庫在智慧健康養老行業應用之道。
時序數據庫助力智慧健康養老場景化應用
從智慧健康養老的全場景圖看到,智慧健康養老整體上分為4個部分:1. 設備:包括穿戴設備(比如手環,可以記錄步數和心率)、環境監測設備(比如室內室外溫度傳感器)和醫療健康設備(比如血壓儀、血糖儀)。這些設備產生的數據需要上傳到平臺或系統服務進行統一存儲,為更上層的應用提供基本的數據輸入。2. 數據存儲層:相同功能但不同廠商的設備產生的數據格式可能不盡相同。再者,隨著業務的發展,可能還會接入更多類型設備,數據量也會越來越大。考慮業務變更和數據庫性能,為最大程度降低對上層應用的影響,把設備數據與其他業務數據分開存儲。3. 服務層:平臺對外提供的能力,比如安全預警、健康風險評估、其他養老事務管理功能等。4. 端側應用:基于平臺提供的服務,可以開發出APP,利用APP把老人、子女、機構工作人員三類用戶聯系起來,例如:子女可以通過手機APP實時查看自己父母的運動情況,健康指標,工作人員可以在終端提交工單等等。
面對養老行業的痛點,云芯科技、藍色健康和智康科技三家企業與華為云在底層系統、數據存儲等方面的合作,在平臺服務層面,正在努力實現這些智慧養老的服務應用。
在物聯網等領域,特別是智慧康養場景下,我們發現有這么一些數據,他們都有時間屬性,有設備描述信息,有采集的數據指標。舉個例子,如下圖所示:第一列是數據產生的時間,第二列是設備編號,后面是采集的數據內容,如體溫、心率等。我們把數據劃分為三個部分,時間部分稱為時間戳,設備編號等描述設備信息的部分稱之為數據的標簽,剩余部分描述了采集的具體指標,稱之為指標項。像這樣的數據,我們就稱之為時序數據,因為它有明顯的時間屬性。那么這些時序數據,都有自己的特點:
不變性:時序數據在寫入后,一般不會被修改。這個特征非常適用于壓縮,不因修改某個數據對整個數據塊進行修改。
時效性:時間越近的數據被訪問的概率越大,時間越是久遠,數據被訪問的概率越低。因此,對于時序的熱數據,可以采用壓縮和解壓速度比較好,壓縮率合理的壓縮算法,而對于冷數據,非常適合使用更高壓縮比的算法。
數據量龐大:時序數據的采集類型豐富, 隨著采集硬件的普及和采集頻率增加,使得數據量出現暴增,比如自動駕駛中每輛車每天就會采集將近 8T 的數據,帶寬、實時寫入、快速查詢、存儲、耗電以及維護成本都是挑戰。
數據使用冷熱:用戶可能對某些數據源或者時間段的關注遠遠超過其他,因此在海量數據中偏向某些特殊時間段或某些數據源的數據查詢。
時序數據庫如何選?
從我們的企業應用的情況來看,目前存放時序數據采用的數據庫各種各樣,有用關系數據庫存放,有用NOSQL數據存儲(比如HBASE,Cassandra,MongoDB),還有就是用到了時序數據庫。我們總結了一下選型數據庫之前需要考慮的一些問題。
成本:分為運維成本和存儲成本,比如用HBASE存儲,它的技術棧很長,底層存儲使用的是HDFS。運維就需要一個人既懂時序數據庫,又要懂大數據平臺,成本比較高。其次,隨著數據量逐漸的增加,存儲需要不斷的擴容,成本隨之增加。所以,既要選擇部署便捷、擴容操作簡單,又要能提供數據壓縮的數據庫。
性能:不同的業務對數據庫的性能需求是不一樣的,需要考慮今后業務規模增加后,數據庫能不能支撐預期的設備數量和數據量。
業務變更:對于物聯網而言,由于缺乏標準,各式各樣的設備都有可能接入,有的設備可能只有2列數據,有的設備可能有3列數據,這就要求數據庫支持Schemaless。
生態:主要是時序數據庫上下游接口的問題,選擇的數據庫需要考慮其技術生態,數據要能進的來,出的去。比如用了SQLServer存時序數據,想用Granfana展示數據就很困難。
數據分析:設備數據被存儲下來,最終是需要通過數據分析挖掘數據隱藏價值,還要考慮數據庫是否支持數據分析平臺。
鑒于上述行業中存在的問題,以及對未來物聯網發展的信心,華為云自研GaussDB(for Influx) 基于華為自研的計算存儲分離架構,兼容InfluxDB生態的云原生NoSQL時序數據庫。提供大并發時序數據讀寫、壓縮存儲、多維聚合以及一鍵部署、快速備份恢復、計算存儲獨立擴容、監控告警等服務能力,可以完全滿足康養的需求。GaussDB(for Influx)時序數據庫依靠華為在數據存儲領域多年的實踐經驗,整合華為云的計算、存儲、服務保障和安全等方面的能力,大膽在架構、性能和數據壓縮等方面進行了技術創新,達到了較好的效果,對內支撐了華為云基礎設施服務,對外以服務的形式開放,幫助上云企業解決相關業務問題。GaussDB(for Influx)接口完全兼容InfluxDB,寫入接口兼容OpenTSDB、Prometheus和Graphite。從架構上看,一個時序數據庫集群可以分為三大組件。它們分別是:
Shard節點:節點采用無狀態設計,主要負責數據的寫入和查詢。在節點內,除了分片和時間線管理之外,還支持數據預聚合、數據降采樣和TAG分組查詢等專為時序場景而優化的功能。
Config集群:存儲和管理集群元數據,采用三節點的復制集模式,保證元數據的高可靠性。
分布式存儲系統:集中存儲持久化的數據和日志,數據采用三副本方式存放,對上層應用透明。存儲系統為華為自研,經過多年產品實踐檢驗,系統的高可用和高可靠性都得到了驗證。
華為云時序數據庫應對智慧康養應用場景有妙招在面對AIoT物聯網典型應用場景中,時序數據庫每天會產生數GB甚至數TB的時序數據。如果無法對這些時序數據進行很好的管理和壓縮,那將會給企業帶來非常高的成本壓力。GaussDB(for Influx)對數據采用列式存儲,相同類型的數據被集中存儲,更有利于數據壓縮。采用自研的時序數據自適應壓縮算法,在壓縮前對數據進行抽樣分析,根據數據量、數據分布以及數據類型選擇最合適的數據壓縮算法。在壓縮算法上,相比原生的InfluxDB,重點針對Float、String、Timestamp這三種數據類型進行了優化和改進。
Float數據類型:對Gorilla壓縮算法進行了優化,將可以無損轉換的數值轉為整數,再根據數據特點,選擇最合適的數據壓縮算法。
String數據類型:采用了壓縮效率更好的ZSTD壓縮算法,并根據待壓縮數據的Length使用不同Level的編碼方法。
Timestamp數據類型:采用差量壓縮方法,最后還針對數據文件內的Timestamp進行相似性壓縮,進一步降低時序數據存儲成本。
下圖是分別采用實際業務場景的事件日志數據(數據集1)和云服務器監控指標數據 (數據集2)與InfluxDB進行了數據壓縮效率的性能對比。節約存儲成本并非只有數據壓縮一種辦法。針對時序數據越舊的數據被訪問的概率越低的特點,GaussDB(for Influx)提供了時序數據的分級存儲,支持用戶自定義冷熱數據,實現數據的冷熱分離。熱數據相對數據量小,訪問頻繁,被存儲在性能更好、成本較高的存儲介質上;冷數據相對數據量大,訪問概率低,保存時間較久,被存儲在成本較低的存儲介質上,進而達到節約存儲成本的目的。根據實際業務數據測算,相同數據量下存儲成本僅有關系型數據庫的1/20。除了產品本身的技術優勢特點,GuassDB(for Influx)能夠開箱即用,用戶只需要關注應用層就可以,不用關注運維。在使用的過程中,不需要去特意學習新的產品技術,會SQL就可以使用。GaussDB(for Influx)還兼容Influx 生態,整個生態下的工具、接口等都可以直接應用。從數據安全角度看,GaussDB(for Influx)在容災備份方面,支持異地3AZ,可以讓數據存儲在不同的城市,這樣確保數據的安全性。在智慧康養場景下,最重要的是如何基于數據分析,來進一步為用戶帶來更好的產品服務。GuassDB(for Influx)還提供數據分析平臺,能夠和數據庫融合在一起,可以把相關算法以熱插拔的方式嵌入到平臺中,從數據庫直接讀取數據進行分析,最終應用在相對應的場景下。這兩邊是以相互感知的形式,分析感知存儲,從而輕量化存儲分析開銷。不管企業在什么地方,基于GuassDB(for Influx)能夠解決康養企業的數據孤島問題,實現價值共享。
據悉,GuassDB(for Influx)的開源計劃正在進行中,開源的名字叫GeminiTSDB,兼容Influx DB接口,采用類SQL查詢語言,提供單機和分布式集群兩種部署模式,安裝簡單,部署靈活,無須外部依賴,具有高可用、高性能、低時延、低存儲成本、擴展靈活等優點,希望大家多多關注!
原文標題:擁抱時序數據庫,構筑IoT時代下智慧康養數據存儲底座
文章出處:【微信公眾號:華為開發者社區】歡迎添加關注!文章轉載請注明出處。
責任編輯:pj
-
華為
+關注
關注
216文章
34479瀏覽量
252154 -
數據庫
+關注
關注
7文章
3827瀏覽量
64515 -
IOT
+關注
關注
187文章
4217瀏覽量
197071 -
穿戴設備
+關注
關注
2文章
96瀏覽量
32242
原文標題:擁抱時序數據庫,構筑IoT時代下智慧康養數據存儲底座
文章出處:【微信號:Huawei_Developer,微信公眾號:華為開發者社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論