使用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.statusroot.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语句的执行结果如下:

相关文章
|
9月前
|
数据采集 运维 数据可视化
AR 运维系统与 MES、EMA、IoT 系统的融合架构与实践
AR运维系统融合IoT、EMA、MES数据,构建“感知-分析-决策-执行”闭环。通过AR终端实现设备数据可视化,实时呈现温度、工单等信息,提升运维效率与生产可靠性。(238字)
|
网络协议 Java 应用服务中间件
框架源码私享笔记(01)Tomcat核心架构功能 | 配置详解
本文首先分享了《活出意义来》一书序言中的感悟,强调成功如同幸福,不是刻意追求就能得到,而是全心投入时的副产品。接着探讨了Tomcat的核心功能与架构解析,包括网络连接器(Connector)和Servlet容器(Container),并介绍了其处理HTTP请求的工作流程。文章还详细解释了Tomcat的server.xml配置文件,涵盖了从顶级容器Server到子组件Connector、Engine、Host、Context等的配置参数及作用,帮助读者理解Tomcat的内部机制和配置方法。
|
运维 供应链 前端开发
中小医院云HIS系统源码,系统融合HIS与EMR功能,采用B/S架构与SaaS模式,快速交付并简化运维
这是一套专为中小医院和乡镇卫生院设计的云HIS系统源码,基于云端部署,采用B/S架构与SaaS模式,快速交付并简化运维。系统融合HIS与EMR功能,涵盖门诊挂号、预约管理、一体化电子病历、医生护士工作站、收费财务、药品进销存及统计分析等模块。技术栈包括前端Angular+Nginx,后端Java+Spring系列框架,数据库使用MySQL+MyCat。该系统实现患者管理、医嘱处理、费用结算、药品管控等核心业务全流程数字化,助力医疗机构提升效率和服务质量。
819 4
|
算法 前端开发 定位技术
地铁站内导航系统解决方案:技术架构与核心功能设计解析
本文旨在分享一套地铁站内导航系统技术方案,通过蓝牙Beacon技术与AI算法的结合,解决传统导航定位不准确、路径规划不合理等问题,提升乘客出行体验,同时为地铁运营商提供数据支持与增值服务。 如需获取校地铁站内智能导航系统方案文档可前往文章最下方获取,如有项目合作及技术交流欢迎私信我们哦~
1257 1
|
存储 智能硬件
CPU的定义与功能与架构
CPU(中央处理器)是计算机的核心部件,负责执行程序指令、控制数据传输和进行运算。它能处理算术与逻辑运算,并协调其他硬件协同工作。x86架构源于英特尔,适用于PC和服务器,采用复杂指令集;ARM架构则由Acorn等公司开发,广泛用于移动设备和嵌入式系统,采用精简指令集,功耗低且能效比高。
1757 5
|
Kubernetes 调度 算法框架/工具
NVIDIA Triton系列02-功能与架构简介
本文介绍了NVIDIA Triton推理服务器的功能与架构,强调其不仅适用于大型服务类应用,还能广泛应用于各类推理场景。Triton支持多种模型格式、查询类型和部署方式,具备高效的模型管理和优化能力,确保高性能和系统稳定性。文章详细解析了Triton的主从架构,包括模型仓库、客户端应用、通信协议和推理服务器的核心功能模块。
900 1
NVIDIA Triton系列02-功能与架构简介
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
当今社会,物联网技术的发展带来了许多繁琐的挑战,尤其是在数据库管理系统领域,比如实时整合海量数据、处理流中的事件以及处理数据的安全性。例如,应用于智能城市的基于物联网的交通传感器可以实时生成大量的交通数据。据估计,未来5年,物联网设备的数量将达数万亿。物联网产生大量的数据,包括流数据、时间序列数据、RFID数据、传感数据等。要有效地管理这些数据,就需要使用数据库。数据库在充分处理物联网数据方面扮演着非常重要的角色。因此,适当的数据库与适当的平台同等重要。由于物联网在世界上不同的环境中运行,选择合适的数据库变得非常重要。 原创文字,IoTDB 社区可进行使用与传播 一、什么是IoTDB 我
664 9
Apache IoTDB进行IoT相关开发实践
|
Kubernetes 安全 微服务
使用 Istio 缓解电信 5G IoT 微服务 Pod 架构的安全挑战
在5G电信领域,Kubernetes集群中部署微服务至关重要,但也带来了重大的安全挑战。Istio作为一个强大的开源服务网格,能有效地管理这些微服务间的通信,通过其控制平面自动将Sidecar代理注入到各微服务Pod中,确保了安全且高效的通信。Istio的架构由数据平面和控制平面组成,其中Sidecar代理作为Envoy代理运行在每个Pod中,拦截并管理网络流量。此外,Istio支持多种Kubernetes发行版和服务,如EKS等,不仅增强了安全性,还提高了应用性能和可观测性。
418 2
使用 Istio 缓解电信 5G IoT 微服务 Pod 架构的安全挑战
|
传感器 存储 架构师
构建基于 IoT 的废物管理系统:软件架构师指南
构建基于 IoT 的废物管理系统:软件架构师指南
452 9
|
Kubernetes 安全 微服务
使用 Istio 缓解电信 5G IoT 微服务 Pod 架构的安全挑战
使用 Istio 缓解电信 5G IoT 微服务 Pod 架构的安全挑战
514 8

推荐镜像

更多