MRS IoTDB时序数据库的总体架构设计与实现
MRS IoTDB是华为FusionInsight MRS大数据套件最新推出的时序数据库产品,其领先的设计理念在时序数据库领域展现出越来越强大的竞争力,得到了越来越多的用户认可。为了大家更好地了解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年代中期,诞生了适用于工业监控领域的实时数据库。由于实时数据库诞生早,在扩展性、大数据生态对接、分布式架构、数据类型等方面存在局限,但是也有产品配套齐全、工业协议对接完整的优势。时序数据库诞生于物联网时代,在大数据生态对接、云原生支持等方面更有优势。
时序数据库与时态数据库、实时数据库的基本对比信息如下: