IoTDB 分段查询语句详解:GROUP BY + 时序语义

38f9c6efb847e9cdee6840b59e459c44.jpeg

GROUP BY 查询子句的时序语义展开,IoTDB 支持的分段方式总结!

存储的数据通过分析来发挥价值,当一组被存储的数据通过查询得到分析后的结果时,这些数据才真正在数据库中实现了价值闭环。

在关系型数据库中,GROUP BY 子句是 SQL 语言中用于将结果集按照一个或多个列分组的关键字。它通常与聚合函数一起使用,如 COUNT(), SUM(), AVG(), MIN(), MAX() 等,以便对每个分组的数据进行统计或计算。但由于关系型数据库中的数值没有时间顺序的概念,所以在分组时并不会考虑分组键前后。

如下图所示:基于值列的分组通常以数据是否等值为分组条件,分段方式较为固定。

26764b9f94ba794053abbbc259b57205.png

而时序场景下,比起分组键的列值组合,我们通常更加在意时间维度前后数据的联系。基于时间列分组,可能要求不同大小的滑动窗口等符合时序语义的分段方式。

aeafc21b43ad86d1d37d3eb9587421aa.png

因此 IoTDB 提供了针对基于时间列的新型分段场景,支持用户使用内置简单 SQL 语句快速便捷的对时序数据进行分段,更好的提取时序数据的相关特征,帮助用户更高效的在时序场景下发掘数据价值。

01 方法一:按时间区间分段

作为最基本的时间分段方式,IoTDB 可以支持基本的时间滑动窗口分段。可以指定聚合的时间间隔和滑动步长来定义窗口。其 SQL 主要包含三个参数:

  • [startTime, endTime): 查询的时间范围

  • interval: 单个分段窗口的大小

  • sliding step: 窗口的滑动步长

GROUP BY ([startTime, endTime), size, step)

下图展示了这三个参数的含义:

4fff6616789a5ee65b0be89666383e43.png

02 方法二:按数据差值分段

传统的分段方式可以对相同的值进行分段,在时序语义下,由于数据可以保证按时间顺序到来,我们可以将值的变化规律作为分段的依据。

在 IoTDB 的差值分段中,我们将第一条数据作为一个时间段的基准,每个分段会按照给定表达式与基准数值行进行差值运算,如果差值小于给定的阈值则加入当前时间段;如果超过给定阈值,则分为下一个时间段。

下图解释了该分段方式:

4493aea84ca7bc3d867da9b4e6b2c9e6.jpeg

其 SQL 与不同的参数含义如下:

GROUP BY VARIATION(controlExpression[,delta][,ignoreNull=true/false])
  • controlExpression:分组所参照的值,可以是数据行中的某一列或是多列的表达式

  • delta:分组所使用的阈值,默认为 0

  • ignoreNull:用于指定 controlExpression 计算结果为 null 时对数据的处理方式,ignoreNull 为 true 时,则直接跳过对应的点,否则创建新的时间段。

03 方法三:按会话间隔分段

在实际场景,即使是有序的时间列,可能也并不连续。而这些时间列之间的时间间隔便可以作为分段的依据,会话分段可以将时间间隔超过一定阈值的数据切割为不同时间段。如下所示:

4e9b8d93b697362c95139bf7b3915e3f.jpeg

GROUP BY SESSION(timeInterval)

04 方法四:按数据点数分段

在一些场景中,我们会在时序语义下基于连续的时间点数做分段,将连续的指定数量数据点分为一组。如下所示:

39d157597ed4800a61fec9a32fa13f25.jpeg

GROUP BY COUNT(controlExpression,size[,ignoreNull=true/false])

05 方法五:按符合条件的数据点数分段

对于顺序到来的数据,我们还可以指定条件表达式来对数据行进行筛选。将符合条件的连续数据点加入时间段,如下图,将数值为 True 的数据点每三个分为一段,其分段示意图和 SQL 定义如下:

681fb7e9e9d7d007090d0b4398a24da1.jpeg

GROUP BY CONDITION(predictExpression[keep >/>=/=/<=/<]threshold[,ignoreNull=true/false])
  • predictExpression:返回值为 boolean 数据类型的表达式,用于数据行的筛选

  • keep:行数满足 keep 的表达式的数据行会被加入到时间段中

  • ignoreNull:predictExpression 为 null 时数据行的处理方式,为 true 跳过该行,否则创建新的时间段

06 总结

本文为大家详细介绍了当前 IoTDB 中具备时序特色语义的分段方式,不同于关系型数据库的传统关系代数(针对无序集合的算子),上述分段方式均利用了时序数据天然有序的语义,大家可以通过这些便捷的语法实现自身业务的查询需求。除了这些分段方式之外,IoTDB 本身提供了一个通用的分段框架,欢迎感兴趣的朋友参与 IoTDB 社区,贡献多样的分段实现。

规上企业应用实例

能源电力:中核武汉|国网信通产业集团|华润电力|大唐先一|上海电气国轩|清安储能|太极股份|绍兴安瑞思

航天航空:中航机载共性|北邮一号卫星

钢铁冶炼:宝武钢铁|中冶赛迪

交通运输:中车四方|长安汽车|城建智控|德国铁路

智慧工厂与物联:PCB 龙头企业|博世力士乐|德国宝马|京东|昆仑数据|怡养科技

3e8266eed7ed659a57628485d08999d5.gif

ce2a548677ced4ee530458d9741c7bf1.jpeg

9e6fd08184c33050840083e6b6eed5f2.jpeg

1697a465c28888235fb8dd57f8c7dbdb.jpeg

e4f2d677943ed82b0f748ccd7162fee2.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/873829.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

陀螺仪LSM6DS3TR-C的简单使用

文章目录 一、前言二、硬件1.引脚说明2.原理图 三、软件1.IIC读写函数1.1 读函数1.2 写函数 2.初始化2.1 检测设备是否存在2.2 读取LSM6DS3TRC器件ID2.3 LSM6DS3TRC重启&#xff0c;重置寄存器2.5 LSM6DS3TRC设置块数据更新2.6 LSM6DS3TRC设置加速度计的数据采样率2.7 LSM6DS3T…

剪画小程序:刷到好听的音频怎么将音频保存到手机里

在这个短视频盛行的时代&#xff0c;相信很多朋友都和我一样&#xff0c;常常会被那些精彩视频中的背景音乐深深吸引。 比如我&#xff0c;特别喜欢听歌&#xff0c;这段时间在短视频平台上刷到了好多好看的视频&#xff0c;里面的背景音乐简直绝绝子&#xff01; 那么&#x…

【数据分享】2013-2022年我国省市县三级的逐年SO2数据(excel\shp格式\免费获取)

空气质量数据是在我们日常研究中经常使用的数据&#xff01;之前我们给大家分享了2000——2022年的省市县三级的逐年PM2.5数据和2013-2022年的省市县三级的逐年CO数据&#xff08;均可查看之前的文章获悉详情&#xff09;&#xff01; 本次我们分享的是我国2013——2022年的省…

《样式设计011:模组-瓷片区》

描述&#xff1a;在开发小程序过程中&#xff0c;发现一些不错的案例&#xff0c;平时使用也比较多&#xff0c;稍微总结了下经验&#xff0c;以下内容可以直接复制使用&#xff0c;希望对大家有所帮助&#xff0c;废话不多说直接上干货&#xff01; 一、小程序&#xff1a;模组…

TeraTerm 使用技巧

参考资料 自分がよく使うTeratermマクロによる自動ログインのやり方をまとめてみたよTera Term マクロでログインを自動化してみたTera Term のススメ 目录 简介一. 常用基础设置1.1 语言变更1.2 log设置 二. 小技巧2.1 指定host别名2.2 新开窗口2.3 设置粘贴多行命令时的行间…

【C++11】initializer_list、可变参数模板详解

目录 一、统一的列表初始化1.&#xff5b;&#xff5d;初始化2.initializer_list 二、可变模版参数1.可变模版参数简介2.模板参数包展开的方式3.示例 emplace_back 一、统一的列表初始化 1.&#xff5b;&#xff5d;初始化 在C98标准中&#xff0c;允许使用花括号{}对数组或者…

Ubuntu24开机黑屏,VMware卡死,虚拟机繁忙解决方案

文章目录 可能出现的异常情况问题原因黑屏解决方案开机黑屏解决方案一开机黑屏解决方案二进入终端的方法 可能出现的异常情况 安装时无法启动&#xff0c;无法正常执行安装程序安装后启动黑屏启动后能够进入登陆界面&#xff0c;登陆后黑屏黑屏后VMware整个卡死&#xff0c;Ub…

数学建模学习(111):改进遗传算法(引入模拟退火、轮盘赌和网格搜索)求解JSP问题

文章目录 一、车间调度问题1.1目前处理方法1.2简单案例 二、基于改进遗传算法求解车间调度2.1车间调度背景介绍2.2遗传算法介绍2.2.1基本流程2.2.2遗传算法的基本操作和公式2.2.3遗传算法的优势2.2.4遗传算法的不足 2.3讲解本文思路及代码2.4算法执行结果&#xff1a; 三、本文…

怎么使用动态IP地址上网

如何设置动态IP地址上网&#xff1f; 设置动态IP地址上网的步骤如下&#xff1a; 一、了解动态IP地址 动态IP地址是由网络服务提供商&#xff08;ISP&#xff09;动态分配给用户的IP地址&#xff0c;它会根据用户的需求和网络情况实时改变。相比于静态IP地址&#xff0c;动态…

基于术语词典干预的机器翻译挑战赛笔记 Task3 #Datawhale AI 夏令营

书接上回&#xff0c;上回在这捏&#xff1a; 基于术语词典干预的机器翻译挑战赛笔记Task2 #Datawhale AI 夏令营-CSDN博客文章浏览阅读223次&#xff0c;点赞10次&#xff0c;收藏5次。基于术语词典干预的机器翻译挑战赛笔记Task2https://blog.csdn.net/qq_23311271/article/…

状压dp,D - Grid Puzzle

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 D - Grid Puzzle 二、解题报告 1、思路分析 贪心做法看不懂&#xff08;为什么我赛时要跟贪心过不去啊&#xff09; 这个题麻烦在这个case&#xff1a;2 4 4 2&#xff0c;我们可以清除三次2x2得到 但是我…

【NLP】Jieba中文分词

Jieba分词是一个用于中文文本分词的开源工具。它可以将一段连续的中文文本切分成一个一个的词语&#xff0c;这对于中文自然语言处理&#xff08;NLP&#xff09;任务如文本分类、情感分析、机器翻译等非常重要。Jieba分词具有以下特点&#xff1a; 支持三种分词模式&#xff1…

【机器学习】FlyFlowerSong【人工智能】资源指南

一、引言 FlyFlowerSong是一个创新的音乐合成与处理项目&#xff0c;它利用先进的机器学习算法&#xff0c;为用户提供了一个简单而有趣的音乐创作平台。作为人工智能领域的技术自媒体创作者&#xff0c;我整理了关于FlyFlowerSong的完整教程、论文复现指南以及demo项目源代码…

前端post提交一次会有两次请求?

1 问题&#xff1a;前端post只提交一次会有两次请求&#xff1f; 前端post只提交一次会有两次请求&#xff1f;如下图&#xff1a; 这里是执行了两次post提交&#xff0c;每个post都有两次&#xff08;一次是preflight以options方式&#xff0c;一次是xhr&#xff0c;原本…

安装docker-18.06报错Error: libseccomp conflicts with docker-18.06

安装dockers报错 Error: libseccomp conflicts with docker-18.06.1ce-6.amzn2.x86_64 You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest 这个是libseccomp版本跟docker版本不对&#xff0c;要升级docker版…

【笔记-软考】架构演化

Author&#xff1a;赵志乾 Date&#xff1a;2024-07-20 Declaration&#xff1a;All Right Reserved&#xff01;&#xff01;&#xff01; 1. 概念 架构都会经历初始设计、实际使用、修改完善和退化弃用的过程&#xff0c;其中修改完善即为架构的演化过程&#xff0c;其演化的…

STM32+USART串口(1)

GPIO口的复用功能是有对应的&#xff0c;作USART使用的话要选择对应的GPIO&#xff1b;可以参考引脚定义&#xff1b; &#xff08;1&#xff09;串口通信分为&#xff1a;串行通信和并行通信&#xff1b; &#xff08;2&#xff09;通信波特率 &#xff1a;通常用波特率&…

Yolo-World网络模型结构及原理分析(三)——RepVL-PAN

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言1. 网络结构2. 特征融合3. 文本引导&#xff08;Text-guided&#xff09;4. 图像池化注意力&#xff08;Image-Pooling Attention&#xff09;5. 区域文本匹配&…

springboot+vue+mybatis校园热点新闻系统+PPT+论文+讲解+售后

21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识&#xff0c;科学化的管理&#xff0c;使信息存储达到…

Tomcat长连接源码解析

长连接: 客户端发送Http请求至服务端&#xff0c;请求发送完之后socket连接不断开&#xff0c;可以继续接收下一个Http请求并且解析返回。接手并解析这些Http请求的时候socket连接不断开&#xff0c;这种过程被称为长连接。 需要注意的点就在于&#xff0c;在满足什么条件的情况…