作者:上海电气SmartOPS团队

小T导读:上海电气集团股份有限公司是世界级的综合性高端配备制作企业,聚焦智慧能源、智能制作、智能基础设施三大业务畛域,为客户提供工业级的绿色智能零碎解决方案。业务遍布寰球,次要包含新能源、综合能源、环保、医疗器械及工业自动化等。

公司围绕“一芯3S”外围产品链,构建储能外围竞争力。作为其中要害组成部分的“SmartOPS储能智慧运维零碎”,基于物联网、大数据、机器学习等技术,买通储能零碎从信息采集到云端接入,再到数据存储、数据分析的残缺技术链条,构建智慧储能管控体系平台,实现全面监测、预测性保护、热治理剖析等高级利用,帮忙客户实现储能设施的最优配置和高效利用。

一、利用背景

SmartOPS反对云端部署和本地部署两种形式。

云端部署基于上海电气团体以后对立的架构,利用云端时序数据库,可扩大、可灵便配置的各类资源,可轻松满足应用要求,高效且晦涩。

然而在本地部署中,须要重点思考本地硬件资源的限度,如站端系统的内存、CPU以及读写性能等。目前站端系统的配置下图所示。

所以咱们须要思考适宜在站端系统中部署的时序数据库,也就有了接下来的技术选型。

二、技术选型

整体选型思考会波及很多维度,具体包含读写性能、压缩率、行业认可度、产品生机、服务反对、安全性、兼容性、可维护性、可扩展性、功能性、可靠性、易用性等属性。

咱们团队着重评估了以下几款数据库:

  • OpenTSDB:以HBase为底层存储,向上封装了本人的逻辑层和对外接口层。这种架构能够充分利用HBase的个性,实现数据的高可用和较好的写入性能。但相比原生时序数据库,OpenTSDB数据栈较长,在读写性能和数据压缩方面都还有进一步优化的空间。
  • InfluxDB:目前风行度最高的时序数据库,数据按列存储,可能高效地对时序数据进行解决、存储、查问,并提供了功能丰富的Web平台,能够对数据进行可视化展现和交互式剖析。
  • Apache IoTDB:专为物联网打造的分布式时序数据库,数据按列存储,具备优良的写入性能和丰盛的数据分析性能,可能无效地解决乱序数据。
  • TDengine:专为物联网场景设计和优化的分布式时序数据库,数据按列存储,具备极致的写入性能和丰盛的查问性能,同时提供缓存、流解决、音讯队列等大数据平台罕用性能。其官网提到的不到10MB的安装包以及10倍的性能晋升,的确十分吸引人。
  • ClickHouse:性能强劲的OLAP数据库,数据按列存储,数据压缩比极高,具备很高的写入吞吐和极致的查问性能,同时提供了丰盛的数据处理函数,便于对数据进行各种剖析。

基于站端本地化部署须要轻量级资源占用登程,咱们首先排除了OpenTSDB和Apache IoTDB,OpenTSDB基于HBase,比拟重,而Apache IoTDB在资源占用方面对边缘轻量级设施也不算敌对;ClickHouse劣势是单表快,其余方面偏弱,包含join、治理运维都比较复杂,也放弃了。

研发团队最终圈定在InfluxDB和TDengine中测试抉择。

三、初步比照测试

技术团队理论比照测试了InfluxDB和TDengine。

先来看InfluxDB的测试状况。

InfluxDB的安装包大小为60.2M,运行之后资源占用如下图所示:

开启测试场站数据接入,以后时刻,每分钟写入字段数小于3000,此时资源耗费状况如下图所示,以后InfluxDB耗费CPU有所回升,内存资源变动不大。

通过如下命令测试查问性能:

资源耗费状况如下图所示:

同时,以后查问会被卡住,所以没有后果。可见,在以后资源配置条件下,InfluxDB私有化部署资源耗费较高,若同时启用本地应用服务(SmartOPS),则无奈提供所需性能。

再来看TDengine的测试状况。

咱们应用的是TDengine 2.1.6.0版本。查看安装包TDengine-server-2.1.6.0-beta-Linux-x64.rpm的大小,发现只有9.42MB。后端开发人员将其部署到了测试节点上。

刚部署时的资源耗费如下:

模仿某场站数据接入时,资源耗费如下:

而后测试查问性能,在同样条件下,TDengine呈现CPU上的短时小幅回升,同时毫秒级获取到了查问返回后果。

从上述的初步测试中能够发现,在本地化部署服务器资源受限的状况下,相比于InfluxDB,TDengine在站端系统的利用上,性能具备显著的劣势。TDengine能较好地应答场站端低配服务器的资源限度问题。对于大批量利用的储能场景,提供了高性价比的解决方案。

TDengine针对物联网利用的场景特点,比方数据极少有更新或删除操作,无需传统数据库的事务处理,绝对互联网利用写多读少等,又通过“一个数据采集点一张表”和“超级表”的概念,简化了数据存储构造,这些优化的确非常适合咱们的计划。另外通过一些预计算性能,进步了聚合查问效率,齐全满足咱们站端资源无限状况下储能场景的需要。

于是咱们就尝试在零碎中落地了TDengine。

四、TDengine数据模型设计

储能场站设施返回的数据格式根本固定,一个工夫戳一个值。所以咱们为一个场站构建了一张超级表。子表是依据点位的信息,一个点位一张子表,用于辨别不同的设施采集的信息。联合业务需要,标签定为5个:点的标识,场站id,子站id,单元id和设施id。

超级表建表语句为:

create table ops (ts TIMESTAMP,value FLOAT) TAGS (name NCHAR(10),sid NCHAR(20),sub NCHAR(10),unit NCHAR(10),dev NCHAR(20))

子表建表语句为:

CREATE TABLE escngxsh02_g01_e03h01_c1 USING ops TAGS ("C1","ESCNGXSH02","G01","E03","E03H01")

在应用InfluxDB一周当前,应用SQL语句

select * from ops WHERE ts>1629450000000 and ts<1629463600000 limit 2; 

来执行查问,内存使用率达到了80%,并且过了十分钟也没进去后果,所以曾经齐全不适宜业务应用。

而在应用了TDengine近1个月后,应用雷同的SQL语句,查问只须要0.2秒。体现十分优异。

五、TDengine的应用状况

目前技术团队已采纳TDengine作为SCU(Station Control Unit)架构的外围时序数据库,实现储能零碎综合信息感知、就地运行管制与协调爱护性能;同时反对储能电站及设施的近程运维,实现高级数据分析与运行优化,全方面守护储能电站的平安。

TDengine高性能的写入和聚合查问性能,可能毫秒级响应电站运行信息监督。

在压缩方面,TDengine也体现得很优良。在采集点数量雷同的状况下,在应用TDengine之前,咱们应用的是InfluxDB,1天的数据量大略是200多MB,而应用了TDengine后,1天的数据竟然不到70MB,是InfluxDB的1/3。

咱们还将在后续我的项目中,持续拓展其分布式集群利用,构建储能电站运行状况的数字化档案,联合开发的剖析算法、预测算法、数据挖掘技术,实现电站稳定性剖析、效率和损耗剖析、故障预测、寿命预测、性能短板定位以及热治理剖析等高级剖析和诊断性能。


⬇️点击下方图片查看流动详情,iPhone 13 Pro 等你带回家!