文章最后更新时间:2023-11-11,由天天资讯负责审核发布,若内容或图片失效,请联系客服!
使用场景介绍
当前业务场景
我们首先用在新能源电力物联网平台上,主要用于光伏设备实时遥测数据的存储、查询和分析。
新能源物联网生产运营平台通过物联网和大数据技术整合现有电站数据,实现园区设备统一运行监控和数据集中管理。 为不同人员提供全面、便捷、差异化的数据和服务。
为运维人员提供设备状态信息、报警信息、远程故障诊断信息、实时数据等数据应用服务; 为管理人员和操作人员提供各种检测数据汇总、变化趋势等应用服务。
平台系统总体架构如下:
系统整体架构遵循分层实现的设计理念,在底层设计中实现了各软件系统的功能分离,保证各部分的高效运行。
数据规模、查询压力等要求
规划设计的数据存储规模约为16T。 目前,日数据增量超过1亿。 所有测量点连接后,预计每日增量约为40亿; 该系统需要支持至少5万个设备,总共400万个测量点。 实时数据访问、处理和存储(信号量和模拟量)。
应用系统常规查询在50QPS左右,高并发在50QPS左右。 历史数据查询分析最大跨度为一年,支持多测点、多模式分析。
时间序列数据分析界面如下:
工况实时显示界面:
当前总数据量及每日增量:
目前已创建的超级表和子表数量:
数据模型简介
目前,已经根据不同的测点类型建立了不同的超级表。 根据不同的测点ID和测点编号创建不同的子表作为标签。 这样我们就可以直接对测量点进行单表分析,处理性能高,速度快。 还可以分析多个测量点并直接操作超级表。 业务实现简单,同时兼顾查询性能。
查询要求
简单查询
单个测量点的历史数据查询分析和时间间隔聚合分析。 主要针对单个测量点异常数据的排查以及报警数据的检查和确认。 类似设备的数据被分组到一个超级表中,但每个设备都会根据超级表的结构创建自己的子表。 查询单个测点数据实际上只查询一张子表。 遍历的数据量大大减少,查询分析基本是毫秒级响应。 简单查询SQL图例:
聚合查询
不同聚合类型在多个测点同一时间维度的时间迁移对比分析。 注重对比,方便用户更有效地确认不同测量点的异常和差异。
大批量测点分组聚合查询
数百个测点分组、时间段聚合查询; 在一定时间内,大量测点的查询仍能快速响应。
查询压力
峰值并发20qps,平均并发20qps。 实际场景中,并发查询压力较小,尚未达到查询瓶颈。
采用的好处
系统功能
读写性能较原数据库提升10倍左右。 无需担心数据库在数据访问层的写入性能瓶颈。 数据分析查询应用层相比原系统也有很大提升,特别是在大时间跨度的聚合分析方面。 几乎是瞬时响应。
通过乱序插入功能,解决了边缘侧因网络问题导致数据传输不及时而导致的乱序写入问题,保证了数据的完整性。
集群功能具有很大的比较优势。 不具备集群功能,但支持流式复制方式的主备数据库。 集群搭建简单,没有主从节点之分。 对应用修改和支持更加友好。 集群版本读写性能大幅提升。
数据存储增加集群多副本功能,通过数据冗余提高系统的安全性和可靠性,降低系统的运维成本。
软硬件资源
节省了大量的系统计算资源和存储资源,存储成本降低约4倍。
与未使用之前的时序库相比,开启压缩后,70亿条数据占用磁盘165G,1分钟内无法查询1个月的历史数据; 使用后,磁盘占用空间约40G,1个月的历史记录以毫秒为单位返回。 数据的聚合查询。
相关查询如下:
应用问题及解决方案
原来的定时库批量导入大量数据在1.6版本中非常麻烦。 一批只能插入大约 200 个项目。 后来升级到2.0以上版本后,可以一次插入1M数据,大大提高了不同数据库不同表结构的效率。 批量导入性能。
未来使用的注意事项
经过一段时间的线上运行和出色的表现,我们决定逐步将我们所有的物联网项目更新到.
功能期望与建议
解析功能增强,希望在时序库中添加实用且常用的解析函数;
增强连续聚合查询功能。 目前,连续聚合功能还不太实用;
产品生态,与Spark、Flink等开源分析工具集成。