乐趣区

关于数据库:TDengine在上海电气储能智慧运维系统中的应用

作者:上海电气 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 等你带回家!

退出移动版