MRS IoTDB时序数据库的架构设计与实现(2)

cloudsong 发表于 2021/06/25 16:15:22 2021/06/25
【摘要】 本文主要为大家介绍MRS IoTDB的单机架构。MRS IoTDB主要聚焦在IoT物联网领域的设备传感器测点值的实时处理,因此,MRS IoTDB的基础架构设计以设备、传感器为核心概念,同时为了便于用户使用和IoTDB管理时间序列数据,增加了存储组的概念。

4. MRS IoTDB的单机架构

4.1 MRS IoTDB的基础概念

  MRS IoTDB主要聚焦在IoT物联网领域的设备传感器测点值的实时处理,因此,MRS IoTDB的基础架构设计以设备、传感器为核心概念,同时为了便于用户使用和IoTDB管理时间序列数据,增加了存储组的概念,下面为大家分别解释一下:

  存储组(Storage Group): IoTDB为了管理时序数据提出的一个概念,类似于关系数据库中的数据库的概念。从用户角度,主要用于对设备数据进行分组管理;从IoTDB数据库角度,存储组又是一个并发控制和磁盘隔离的单位,不同存储组之间可以并行读写。

  设备 (Device):对应现实世界中的具体物理设备,例如:电厂某制造单元、风力发电机、汽车、飞机发动机、地震波采集仪器等。在IoTDB, device是时序数据一次写入的单位,一次写入请求局限在一个设备中。

  传感器(Sensor): 对应现实世界中的具体物理设备自身携带的传感器,例如:风力发电机设备上的风速、转向角、发电量等信息采集的传感器。在IoTDB中,Sensor也称为测点(Measurement),具体指传感器采集的某时刻的传感器值,在IoTDB内部采用<time, value>的形式进行列式存储。

  存储组、设备、传感器的关系如下面的例子:

 

时间序列(Time Series): 类似于关系数据库中的一张表,不过这张表主要有时间戳(Timestamp)、设备ID(Device ID)、测点值(Measurement)三个主要字段。为了便于对时间序列的设备信息进行更多描述,IoTDB还增加了TagField等扩展字段,其中Tag支持索引,Field不支持索引。在有的时序数据库中,又称为时间线,表示记录某设备某传感器值随着时间不断变化的值,形成一条沿着时间轴不断追加测点值的时间线。

  路径(Path)IoTDB构造了一个以root为根节点、把存储组、设备、传感器串联在一起的树形结构,从root根节点经过存储组、设备到传感器叶子节点,构成了一条路径。如下图所示:

  虚拟存储组:由于存储组的概念具有用户对设备分组和系统进行并发控制的双重作用,二者的过度耦合会造成用户的不同使用方式对系统并发控制的影响。例如:用户把不相关的所有设备数据都放到一个存储组中,IoTDB对这个存储组加锁进行并发控制,限制了数据的并发读写能力。为了是实现存储组与并发控制的相对松耦合,IoTDB设计了虚拟存储组这个概念,把对存储组的并发控制细粒度拆分到虚拟存储组这个粒度,从而减少了并发控制的粒度。

4.2 MRS IoTDB的基本架构

    单机MRS IoTDB主要不同的存储组构成,每个存储组是一个并发控制和资源隔离单位,每个存储组里面包括了多个Time Partition。其中,每个存储组对应一个WAL预写日志文件和TsFile时序数据存储文件。每个Time Partition中的时序数据先写入Memtable,同时记入WAL,定时异步刷盘到TsFile,具体实现机制后续会给大家详细介绍。MRS IoTDB单机的基本架构如下:

 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。