IOTDB介绍

IoTDB介绍

Apache IOTDB logo

全球最大的开源软件基金会 Apache 软件基金会于北京时间 2020 年 9 月 23 日宣布 Apache IoTDB 毕业成为 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 提供端云一体化的解决方案,在云端,提供高性能的数据读写以及丰富的查询能力,针对物联网场景定制高效的目录组织结构,并与 Apache Hadoop、Spark、Flink 等大数据系统无缝打通;在边缘端,提供轻量化的 TsFile 管理能力,端上的数据写到本地 TsFile,并提供一定的基础查询能力,同时支持将 TsFile 数据同步到云端。

经基准测试表明 IoTDB 的读写性能均优于现有的时序数据库 KairosDB,InfluxDB,TimescaleDB、OpenTSDB 等。

不同数据库遇到的问题

不同数据库遇到的问题

磁盘空间占用&摄取率对比

IoTDB和其他时序数据库磁盘空间占用&摄取率对比图

查询延迟对比

IoTDB和其他时序数据库查询延迟对比图

什么是时序数据?

转载于: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 功能特点cisdi

IoTDB 完成了上述问题中的几乎所有功能,而且可以灵活对接多生态,高性能优势等。

基本框架

应用

Apache IoTDB 的架构图

其中,灰色部分是IotDB的组件,数据可以通过JDBC/Native API 写入IoTDB,多个IoTDB之间的数据通过TsFile Sync来实现同步,IotDB Egine通过TsFile的API讲数据写成TsFile的格式,支持的存储方式有本地存储和HDFS。TsFile支持hadoop、Hive、Spark直接进行大数据分析。可以看到IoTDB的核心部分就是TsFile,承载了IoTDB多个实例间的数据同步和数据分析。

上面的图,在逻辑上被分为三部分,其中:

  1. Engine 是完整的数据库进程,负责 sql 语句的解析,数据写入、查询、元数据管理等功能。
  2. Storage 是底层存储结构,类似于Mysql 的 idb 文件
  3. Analyzing Layer 是各种连接器。

Engine 和 Storage 中主要包含:

  1. IoTDB Engine,也就是代码中的 Server 模块.
  2. Native API,他是高效写入的基石,代码中的 Session 模块
  3. JDBC,传统的 JDBC 连接调用方式,代码中的 JDBC 模块
  • 4
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
IoTDB 是一个轻量级、高效的开源物联网数据存储系统,它专门用于物联网设备产生的海量时序数据的存储和管理。而 Spring Boot 是一个基于 Java 的开源框架,用于简化新兴的微服务架构中的应用程序开发。通过结合 IoTDB 和 Spring Boot,可以实现物联网设备数据的实时存储和快速访问。 首先,结合 IoTDB 和 Spring Boot 可以创建一个高效的数据存储和管理系统,可以支持大规模的物联网设备数据接入和存储。通过使用 Spring Boot 提供的快速开发功能,可以更快速地搭建出一个完整的物联网数据处理系统,并且可以通过 Spring Boot 提供的各种配置和扩展功能来满足不同场景下的需求。 其次,IoTDB 和 Spring Boot 的结合还可以实现物联网设备数据的实时查询和分析功能。IoTDB 提供了高效的数据存储和查询能力,而 Spring Boot 可以通过集成各种数据分析和可视化组件,实现对物联网数据的实时监控和分析。 最后,IoTDB 和 Spring Boot 的结合也可以实现数据安全和权限管理功能。通过 Spring Boot 的安全框架,可以实现对物联网设备数据的访问权限控制和数据加密,以保障数据安全。 综上所述,IoTDB 和 Spring Boot 的结合可以实现物联网设备数据的高效存储、实时查询和分析、数据安全和权限管理等功能,为物联网数据处理系统的开发和应用提供了强大的支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值