Tungsten Fabric SDN — SmartNIC vRouter
1313
2022-05-29
MRS IoTDB是華為FusionInsight MRS大數據套件最新推出的時序數據庫產品,其領先的設計理念在時序數據庫領域展現出越來越強大的競爭力,得到了越來越多的用戶認可。為了大家更好地了解MRS IoTDB,本文將會系統地為大家介紹MRS IoTDB的來龍去脈和功能特性,重點為大家介紹MRS IoTDB時序數據庫的架構設計與實現,這次先為大家介紹MRS IoTDB的整體架構設計,后續系列文章會為大家逐步展開細節介紹。
什么是時序數據庫
時序數據庫是時間序列數據庫的簡稱,指的是專門對帶時間標簽(按照時間的順序變化,即時間序列化)的數據進行存儲、查詢、分析等處理操作的專用數據庫系統。通俗來說,時序數據庫就是專門用來記錄例如物聯網設備的溫度、濕度、速度、壓力、電壓、電流以及證券買入賣出價等隨著時間演進不斷變化的各類數值(測點、事件)的數據庫。
當前,隨著大數據技術發展和應用的不斷深入,以物聯網IoT(Internet Of Things)、金融分析為代表的兩類數據,表現出隨著時間的演進連續不斷地產生大量傳感器數值或事件數據。時間序列數據(time series data)就是以數據(事件)發生的時刻(時間戳)為時間軸形成的連續不斷的數值序列。例如某物聯網設備不同時刻的的溫度數據構成一個時間序列數據:
時間戳
設備ID
溫度
T1
D1
28
T2
D2
31
T3
D3
12
T4
D4
89
無論是機器產生的傳感器數據,還是人類活動產生的社會事件數據,都有一些共同的特征:
(1)采集頻率高:每秒采集幾十次、上百次、十萬次乃至百萬次;
(2)采集精度高:最少支持毫秒級采集,有些需要支持微秒級和納秒級采集;
(3)采集跨度大:7*24小時持續不斷地連續采集幾年、乃至數十年數據;
(4)存儲周期長:需要支持時序數據的持久存儲,甚至對有些數據需要進行長達上百年的永久存儲(例如地震數據);
(5)查詢窗口長:需要支持從毫秒、秒、分鐘、小時到日、月、年等不同粒度的時間窗口查詢;也需要支持萬、十萬、百萬、千萬等不同粒度的數量窗口查詢;
(6)數據清洗難:時間序列數據存在亂序、缺失、異常等復雜情況,需要專
用算法進行高效實時處理;
(7)實時要求高:無論是傳感器數據還是事件數據,都需要毫秒級、秒級的實時處理能力,以確保對實時響應和處理能力;
(8)算法專業強:時間序列數據在地震、金融、電力、交通等不同領域,都有很多垂直領域的專業時序分析需求,需要利用時序趨勢預測、相似子序列分析、周期性預測、時間移動平均、指數平滑、時間自回歸分析以及基于LSTM的時序神經網絡等算法進行專業分析。
根據時序數據的共同特征可以看出,時間序列特殊的場景需求給傳統的關系數據庫存儲和大數據存儲都帶來了挑戰,無法是采用關系數據庫進行結構化存儲,還是采用NoSQL數據庫進行存儲,都無法滿足海量時序數據高并發實時寫入和查詢的需求。因此,迫切需要一種專門用于存儲時間序列數據的專用數據庫,時序數據庫的概念和產品就這樣誕生了。
需要注意的是:時序數據庫不同于時態數據庫和實時數據庫。時態數據庫(Temporal Database)是一種能夠記錄對象變化歷史,即能夠維護數據的變化經歷的數據庫,比如TimeDB。時態數據庫是對傳統關系數據庫中時間記錄的時間狀態進行細粒度維護的系統,而時序數據庫完全不同于關系數據庫,只存儲不同時間戳對應的測點值。有關時序數據庫與時態數據庫的更詳細對比,后續將會發文專門介紹,在此不再詳述。
時序數據庫也不同于實時數據庫。實時數據庫誕生于傳統工業,主要是因為現代工業制造流程及大規模工業自動化的發展,傳統關系數據庫難以滿足工業數據的存儲和查詢需求。因此,在80年代中期,誕生了適用于工業監控領域的實時數據庫。由于實時數據庫誕生早,在擴展性、大數據生態對接、分布式架構、數據類型等方面存在局限,但是也有產品配套齊全、工業協議對接完整的優勢。時序數據庫誕生于物聯網時代,在大數據生態對接、云原生支持等方面更有優勢。
時序數據庫與時態數據庫、實時數據庫的基本對比信息如下:
時序數據庫
時態數據庫
實時數據庫
誕生時代
誕生于物聯網時代
誕生于20世紀80年代
誕生于傳統工業時代
與關系數據庫關系
與關系數據庫無直接關系
對關系數據庫的時態擴展
對關系數據庫的擴展增強
時間序列處理能力
適合處理時間序列
不適合處理時間序列
適合處理時間序列
架構
分布式架構
非分布式架構
非分布式架構
生態
對接
大數據生態對接
缺乏大數據生態對接
缺乏大數據生態對接
2.什么是MRS IoTDB時序數據庫
MRS IoTDB是華為FusionInsight MRS大數據套件中的時序數據庫產品,在深度參與Apache IoTDB社區開源版的基礎上推出的高性能企業級時序數據庫產品。IoTDB顧名思義,是針對IoT物聯網領域推出的專用時序數據庫軟件,是由清華大學發起的國產Apache開源軟件。自IoTDB誕生之初,華為就深度參與IoTDB的架構設計和核心代碼貢獻,對IoTDB集群版的穩定性、高可用和性能優化投入了大量人力并提出了大量的改進建議和貢獻了大量的代碼。
IoTDB在設計之初,全面分析了市面上的時序數據庫相關產品,包括基于傳統關系數據庫的Timescale、基于HBase的OpenTSDB、基于Cassandra的KariosDB、基于時序專屬結構的InfluxDB等主流時序數據庫,借鑒了不同時序數據在實現機制方面的優勢,形成了自己獨特的技術優勢:
(1)支持高速數據寫入
獨有的基于兩階段LSM合并的tLSM算法有效保障了IoTDB即使在亂序數據存在的情況下也能輕松實現單機每秒千萬測點數據的并發寫入能力。
(2)支持高速查詢
支持TB級數據毫秒級查詢
(3)功能完備
支持CRUD等完整的數據操作(更新通過對同一設備同一時間戳的測點數據覆蓋寫入來實現,刪除通過設置TTL過期時間來實現),支持頻域查詢,具備豐富的聚合函數,支持相似性匹配、頻域分析等專業時序處理。
(4)接口豐富,簡單易用
支持JDBC接口、Thrift API接口和SDK等多種接口。采用類SQL語句,在標準SQL的語句上增加了對于時間滑動窗口的統計等時序處理常用的功能,提供了系統使用效率。Thrift API接口支持Java、C\C++、Python、C#等多語言接口調用。
(5)低存儲成本
IoTDB獨立研發的TsFile時序文件存儲格式,專門針對時序處理處理做了優化,基于列式存儲,支持顯式的數據類型聲明,不同數據類型自動匹配SNAPPY、LZ4、GZIP、SDT等不同的壓縮算法,可實現1:150甚至更高的壓縮比(數據精度進一步降低的情況下),極大地降低了用戶的存儲成本。例如某用戶原來用9臺KariosDB服務器存儲的時序數據,IoTDB用1臺同等配置的服務器即可輕松實現。
(6)云邊端多形態部署
IoTDB獨有的輕量級架構設計保障了IoTDB可以輕松實現“一套引擎打通云邊端,一份數據兼容全場景”。在云服務中心,IoTDB可以采用集群部署,充分發揮云的集群處理優勢;在邊緣計算位置,IoTDB可以在邊緣服務器上部署單機IoTDB,也可以部署少量節點的集群版,具體視邊緣服務器配置而定;在設備終端,IoTDB可以TsFile文件的形態直接嵌入到終端設備的本地存儲中,并直接被設備終端的直接讀寫TsFile文件,不需要IoTDB數據庫服務器的啟動運行,極大地減少了對終端設備處理能力的要求。由于TsFile文件格式開放,終端任意語言和開發平臺可以直接讀寫TsFile的二進制字節流,也可以利用TsFile自帶的SDK進行讀寫,對外甚至可以通過FTP將TsFile文件發送到邊緣或云服務中心。
(7)查詢分析一體化
IoTDB一份數據同時支持實時讀寫與分布式計算引擎分析,TsFile與IoTDB引擎的松耦合設計保障了一方面IoTDB可以利用專有的時序數據處理引擎對時序數據進行高效寫入和查詢,同時TsFile也可以被Flink、Kafka、Hive、Pulsar、RabbitMQ、RocketMQ、Hadoop、Matlab、Grafana、Zeepelin等大數據相關組件進行讀寫分析,極大地提升了IoTDB的查詢分析一體化能力和生態擴展能力。
MRS IoTDB的整體架構
MRS IoTDB在Apache IoTDB已有架構的基礎上,融合MRS Manager強大的日志管理、運維監控、滾動升級、安全加固、高可用保障、災備恢復、細粒度權限管控、大數據生態集成、資源池優化調度等企業級核心能力,對Apache IoTDB內核架構尤其是分布式集群架構做了大量的重構優化,在穩定性、可靠性、可用性和性能方面做了大量的系統級增強。
(1)接口兼容性:
進一步完善北向接口和南向接口,支持JDBC、Cli、API、SDK、MQTT、CoAP、Https等多種訪問接口,進一步完善類SQL語句,兼容大部分Influx SQL,支持批量導入導出
(2)分布式對等架構:
MRS IoTDB在基于Raft協議的基礎上,采用了改進的Multi-Raft協議,并對Muti-Raft協議的底層實現進行了優化,采用了Cache Leader等優化策略在保障無單節故障的基礎上,進一步提升MRS IoTDB數據查詢路由的性能;同時,對強一致性、中等一致性和弱一致性策略進行了細粒度優化;對一致性哈希算法加入虛擬節點策略避免數據傾斜,同時融合了查表與哈希分區的算法策略,在提升集群高可用的基礎上進一步保障集群調度的性能。
(3)雙層粒度元數據管理:
由于采用了對等架構,元數據信息自然分布在集群所有節點上進行存儲,但是由于元數據的存儲量較大會帶來內存的較大消耗。為了平衡內存消耗與性能,MRS IoTDB采用了雙層粒度元數據管理架構,首先在所有節點間進行時間序列組元數據的同步,其次在分區節點間進行時間序列元數據的同步。這樣在查詢元數據的時候,首先會基于時間序列組進行過濾樹剪枝,大大減少搜尋空間,然后在進一步在過濾后的分區節點進行時間序列元數據的查詢。
(4)本地磁盤高性能訪問:
MRS IoTDB采用專用的TsFile文件格式進行時間序列優化存儲,采用列存格式進行自適應編碼與壓縮,支持流水線優化訪問和亂序數據高速插入
(5)HDFS生態集成:
MRS IoTDB支持HDFS文件讀寫,并對HDFS進行了本地緩存、短路讀、HDFS I/O線程池等多種優化手段,全面提升MRS IoTDB對HDFS的讀寫性能,同時,MRS IoTDB支持華為OBS對象存儲并進行了更加高性能的深度優化。
在HDFS集成的基礎上,MRS IoTDB支持Spark、Flink、Hive等MRS組件對TsFile的高效讀寫。
(6)多級權限管控:
支持存儲組、設備、傳感器等多級權限管控
支持創建、刪除、查詢等多級操作
支持Kerberos認證
支持Ranger權限架構
(7)云邊端部署:
支持云邊端靈活部署,邊緣部分可以基于華為的IEF產品進行對接,也可以直接部署在華為的IES中。
MRS IoTDB集群版支持動態擴縮容,可以為云邊端提供更加靈活的部署支持。
MapReduce 數據庫 架構設計
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。