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 设置粘贴多行命令时的行间…

数学建模学习(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得到 但是我…

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

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

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;使信息存储达到…

如何在 Windows 上恢复丢失或删除的文件

意外删除重要文件或文档的历史与 Windows 本身一样悠久&#xff0c;这就是为什么有许多内置方法来恢复它。从深入回收站到挖掘 Microsoft 的 Windows 文件恢复实用程序&#xff0c;以下是如何在 Windows 中恢复丢失和删除的文件。 检查回收站 Windows 帮助您恢复已删除并需要再…

IO多路复用之poll、epoll和select区分

epoll和select 假设你在大学读书&#xff0c;住的宿舍楼有很多间房间&#xff0c;你的朋友要来找你。 select版宿管大妈就会带着你的朋友挨个房间去找&#xff0c;直到找到你为止。 而epoll版宿管大妈会先记下每位同学的房间号&#xff0c; 你的朋友来时&#xff0c;只需告诉你…

德国汉堡大学、清华大学联合英国布里斯托机器人实验室的研究工作分享:基于视觉遥操作的多指机械手灵巧操作

德国汉堡大学&#xff08;张建伟院士团队&#xff09;、清华大学&#xff08;孙富春教授和方斌&#xff09;联合英国布里斯托机器人实验室等单位在基于视觉信息遥操作的多指机械手灵巧操作研究方面取得进展。该工作得到了德国科学基金会&#xff08;DFG&#xff09;与中国国家自…

Git分支管理基本原理

原文全文详见个人博客&#xff1a; Git分支管理基本原理上文已讨论过svn分支管理的基本原理&#xff0c;本文将继续探讨Git分支管理的基本原理&#xff0c;以便后续进行进一步的理解和对比&#xff1a;https://www.coderli.com/git-branch-method/【Java学习交流(982860385)】…

Linux journalctl日志太长,如何倒序查看journalctl --reverse,journalctl -xeu

文章目录 需求实验方法一方法二 需求 Linux journalctl日志太长&#xff0c;如何倒序查看 我们通常关心的是最近的日志&#xff0c;但是每次打开日志都是按时间先后顺序显示的&#xff0c;如何倒序查看&#xff0c;请看下面&#xff1a; 实验 方法一 journalctl 命令默认按…

Linux工具相关介绍

目录 1.linux安装软件 2.Linux软件生态问题 3.linux软件包管理器yum 4.linux里面好玩的小命令 4.1安装源 4.2小火车 4.3人物说话情景 5.vim简单介绍 5.1简单认识 5.2代码编写 5.3命令模式 1.linux安装软件 1.1源代码安装&#xff1a;这个里面可能根据代码bug需要修改…

AI模型大比拼:Claude 3系列 vs GPT-4系列最新模型综合评测

AI模型大比拼&#xff1a;Claude 3系列 vs GPT-4系列最新模型综合评测 引言 人工智能技术的迅猛发展带来了多款强大的语言模型。本文将对六款领先的AI模型进行全面比较&#xff1a;Claude 3.5 Sonnet、Claude 3 Opus、Claude 3 Haiku、GPT-4、GPT-4o和GPT-4o Mini。我们将从性能…

huawei USG6001v1学习---防火墙高可靠性(双机热备)

1.什么是双机热备 如图&#xff1a;当左图的防火墙发生故障时&#xff0c;整个系统都会收到影响&#xff0c;而右图即使有防火墙发生故障&#xff0c;但是还有一台防火墙做备份&#xff0c;相对于只有一台防火墙&#xff0c;要可靠些。 由于防火墙上不仅需要同步配置信息&…