基于IoTDB 平台的学习和研究

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: Apache IoTDB是专为物联网设计的高性能时序数据库,适用于大规模数据存储、高速数据摄入和复杂分析。其特点是轻量级架构、高性能、丰富的功能集,并与Hadoop、Spark和Flink集成,支持边缘计算和云端部署。关键功能包括最新点查询、灵活部署、数据压缩和安全机制。此外,IoTDB在工业物联网场景中有广泛应用,如设备监控和智慧城市。该数据库易于使用,支持SQL-like查询,并提供与Spring Boot的整合示例。

Apache IoTDB(物联网数据库)是一个针对物联网领域的高性能原生数据库,适用于数据管理和分析,并可在边缘计算和云端部署。由于它轻量级的架构、高性能和丰富的功能集,以及与Apache Hadoop、Spark和Flink的深度集成,Apache IoTDB能够满足物联网行业中大规模数据存储、高速数据摄入和复杂数据分析的需求。

原创文字,IoTDB 社区可进行使用与传播https://xie.infoq.cn/article/bdd7ff440bc2419bc2937000c

一、IoTDB 的介绍

IoTDB (Internet of Things Database) 是由清华大学主导的 Apache 孵化项目,是一款聚焦工业物联网、高性能轻量级的时序数据管理系统,也是一款开源时序数据库,为用户提供数据收集、存储和分析等服务。作为一款时序数据库,IoTDB的相关竞品有 KairosDB,InfluxDB,TimescaleDB等。

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

二、IoTDB的特点

  1. 轻量级架构:IoTDB设计为高效处理物联网设备产生的数据流,其轻量级的架构确保了资源的有效利用和快速响应。
  2. 高性能:针对物联网数据的特性进行了优化,如时间序列数据的快速写入和查询,以及高效的压缩和存储策略。
  3. 丰富的功能集:支持多种数据类型、多种数据压缩算法、数据标签和元数据管理等,满足物联网应用的多样化需求。
  4. 与Hadoop、Spark和Flink的集成:通过与这些大数据处理框架的集成,IoTDB可以无缝地接入到现有的大数据生态系统中,实现数据的实时分析和处理。
  5. 部署灵活:既可以在边缘设备上运行,作为本地数据存储和分析引擎,也可以部署在云端,支持分布式集群架构,实现大规模数据存储和计算。
  6. 安全可靠:提供数据备份和恢复机制,支持数据加密和访问控制,确保数据的安全性和完整性。
  7. 易用性:提供SQL-like的查询语言,方便用户进行数据查询和分析。同时,提供丰富的API和工具,支持多种编程语言和平台。

在物联网工业领域中,Apache IoTDB可以广泛应用于设备监控、能源管理、智能制造、智慧城市等场景,帮助用户实现数据的实时采集、存储、分析和可视化。

三、IoTDB的用法

Apache IoTDB(物联网数据库)是一个针对物联网数据的高性能时序数据库。关于这个平台的用法,以下是我的个人使用体验。

1. 安装与启动

  • 下载与安装:访问官方下载页面(如:https://iotdb.apache.org/Download/)下载适用于您的操作系统的安装包。解压安装包到目标目录。
  • 启动服务:进入sbin目录,使用命令start-cli.bat -h 127.0.0.1 -p 6667 -u root -pw root(Windows)或相应的命令(Linux/Mac)启动IoTDB服务。如果出现查询不到JDK的错误,需要修改start-cli.bat(或相应的脚本文件)中的classpath内容,确保JDK路径正确。

2. Spring Boot整合

  • 导入依赖:在Spring Boot项目的pom.xml文件中添加IoTDB的依赖项,指定合适的版本号。
<dependency>  
    <groupId>org.apache.iotdb</groupId>  
    <artifactId>iotdb-session</artifactId>  
    <version>${iotdb.version}</version>  
</dependency>
  • 配置IoTDB:在application.ymlapplication.properties文件中配置IoTDB的连接信息,如主机地址、端口、用户名、密码等。

iotdb:  
  host: 127.0.0.1  
  port: 6667  
  user: root  
  password: root  
  maxSize: 100
  • 整合代码:创建一个配置类,使用@Configuration@ConfigurationProperties注解来加载IoTDB的配置信息,并创建一个SessionPool的Bean供应用使用。

3. 数据查询

  • 最新点查询:IoTDB支持最新点查询,这是一种特殊的查询,用于返回指定时间序列中时间戳最大的数据点。使用SQL语法select last <Path> from <PrefixPath> [whereClause] [ORDER BY TIMESERIES (DESC|ASC)?]进行查询。

4. 运维和监控

  • 查询历史可视化工具:通过IoTDB提供的网页监控工具,可以查看查询历史和SQL执行时间。还可以监控当前主机的内存和CPU使用率。
  • 系统监视器:使用Java的JConsole工具或IoTDB的开放API来监控系统状态,包括CPU占用、内存信息等。通过JMX MBean Monitoring可以监控IoTDB服务进程的文件数量、数据文件大小等。

5. 配置文件

  • 配置文件目录:在IoTDB安装包的conf目录下可以找到配置文件,包括通用配置、ConfigNode配置和DataNode配置。根据业务需求修改配置文件以满足特定需求。

四、IoTDB平台研究体验

1. 介绍

IoTDB(物联网数据库)作为一体化收集、存储、管理与分析物联网时序数据的软件系统,其研究与应用对于工业物联网的发展具有重要意义。在深入研究IoTDB的过程中,我深刻体会到了其在处理时序数据方面的优势与价值。

2. 核心特点

  1. 高性能与轻量级架构:IoTDB采用轻量式架构,具有高性能和丰富的功能。其能够支持每秒每节点写入数百万数据点,并且具备高效的查询性能,使得TB级数据能够实现秒级查询。
  2. 丰富的功能:IoTDB支持数据的增删改查、丰富的聚合函数以及复杂的查询分析一体化。同时,其还支持与Apache Hadoop、Spark等大数据框架的深度集成,满足工业物联网领域的海量数据存储、高速数据读取和复杂数据分析需求。
  3. 低硬件成本的存储解决方案:IoTDB通过高压缩比的磁盘存储技术,实现了低成本的存储方案。例如,对于10亿数据点,其硬盘成本可低于1.4元。
  4. 高吞吐量的读写能力:IoTDB支持百万级低功耗强连接设备数据接入,同时支持智能网联设备数据的高速读写,满足海量数据的处理需求。
  5. 易于使用的接口:IoTDB支持类SQL的数据操作,提供JDBC的编程接口以及完善的导入导出工具,降低了用户的学习门槛。

3. 技术创新

  1. 列式存储与时序索引:IoTDB采用列式存储技术,结合时序索引,支持快速数据过滤、高效聚合查询、降采样查询等典型时序数据查询种类,提高了查询效率。
  2. TsFile存储文件格式:IoTDB针对时间序列优化的紧致列式存储文件格式TsFile,支持有损、无损等多种高效编码及专有压缩算法,实现了数据的高效存储与压缩。
  3. 分布式部署与数据同步:IoTDB支持分布式部署,并具备强大的数据同步能力与简便的数据同步机制,可实现跨平台、跨车间、跨厂的数据协同。

4. 应用价值

IoTDB的研究与应用对于工业物联网的发展具有重要意义。其通过高效的数据存储、管理与查询能力,可助力工业企业实现数字化转型、工业4.0升级,达到降本、增效、提质等目的。同时,IoTDB还可与多种数据分析处理平台对接,支持时序数据单平台采集、存储、计算、管理、应用全流程,为工业物联网的应用落地提供了坚实的基础。

5. 总结

通过对IoTDB的深入研究与实践,我深刻体会到了其在处理时序数据方面的优势与价值。IoTDB以其高性能、轻量级架构、丰富的功能以及易于使用的接口等特点,在工业物联网领域展现出了广阔的应用前景。未来,随着物联网技术的不断发展与普及,IoTDB将发挥更加重要的作用,推动工业物联网的快速发展。

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
11月前
|
机器学习/深度学习 SQL 分布式计算
Azure 机器学习 - Azure机器学习产品和技术介绍全览
Azure 机器学习 - Azure机器学习产品和技术介绍全览
99 0
|
机器学习/深度学习 人工智能 算法
阿里云机器学习平台 PAI -推荐解决方案|学习笔记
快速学习阿里云机器学习平台 PAI -推荐解决方案。
1049 0
阿里云机器学习平台 PAI -推荐解决方案|学习笔记
|
机器学习/深度学习 前端开发 算法
阿里云机器学习PAI发布基于HLO的全自动分布式系统 TePDist,并宣布开源!
阿里云PAI发布基于HLO的全自动分布式系统 TePDist正式开源!
|
机器学习/深度学习 数据采集 人工智能
whylogs工具库的工业实践!机器学习模型流程与效果监控 ⛵
本文讲解如何使用whylogs工具库,构建详细的AI日志平台,并监控机器学习模型的流程与效果。核心操作包括:环境配置、新建项目并获取ID、获取组织ID和访问Key、将配置文件写入WhyLabs、监控模型性能指标。
900 2
whylogs工具库的工业实践!机器学习模型流程与效果监控 ⛵
|
存储 供应链 安全
OushuDB 小课堂丨零拷贝集成:小数据实践将如何取代大数据
OushuDB 小课堂丨零拷贝集成:小数据实践将如何取代大数据
78 0
|
机器学习/深度学习 人工智能 算法
怎样扩充大数据?你需要了解的第一个联邦学习开源框架FATE
随着机器学习模型应用到生活生产中,如何获得更多的数据训练更好的模型成为了关键,而有助于解决该问题的联邦学习也就受到越来越多的关注。在本文中,我们将一同了解联邦学习,概览第一个联邦学习开源框架 FATE。
265 0
怎样扩充大数据?你需要了解的第一个联邦学习开源框架FATE
|
机器学习/深度学习 分布式计算 DataWorks
阿里云机器学习平台PAI使用简明教程(二)
前面在阿里云机器学习平台PAI使用简明教程介绍了使用DataStudio在maxcompute中手动导入数据进行PAI Studio模型的搭建、训练及在线部署调用。实际在使用过程中使用者的数据可能在其它的数据源,目前PAI Studio并不支持直接接入第三方数据源。官方推荐的方式是使用Dataworks的数据集成功能,将数据通过离线同步将数据导入到maxcompute中,然后进行后续操作。本文以Mysql数据库为例,结合GBDT二分类算法组件,演示相关过程的操作流程。
413 0
阿里云机器学习平台PAI使用简明教程(二)
|
机器学习/深度学习 SQL 运维
阿里云机器学习平台PAI使用简明教程(三)
前面通过两个系列的教程分别介绍了PAI平台的数据流转、实验搭建、模型训练及模型在线部署调用。这一节主要介绍一下实验的离线调度及通过eascmd命令行方式进行部署。
1196 0
阿里云机器学习平台PAI使用简明教程(三)
|
机器学习/深度学习 SQL 数据采集
阿里云机器学习平台PAI使用简明教程(一)
阿里云机器学习平台PAI简明教程。
2627 0
阿里云机器学习平台PAI使用简明教程(一)
|
机器学习/深度学习 Kubernetes API
为什么我们建立机器学习工程平台,而不是数据科学平台?
大约一年前,我们中的一些人开始研究开源机器学习平台 Cortex 。我们的动机很简单:鉴于从模型中构建应用程序是一种可怕的体验,充满了胶水代码和样板,我们需要一个工具,能将这些都予以抽象化。