物联网数据库 IoTDB 解析

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS SQL Server,独享型 2核4GB
简介: Apache IoTDB 是专为物联网时序数据打造的数据库,提供数据采集、存储、分析的功能。IoTDB 提供端云一体化的解决方案,在云端,提供高性能的数据读写以及丰富的查询能力,针对物联网场景定制高效的目录组织结构,并与 Apache Hadoop、Spark、Flink 等大数据系统无缝打通;在边缘端,提供轻量化的 TsFile 管理能力,端上的数据写到本地 TsFile,并提供一定的基础查询能力,同时支持将 TsFile 数据同步到云端。

Apache IoTDB 是专为物联网时序数据打造的数据库,提供数据采集、存储、分析的功能。IoTDB 提供端云一体化的解决方案,在云端,提供高性能的数据读写以及丰富的查询能力,针对物联网场景定制高效的目录组织结构,并与 Apache Hadoop、Spark、Flink 等大数据系统无缝打通;在边缘端,提供轻量化的 TsFile 管理能力,端上的数据写到本地 TsFile,并提供一定的基础查询能力,同时支持将 TsFile 数据同步到云端。
image.png

TsFile

TsFile 是为物联网设备时序数据存储定制的文件格式,整体以树状目录结构组织,一个 TsFile 里可存储多个设备的数据,每个设备包含多个 measurment(指标)。如下图,TsFile 里包含两个设备数据,标识分别为 d1、d2;每个设备包含 s1、s2、s3 三个监测指标。

TsFile 整体是一个多级映射表,TsFileMetaData ==> TimeSeriesMetadata ==> ChunkMetadata ==> Chunk。

  1. TsFileMetadata  描述整个 TsFile ,包含格式版本信息, MetadataIndexNode  的位置,总的 chunk 数等元数据信息。
  2. MetadataIndexNode 包含多个 TimeSeriesMetadata ,每个 TimeSeriesMetadata 指向一个设备的元数据信息 ChunkMetadata  列表;
  3. ChunkMetadata 指向 ChunkHeader 位置,并对应最终的 Chunk Data。image.png

查询引擎

IoTDB 内置查询引擎负责所有用户命令的解析、生成计划、交给对应的执行器、返回结果集。IoTDB 通过查询引擎提供了 JDBC 访问 API,简单易用。

IoTDB> CREATE TIMESERIES root.ln.wf01.wt01.status WITH DATATYPE=BOOLEAN, ENCODING=PLAIN
IoTDB> CREATE TIMESERIES root.ln.wf01.wt01.temperature WITH DATATYPE=FLOAT, ENCODING=RLE

IoTDB> INSERT INTO root.ln.wf01.wt01(timestamp,status) values(100,true);
IoTDB> INSERT INTO root.ln.wf01.wt01(timestamp,status,temperature) values(200,false,20.71)

IoTDB> SELECT status FROM root.ln.wf01.wt01
+-----------------------+------------------------+
|                   Time|root.ln.wf01.wt01.status|
+-----------------------+------------------------+
|1970-01-01T08:00:00.100|                    true|
|1970-01-01T08:00:00.200|                   false|
+-----------------------+------------------------+
Total line number = 2

image.png

元数据管理

IoTDB 的元数据模型采用树状结构组织,一个实例包含多个 Storage Group (类似于 Namespace、Database 的概念),一个 Storage Group  里包含多个 Device ,每个 Device  包含多个 Measurement , Measurement  对应的时间序列数据最终存储在 TsFile Chunk 里。另外,为了方便数据过期,每个 Stroage Group  的数据会以时间范围的形式切分存储,默认以周为单位,使用不同的目录存储。

image.png

// Storage Group 分区存储结构
data
-- sequence
---- [存储组名1]
------ [时间分区ID1]
-------- xxxx.tsfile
-------- xxxx.resource
------ [时间分区ID2]
---- [存储组名2]
-- unsequence

存储引擎

image.png

IoTDB 存储引擎基于 LSM Tree 结构设计,写入的数据先记录 WAL,再写到内存 memtable,在后台逐步刷到磁盘 TsFile;磁盘上的 TsFile 通过一定的规则进行 Compaction,保证查询效率。

同步工具

IoTDB 支持在边缘侧、云端部署,通常在边缘侧采集的数据有同步到远端进一步分析处理的需求;IoTDB 提供了同步工具,支持将端/设备上的 TsFile 数据往云端同步。
image.png

连接器

IoTDB 支持与现有的大数据处理系统,包括 Hive、Spark 等无缝连通,IoTDB 提供了 hive-tsfile 、 spark-tsfile 、 spark-iotdb  等连接器,让 Hive、Spark 能直接访问 tsfile 格式的数据,以及访问 IoTDB 的数据。

总结

优势

  1. 针对物联网模型做了定制化,提供 JDBC 访问方式,支持边云一体化部署。
  2. 存储使用 Hadoop File system,并提供多种 connector,与现有大数据生态无缝打通。
  3. 开放的 TsFile 存储格式,设备模型简单易理解。

不足

  1. IoTDB TsFile 的结构,目前仅有 java 版本,资源占用方面对边缘轻量级设备不友好,限制了其在端/设备侧的应用。
  2. 云端版本目前仅有单节点版本,无法满足海量设备数据接入云端的需求。
  3. 存储上支持使用 HDFS 或 本地盘,通过使用 HDFS 来存储可保证存储层高可用,但计算层没有进一步的高可用保障。
相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
24天前
|
传感器 存储 监控
【物联网】液滴即信息:雨滴探测传感器实验解析降雨的密码
【物联网】液滴即信息:雨滴探测传感器实验解析降雨的密码
36 0
|
25天前
|
存储 缓存 关系型数据库
鱼和熊掌如何兼得?一文解析RDS数据库存储架构升级
阿里云RDS率先推出新型存储类型通用云盘,提供低延迟、低成本、高持久性的用户体验。
鱼和熊掌如何兼得?一文解析RDS数据库存储架构升级
|
1月前
|
算法 关系型数据库 MySQL
【MySQL 解析】数据库的乐观锁和悲观锁实现原理
【1月更文挑战第11天】【MySQL 解析】数据库的乐观锁和悲观锁实现原理
|
20天前
|
SQL 数据库
数据库视图的超详细解析📖
数据库视图的超详细解析📖
10 0
|
20天前
|
SQL 监控 关系型数据库
数据库日志解析:深入了解MySQL中的各类日志
数据库日志解析:深入了解MySQL中的各类日志
45 0
|
1月前
|
关系型数据库 MySQL 分布式数据库
PolarDB for MySQL数据库外网连接解析失败的原因可能有以下几点
【1月更文挑战第21天】【1月更文挑战第105篇】PolarDB for MySQL数据库外网连接解析失败的原因可能有以下几点
25 1
|
1月前
|
存储 关系型数据库 MySQL
【MySQL 解析】按照锁的粒度对数据库锁进行分类
【1月更文挑战第11天】【MySQL 解析】按照锁的粒度对数据库锁进行分类
|
2月前
|
传感器 物联网 5G
物联网的通信技术以及Wi-Fi、一键配网技术、BLE、GPRS(2G)、LTE-Cat1 、NB-IoT简介
物联网的一个重要的特点是接入了网络,因此这些设备才能将传感器采集的数据上传到云平台,然后根据平台对数据的分析做出反应。而这种接入网络的技术,就是通信技术,是物联网的基础之一。通信的方式可以分为有线和无线两种方式,因为有线通信的成本较高,无线通信技术在物联网中应用比较广泛。
|
19天前
|
存储 网络协议 物联网
《物联网技术》课程笔记——第四章 物联网通信技术之计算机网络
《物联网技术》课程笔记——第四章 物联网通信技术之计算机网络
|
19天前
|
传感器 编解码 安全
《物联网技术》课程笔记——第三章 物联网感知技术之传感技术
《物联网技术》课程笔记——第三章 物联网感知技术之传感技术
《物联网技术》课程笔记——第三章 物联网感知技术之传感技术

相关产品

  • 云数据库 Redis 版
  • 云数据库 RDS MySQL 版
  • 云原生数据库 PolarDB
  • 推荐镜像

    更多