赞
踩
全球最大的开源软件基金会 Apache 软件基金会于北京时间 2020 年 9 月 23 日宣布 Apache IoTDB 毕业成为 Apache 顶级项目!
IoTDB (Internet of Things Database) 是由清华大学主导的 Apache 孵化项目,是一款聚焦工业物联网、高性能轻量级的时序数据管理系统,也是一款开源时序数据库,为用户提供数据收集、存储和分析等服务。作为一款时序数据库,IoTDB的相关竞品有 KairosDB,InfluxDB,TimescaleDB等。
IoTDB 提供端云一体化的解决方案,在云端,提供高性能的数据读写以及丰富的查询能力,针对物联网场景定制高效的目录组织结构,并与 Apache Hadoop、Spark、Flink 等大数据系统无缝打通;在边缘端,提供轻量化的 TsFile 管理能力,端上的数据写到本地 TsFile,并提供一定的基础查询能力,同时支持将 TsFile 数据同步到云端。
经基准测试表明 IoTDB 的读写性能均优于现有的时序数据库 KairosDB,InfluxDB,TimescaleDB、OpenTSDB 等。
不同数据库遇到的问题
磁盘空间占用&摄取率对比
查询延迟对比
转载于:https://my.oschina.net/u/3374539/blog/3163843
个人理解时序数据就是基于时间维度的同一个物体或概念的值构成的一个序列数据。
在传统关系型数据库中,例如 MySQL
,我们通常会放置一个自增的 id
列作为主键标识,如下:
Id | 人名 | 体温 | 测量时间 |
---|---|---|---|
1 | 张三 | 36.5 | 2022-03-16 9:00:10 |
2 | 李四 | 36.9 | 2022-03-16 9:00:10 |
3 | 王五 | 36.2 | 2022-03-16 9:00:10 |
4 | 张三 | 36.3 | 2022-03-16 9:22:50 |
5 | 张三 | 36.9 | 2022-03-16 10:45:23 |
上面的表结构就是一个时序数据,将表结构做个变形更容易理解:
时间戳 | 人名 | 体温 |
---|---|---|
1647392410 | 张三 | 36.5 |
1647392410 | 李四 | 36.9 |
1647392410 | 王五 | 36.2 |
1647393770 | 张三 | 36.3 |
1647398723 | 张三 | 36.9 |
如果把时间作为一个唯一键对齐展示,能够更像时序数据一些,这也是 IoTDB
中查询结果的展示方式:
时间戳 | 张三 | 李四 | 王五 |
---|---|---|---|
1647392410 | 36.5 | 36.9 | 36.2 |
1647393770 | 36.3 | NULL | NULL |
1647398723 | 36.9 | NULL | NULL |
IoTDB 完成了上述问题中的几乎所有功能,而且可以灵活对接多生态,高性能优势等。
其中,灰色部分是IotDB的组件,数据可以通过JDBC/Native API 写入IoTDB,多个IoTDB之间的数据通过TsFile Sync来实现同步,IotDB Egine通过TsFile的API讲数据写成TsFile的格式,支持的存储方式有本地存储和HDFS。TsFile支持hadoop、Hive、Spark直接进行大数据分析。可以看到IoTDB的核心部分就是TsFile,承载了IoTDB多个实例间的数据同步和数据分析。
上面的图,在逻辑上被分为三部分,其中:
Engine 和 Storage 中主要包含:
Server
模块.Session
模块JDBC
模块Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。