qq网页版在线登录入口seo168小视频

张小明 2026/1/11 10:36:48
qq网页版在线登录入口,seo168小视频,房地产最新消息爆雷,金华网站开发建设引言 在工业物联网场景中#xff0c;某设备监控系统每秒产生超过2万条包含温度、压力、振动幅度的多维时序数据。若直接存储原始数据#xff0c;单日存储量将突破200GB。通过IoTDB的分组聚合#xff08;GROUP BY#xff09;与聚合结果过滤#xff08;HAVING#xff09;子…引言在工业物联网场景中某设备监控系统每秒产生超过2万条包含温度、压力、振动幅度的多维时序数据。若直接存储原始数据单日存储量将突破200GB。通过IoTDB的分组聚合GROUP BY与聚合结果过滤HAVING子句的协同使用保证分析结果的精准性。Apache IoTDB 时序数据库【系列篇章】No.文章地址点击进入1Apache IoTDB1时序数据库介绍与单机版安装部署指南2Apache IoTDB2时序数据库 IoTDB 集群安装部署的技术优势与适用场景分析3Apache IoTDB3时序数据库 IoTDB Docker部署从单机到集群的全场景部署与实践指南4Apache IoTDB4深度解析时序数据库 IoTDB 在Kubernetes 集群中的部署与实践指南5Apache IoTDB5深度解析时序数据库 IoTDB 中 AINode 工具的部署与实践6Apache IoTDB6深入解析数据库管理操作——增删改查与异构数据库实战指南7Apache IoTDB7设备模板管理——工业物联网元数据标准化的破局之道8Apache IoTDB8时间序列管理——从创建到分析的实战指南9Apache IoTDB9数据库操作——数据写入从CLI到集群部署的六种实战10Apache IoTDB10数据库操作——从查询到优化的全链路实践指南11Apache IoTDB11分段聚合深度解析——从原理到实战的完整指南本文将从案例系统剖析这两个子句的协同工作机制。不同于传统数据库的聚合操作IoTDB针对时序数据的特性进行了深度优化支持时间窗口、设备层级、标签等多维分组方式并可通过HAVING子句实现聚合结果的精准过滤。一、分组聚合GROUP BY1.1 路径层级分组聚合在时间序列层级结构中路径层级分组聚合查询用于对某一层级下同名的序列进行聚合查询。使用 GROUP BY LEVEL INT 来指定需要聚合的层级并约定 ROOT 为第 0 层。若统计 “root.ln” 下所有序列则需指定 level 为 1。路径层次分组聚合查询支持使用所有内置聚合函数。对于 sumavgmin_value max_value extreme 五种聚合函数需保证所有聚合的时间序列数据类型相同。其他聚合函数没有此限制。练习1 不同 database 下均存在名为 status 的序列 如 “root.ln.wf01.wt01.status”, “root.ln.wf02.wt02.status”, 以及 “root.sgcc.wf03.wt01.status”, 如果需要统计不同 database 下 status 序列的数据点个数使用以下查询selectcount(status)fromroot.**groupbylevel1结果练习2 统计不同设备下 status 序列的数据点个数可以规定 level 3selectcount(status)fromroot.**groupbylevel3结果注意这时会将 database ln 和 sgcc 下名为 wt01 的设备视为同名设备聚合在一起。练习3 统计不同 database 下的不同设备中 status 序列的数据点个数selectcount(status)fromroot.**groupbylevel1,3结果练习4 查询所有序列下温度传感器 temperature 的最大值可以使用下列查询语句selectmax_value(temperature)fromroot.**groupbylevel0结果练习5 上面的查询都是针对某一个传感器特别地如果想要查询某一层级下所有传感器拥有的总数据点数则需要显式规定测点为 *selectcount(*)fromroot.ln.**groupbylevel2结果1.2 与时间区间分段聚合混合使用通过定义 LEVEL 来统计指定层级下的数据点个数。练习1统计降采样后的数据点个数selectcount(status)fromroot.ln.wf01.wt01groupby((2017-11-01T00:00:00,2017-11-07T23:00:00],1d),level1;结果练习2加上滑动 Step 的降采样后的结果也可以汇总selectcount(status)fromroot.ln.wf01.wt01groupby([2017-11-0100:00:00,2017-11-0723:00:00),3h,1d),level1;结果1.3 标签分组聚合IoTDB 支持通过 GROUP BY TAGS 语句根据时间序列中定义的标签的键值做分组聚合查询。我们先在 IoTDB 中写入如下示例数据稍后会以这些数据为例介绍标签聚合查询。这些是某工厂 factory1 在多个城市的多个车间的设备温度数据 时间范围为 [1000, 10000)。时间序列路径中的设备一级是设备唯一标识。城市信息 city 和车间信息 workshop 则被建模在该设备时间序列的标签中。其中设备 d1、d2 在 Beijing 的 w1 车间 d3、d4 在 Beijing 的 w2 车间d5、d6 在 Shanghai 的 w1 车间d7 在 Shanghai 的 w2 车间。d8 和 d9 设备目前处于调试阶段还未被分配到具体的城市和车间所以其相应的标签值为空值。createdatabaseroot.factory1;createtimeseries root.factory1.d1.temperaturewithdatatypeFLOATtags(cityBeijing,workshopw1);createtimeseries root.factory1.d2.temperaturewithdatatypeFLOATtags(cityBeijing,workshopw1);createtimeseries root.factory1.d3.temperaturewithdatatypeFLOATtags(cityBeijing,workshopw2);createtimeseries root.factory1.d4.temperaturewithdatatypeFLOATtags(cityBeijing,workshopw2);createtimeseries root.factory1.d5.temperaturewithdatatypeFLOATtags(cityShanghai,workshopw1);createtimeseries root.factory1.d6.temperaturewithdatatypeFLOATtags(cityShanghai,workshopw1);createtimeseries root.factory1.d7.temperaturewithdatatypeFLOATtags(cityShanghai,workshopw2);createtimeseries root.factory1.d8.temperaturewithdatatypeFLOAT;createtimeseries root.factory1.d9.temperaturewithdatatypeFLOAT;insertintoroot.factory1.d1(time,temperature)values(1000,104.0);insertintoroot.factory1.d1(time,temperature)values(3000,104.2);insertintoroot.factory1.d1(time,temperature)values(5000,103.3);insertintoroot.factory1.d1(time,temperature)values(7000,104.1);insertintoroot.factory1.d2(time,temperature)values(1000,104.4);insertintoroot.factory1.d2(time,temperature)values(3000,103.7);insertintoroot.factory1.d2(time,temperature)values(5000,103.3);insertintoroot.factory1.d2(time,temperature)values(7000,102.9);insertintoroot.factory1.d3(time,temperature)values(1000,103.9);insertintoroot.factory1.d3(time,temperature)values(3000,103.8);insertintoroot.factory1.d3(time,temperature)values(5000,102.7);insertintoroot.factory1.d3(time,temperature)values(7000,106.9);insertintoroot.factory1.d4(time,temperature)values(1000,103.9);insertintoroot.factory1.d4(time,temperature)values(5000,102.7);insertintoroot.factory1.d4(time,temperature)values(7000,106.9);insertintoroot.factory1.d5(time,temperature)values(1000,112.9);insertintoroot.factory1.d5(time,temperature)values(7000,113.0);insertintoroot.factory1.d6(time,temperature)values(1000,113.9);insertintoroot.factory1.d6(time,temperature)values(3000,113.3);insertintoroot.factory1.d6(time,temperature)values(5000,112.7);insertintoroot.factory1.d6(time,temperature)values(7000,112.3);insertintoroot.factory1.d7(time,temperature)values(1000,101.2);insertintoroot.factory1.d7(time,temperature)values(3000,99.3);insertintoroot.factory1.d7(time,temperature)values(5000,100.1);insertintoroot.factory1.d7(time,temperature)values(7000,99.8);insertintoroot.factory1.d8(time,temperature)values(1000,50.0);insertintoroot.factory1.d8(time,temperature)values(3000,52.1);insertintoroot.factory1.d8(time,temperature)values(5000,50.1);insertintoroot.factory1.d8(time,temperature)values(7000,50.5);insertintoroot.factory1.d9(time,temperature)values(1000,50.3);insertintoroot.factory1.d9(time,temperature)values(3000,52.1);1.4 单标签聚合查询统计该工厂每个地区的设备的温度的平均值可以使用如下查询语句SELECTAVG(temperature)FROMroot.factory1.**GROUPBYTAGS(city);该查询会将具有同一个 city 标签值的时间序列的所有满足查询条件的点做平均值计算结果从结果集中可以看到和分段聚合、按层次分组聚合相比标签聚合的查询结果的不同点是标签聚合查询的聚合结果不会再做去星号展开而是将多个时间序列的数据作为一个整体进行聚合计算标签聚合查询除了输出聚合结果列还会输出聚合标签的键值列。该列的列名为聚合指定的标签键列的值则为所有查询的时间序列中出现的该标签的值。如果某些时间序列未设置该标签则在键值列中有一行单独的 NULL 代表未设置标签的所有时间序列数据的聚合结果1.5 多标签分组聚合查询除了基本的单标签聚合查询外还可以按顺序指定多个标签进行聚合计算。例如统计每个城市的每个车间内设备的平均温度。但因为各个城市的车间名称有可能相同所以不能直接按照 workshop 做标签聚合。必须要先按照城市再按照车间处理。SELECTavg(temperature)FROMroot.factory1.**GROUPBYTAGS(city,workshop);结果从结果集中可以看到和单标签聚合相比多标签聚合的查询结果会根据指定的标签顺序输出相应标签的键值列。1.6 基于时间区间的标签聚合查询按照时间区间聚合是时序数据库中最常用的查询需求之一。IoTDB 在基于时间区间的聚合基础上支持进一步按照标签进行聚合查询。例如统计时间 [1000, 10000) 范围内每个城市每个车间中的设备每 5 秒内的平均温度。SELECTAVG(temperature)FROMroot.factory1.**GROUPBY([1000,10000),5s),TAGS(city,workshop);结果和标签聚合相比基于时间区间的标签聚合的查询会首先按照时间区间划定聚合范围在时间区间内部再根据指定的标签顺序进行相应数据的聚合计算。在输出的结果集中会包含一列时间列该时间列值的含义和时间区间聚合查询的相同。二、聚合结果过滤HAVING如果想对聚合查询的结果进行过滤可以在 GROUP BY 子句之后使用 HAVING 子句。2.1 HAVING与WHERE的本质区别对比项WHERE子句HAVING子句执行阶段分组前执行行级过滤分组后执行组级过滤引用对象原始列或常量聚合函数结果索引适用性可利用B树索引加速无法直接使用索引典型场景数据预筛选聚合结果二次筛选在工业质检场景中通过SELECT device_id, count(*) FROM production GROUP BY device_id HAVING count(*) 1000可快速定位产量异常设备。配合WHERE子句的AND quality_statusfailed实现缺陷设备的精准定位使质检效率提升50%。2.2 注意事项HAVING子句中的过滤条件必须由聚合值构成原始序列不能单独出现。下列使用方式是不正确的selectcount(s1)fromroot.**groupby([1,3),1ms)havingsum(s1)s1selectcount(s1)fromroot.**groupby([1,3),1ms)havings11对GROUP BY LEVEL结果进行过滤时SELECT和HAVING中出现的PATH只能有一级。下列使用方式是不正确的selectcount(s1)fromroot.**groupby([1,3),1ms),level1havingsum(d1.s1)1selectcount(d1.s1)fromroot.**groupby([1,3),1ms),level1havingsum(s1)12.3 正确使用案例对于以下聚合结果进行过滤selectcount(s1)fromroot.**groupby([1,11),2ms),level1havingcount(s2)2;结果对于以下聚合结果进行过滤selectcount(s1),count(s2)fromroot.**groupby([1,11),2ms)havingcount(s2)1alignbydevice;结果三、智慧城市交通流量分析实战案例3.1 需求分析某智慧城市项目需要实现每5分钟统计各路口交通流量筛选出平均车速低于30km/h且拥堵指数超过1.5的路口补全缺失的车流量数据以保证可视化效果3.2 GROUP BY 与 HAVING 协同查询实现SELECTintersection_id,avg(speed)ASavg_speed,count(*)FILTER(WHEREstatuscongestion)AScongestion_countFROMroot.city.trafficWHEREtime2023-12-01 00:00:00ANDtime2023-12-07 23:59:59GROUPBYtime(5m),intersection_idHAVINGavg_speed30ANDcongestion_count1.5;3.3 结果可视化方案通过Grafana集成IoTDB数据源实现交通流量热力图实时显示各路口拥堵情况车速趋势图展示平均车速变化趋势拥堵指数排行榜快速定位高拥堵路口实时告警看板自动推送拥堵预警信息五、总结Apache IoTDB的GROUP BY和HAVING子句构成了时序数据分析的完整工具链。通过合理配置和优化实现了查询效率提升、存储空间减少、数据完整率提高、业务洞察能力的提升本文详细讲述了GROUP BY和HAVING子句的具体使用和案例能够帮助小伙伴们在实际项目中充分发挥IoTDB的强大功能创造真正的业务价值。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

石家庄网站定制模板建站个人网站搭建模拟感想

1. 始于理解——奠定基石 含义:不是死记硬背,而是理解“为什么”。理解原理、脉络和约束条件。实践:学习新技术时,先问它的设计目的、解决了什么问题、核心思想是什么。比如学数据结构,不是背代码,而是理解…

张小明 2026/1/10 6:44:17 网站建设

嘉峪关住房和城乡建设局网站贵德县建设局网站

C盘哪些文件可以删除?c盘通常存放操作系统和许多用户文件,随着时间推移,它会被占满并使电脑变慢,在删除任何东西之前,你应该检查是什么占用了空间,备份重要文件,并了解哪些文件可以安全删除&…

张小明 2026/1/10 6:44:18 网站建设

网站建设 容易吗中卫平面设计招聘

让文字开口说话:gTTS文本转语音库完全指南 【免费下载链接】gTTS Python library and CLI tool to interface with Google Translates text-to-speech API 项目地址: https://gitcode.com/gh_mirrors/gt/gTTS 在当今数字化时代,文本转语音技术正变…

张小明 2026/1/10 6:44:19 网站建设

做网站 思源字体五金公司宣传册设计样本

训练营简介 2025年昇腾CANN训练营第二季,基于CANN开源开放全场景,推出0基础入门系列、码力全开特辑、开发者案例等专题课程,助力不同阶段开发者快速提升算子开发技能。获得Ascend C算子中级认证,即可领取精美证书,完成…

张小明 2026/1/10 6:44:21 网站建设

惠州网站建设一般多少钱凯发网站

第一章:弹窗误报频发?你不可错过的Open-AutoGLM智能修复技巧在使用 Open-AutoGLM 框架进行自动化任务编排时,频繁出现的弹窗误报问题常导致流程中断或执行偏差。这类问题多源于模型对上下文语义理解偏差或触发条件配置不当。通过合理调整提示…

张小明 2026/1/10 6:44:22 网站建设

珠海高端网站建设报价wordpress 组织架构

抖音无水印下载终极指南:轻松保存纯净高清视频 【免费下载链接】douyin_downloader 抖音短视频无水印下载 win编译版本下载:https://www.lanzous.com/i9za5od 项目地址: https://gitcode.com/gh_mirrors/dou/douyin_downloader 还在为抖音视频的水…

张小明 2026/1/10 6:44:22 网站建设