使用Apache IoTDB进行IoT相关开发的架构设计与功能实现(8)

简介: IoTDB为用户提供了多种插入实时数据的方式,如直接输入插入SQL语句在客户端,这插入SQL语句语句可用于将数据插入到一个或多个已创建的指定时间序列中。

数据操作语言

插入实时数据

IoTDB provides users with a variety of ways to insert real-time data, such as directly inputting INSERT SQL statement in Client/Shell tools, or using Java JDBC to perform single or batch execution of INSERT SQL statement.

本节主要介绍插入SQL语句用于场景中的实时数据导入。

在本节的场景中,取两个时间序列root.ln.wf02.wt02.status和root.ln.wf02.wt02.hardware例如,它们的数据类型分别是布尔型和文本型。

单列数据插入的示例代码如下:

  1. IoTDB >insertintoroot.ln.wf02.wt02(timestamp,status)values(1,true)
  2. IoTDB >insertintoroot.ln.wf02.wt02(timestamp,hardware)values(1, "v1")

上面的示例代码将长整数时间戳和值“true”插入到时间序列中root.ln.wf02.wt02.status并将长整数时间戳和值“v1”插入到时间序列中root.ln.wf02.wt02.hardware。当执行成功时,会显示成本时间以指示数据插入已经完成。

注意:在IoTDB中,文本类型数据可以用单引号和双引号表示。上面的插入语句对文本类型数据使用双引号。以下示例将对文本类型数据使用单引号。

INSERT语句还可以支持在同一时间点插入多列数据。在同一时间点“2”插入两个时间序列的值的示例代码如下:

  1. IoTDB > insert into root.ln.wf02.wt02(timestamp, status, hardware) VALUES (2, false, 'v2')

插入数据后,我们可以使用SELECT语句简单地查询插入的数据:

  1. IoTDB > select * from root.ln.wf02 where time < 3

结果如下所示。从查询结果可以看出,单列和多列数据的插入语句执行正确。

INSERT语句的错误处理

例如,如果用户将数据插入到不存在的时间序列中,请执行以下命令:

  1. IoTDB >insertintoroot.ln.wf02.wt02(timestamp,temperature)values(1,"v1")

因为root.ln.wf02.wt02. temperature不存在,系统将返回以下错误信息:

  1. Msg: The resultDataType or encoding or compression of the last node temperature is conflicting in the storage group root.ln

例如,如果用户插入的数据类型与时间序列的相应数据类型不一致,则执行以下命令:

  1. IoTDB >insertintoroot.ln.wf02.wt02(timestamp,hardware)values(1,100)

系统将返回以下错误信息:

  1. error: The TEXT data type should be covered by " or '

挑选

时间片查询

本章主要介绍使用IoTDB SELECT语句进行时间片查询的相关例子。详细的SQL语法和用法规范可以在SQL文档。

根据时间间隔选择一列数据

SQL语句是:

  1. selecttemperaturefromroot.ln.wf01.wt01wheretime< 2017-11-01T00:08:00.000

这意味着:

所选设备为ln集团wf01厂wt01设备;选定的时间序列是温度传感器(温度)。SQL语句要求选择“2017-11-01T00:08:00.000”时间点之前的所有温度传感器值。

该SQL语句的执行结果如下:

根据时间间隔选择多列数据

SQL语句是:

  1. selectstatus, temperature from root.ln.wf01.wt01 wheretime> 2017-11-01T00:05:00.000 andtime< 2017-11-01T00:12:00.000;

这意味着:

所选设备为ln集团wf01厂wt01设备;选定的时间系列是“状态”和“温度”。SQL语句要求选择“2017-11-01T00:05:00.000”和“2017-11-01T00:12:00.000”时间点之间的状态和温度传感器值。

该SQL语句的执行结果如下:

根据多个时间间隔为同一设备选择多列数据

IoTDB支持在一个查询中指定多个时间间隔条件。用户可以根据需要任意组合时间间隔条件。例如,SQL语句是:

  1. selectstatus,temperature from root.ln.wf01.wt01 where (time> 2017-11-01T00:05:00.000 andtime< 2017-11-01T00:12:00.000) or (time>= 2017-11-01T16:35:00.000 andtime<= 2017-11-01T16:37:00.000);

这意味着:

所选设备为ln集团wf01厂wt01设备;选择的时间序列是“状态”和“温度”;该语句指定了两个不同的时间间隔,即“2017-11-01T00:05:00.000至2017-11-01T00:12:00.000”和“2017-11-01T16:35:00.000至2017-11-01T16:37:00.000”。SQL语句要求选择满足任何时间间隔的选定时间序列的值。

该SQL语句的执行结果如下:

根据多个时间间隔为不同的设备选择多列数据

系统支持在查询中选择任何列中的数据,即所选择的列可以来自不同的设备。例如,SQL语句是:

  1. select wf01.wt01.status,wf02.wt02.hardware from root.ln where (time> 2017-11-01T00:05:00.000 andtime< 2017-11-01T00:12:00.000) or (time>= 2017-11-01T16:35:00.000 andtime<= 2017-11-01T16:37:00.000);

这意味着:

选择的时间序列为“ln集团wf01厂wt01装置的电源状态”和“ln集团wf02厂wt02装置的硬件版本”;该语句指定了两个不同的时间间隔,即“2017-11-01T00:05:00.000至2017-11-01T00:12:00.000”和“2017-11-01T16:35:00.000至2017-11-01T16:37:00.000”。SQL语句要求选择满足任何时间间隔的选定时间序列的值。

该SQL语句的执行结果如下:

相关文章
|
Dubbo Java 应用服务中间件
Apache ShenYu 架构学习指南
Apache ShenYu 是一款高性能、插件化的微服务API网关,基于Spring WebFlux + Reactor 构建,支持多协议、动态配置与实时数据同步。本指南以通俗类比和实战路径,带你深入理解其架构设计、核心流程与源码实现,助力快速掌握并参与贡献。
1841 12
|
存储 消息中间件 Kafka
Confluent 首席架构师万字剖析 Apache Fluss(二):核心架构
原文:https://jack-vanlightly.com/blog/2025/9/2/understanding-apache-fluss 作者:Jack Vanlightly 翻译:Wayne Wang@腾讯 译注:Jack Vanlightly 是一位专注于数据系统底层架构的知名技术博主,他的文章以篇幅长、细节丰富而闻名。目前 Jack 就职于 Confluent,担任首席技术架构师,因此这篇 Fluss 深度分析文章,具备一定的客观参考意义。译文拆成了三篇文章,本文是第二篇。
1239 20
|
存储 SQL 缓存
快手:从 Clickhouse 到 Apache Doris,实现湖仓分离向湖仓一体架构升级
快手 OLAP 系统为内外多个场景提供数据服务,每天承载近 10 亿的查询请求。原有湖仓分离架构,由离线数据湖和实时数仓组成,面临存储冗余、资源抢占、治理复杂、查询调优难等问题。通过引入 Apache Doris 湖仓一体能力,替换了 Clickhouse ,升级为湖仓一体架构,并结合 Doris 的物化视图改写能力和自动物化服务,实现高性能的数据查询以及灵活的数据治理。
1355 3
快手:从 Clickhouse 到 Apache Doris,实现湖仓分离向湖仓一体架构升级
|
物联网 数据管理 Apache
拥抱IoT浪潮,Apache IoTDB如何成为你的智能数据守护者?解锁物联网新纪元的数据管理秘籍!
【8月更文挑战第22天】随着物联网技术的发展,数据量激增对数据库提出新挑战。Apache IoTDB凭借其面向时间序列数据的设计,在IoT领域脱颖而出。相较于传统数据库,IoTDB采用树形数据模型高效管理实时数据,具备轻量级结构与高并发能力,并集成Hadoop/Spark支持复杂分析。在智能城市等场景下,IoTDB能处理如交通流量等数据,为决策提供支持。IoTDB还提供InfluxDB协议适配器简化迁移过程,并支持细致的权限管理确保数据安全。综上所述,IoTDB在IoT数据管理中展现出巨大潜力与竞争力。
828 1
|
SQL 分布式数据库 Apache
网易游戏 x Apache Doris:湖仓一体架构演进之路
网易游戏 Apache Doris 集群超 20 个 ,总节点数百个,已对接内部 200+ 项目,日均查询量超过 1500 万,总存储数据量 PB 级别。
1470 3
网易游戏 x Apache Doris:湖仓一体架构演进之路
|
分布式计算 大数据 Apache
Apache Spark & Paimon Meetup · 北京站,助力 LakeHouse 架构生产落地
2024年11月15日13:30北京市朝阳区阿里中心-望京A座-05F,阿里云 EMR 技术团队联合 Apache Paimon 社区举办 Apache Spark & Paimon meetup,助力企业 LakeHouse 架构生产落地”线下 meetup,欢迎报名参加!
711 59
|
存储 SQL Apache
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
Apache Doris 是一个基于 MPP 架构的高性能实时分析数据库,以其极高的速度和易用性著称。它支持高并发点查询和复杂分析场景,适用于报表分析、即席查询、数据仓库和数据湖查询加速等。最新发布的 2.0.2 版本在性能、稳定性和多租户支持方面有显著提升。社区活跃,已广泛应用于电商、广告、用户行为分析等领域。
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
|
存储 消息中间件 人工智能
基于 Apache RocketMQ 的 ApsaraMQ Serverless 架构升级
基于 Apache RocketMQ 的 ApsaraMQ Serverless 架构升级
575 0
|
SQL 存储 分布式计算
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
571 9
|
数据处理 Apache 数据库
将 Python UDF 部署到 Apache IoTDB 的详细步骤与注意事项
【10月更文挑战第21天】将 Python UDF 部署到 Apache IoTDB 中需要一系列的步骤和注意事项。通过仔细的准备、正确的部署和测试,你可以成功地将自定义的 Python UDF 应用到 Apache IoTDB 中,为数据处理和分析提供更灵活和强大的支持。在实际操作过程中,要根据具体情况进行调整和优化,以确保实现最佳的效果。还可以结合具体的代码示例和实际部署经验,进一步深入了解和掌握这一过程。
375 2

热门文章

最新文章

推荐镜像

更多