APP下载

基于TDengine的EAST工程数据监控系统

2022-07-26丁煦航奚维斌陈子鸣

自动化与仪表 2022年7期
关键词:子系统可视化监控

丁煦航,奚维斌,谢 杰,陈子鸣

(1.中国科学院 合肥物质科学研究院,合肥 230031;2.中国科学技术大学研究生院 科学岛分院,合肥 230026)

EAST 超导托卡马克装置是我国设计的国际上第一个全超导托卡马克装置[1],安全运行至今十几年取得了显著的成绩,2021年实现了1.2 亿摄氏度百秒等离子体运行和1056 s 长脉冲高参数等离子体运行,均打破了世界纪录。随着实验迈向更高阶段,对EAST 装置安全运行的要求越来越高,目前EAST 安全运行通过关键运行参数阈值保护、计算机连锁保护和各子系统值班人员的监控来保障[2],其中工程数据在装置运行安全分析中起着至关重要的作用。

工程数据主要是由各个子系统采集的工程信号组成,包括温度、压强、真空度等2500 多路,对聚变实验分析有重要的分析价值。目前主要存储实时值于MySQL 工程数据库中并部分重构于MDSplus诊断数据库中[3],此外还有部分数据存储在其他子系统数据库中。异构多数据源导致数据孤岛的形成,现有系统缺乏手段对历史数据、异源数据等进行多维度计算分析且检索效率不高,无法进一步保护EAST 装置运行安全。除了现有的工程数据外,应力应变、绝缘性能等装置采集数据和基于原始数据实时计算的结果也需要进行统一管理,因此建立一个EAST 工程数据监控系统对装置运行实验分析至关重要。

本文提出基于TDengine+Flink 流处理+Grafana可视化工具,将工程信号的数据特点和TDengine 存储结构相结合,利用Flink 流式管道将海量散落在各个子系统中的工程数据实时计算清洗到数据库中,建立一个中心化的工程数据仓库,打破数据孤岛,规范数据格式和提升数据质量,通过Grafana 的可视化模块实时监控[4],对超出阈值信号及时报警,挖掘信号之间内在关联以对装置运行状况有更深入地了解。

1 系统设计

1.1 需求分析

EAST 装置有诊断系统、电源系统、加热系统等大量子系统,部分数据孤立且存储格式各异形成一个个信息孤岛,而工程数据作为装置运行安全分析的重要数据来源,更是面向整机全链路分析的重要依据,需要重新建立一个统一格式的中心化数据仓库并通过可视化模块来满足实际实验分析需要。EAST 实验流程一般包括降温冷却、稳态运行、回温、系统维护4 个阶段,以早期5 轮实验运行时间为例,总运行天数为345 天[5],整个阶段都需要对几千路工程信号进行采集监控以保证满足放电实验要求和实时了解装置运行现状。且工程数据一般为秒级采集频率,单日采集可达千万条数据,还需要对历史数据进行存储和原始数据二次计算挖掘,帮助实验人员对实验进行进一步调整。因此整个实验运行周期的数据规模十分庞大,需要对存储结构进行优化。

综上所述,系统需要提供面向工程数据的数据服务,通过Flink 流式ETL 实时清洗计算数据,建立工程数据仓库以满足聚变实验对于数据的分析需求,根据实际场景提供毫秒级的检索能力和多样的可视化监控报警模块。

1.2 数据库选型

EAST 工程数据具有明显的物联网数据特点,大多都是时序型且具有明显的结构化特点,实际场景中很少有更新和删除操作,查询分析主要基于时间序列和信号名称,且数据流量较为平稳不会出现某段时间的剧增情况,实际实验分析中实验人员更关注的是一段时间的数据趋势和当前实时数值而非过去某一特定时间点的数值。

TDengine 是一个专为物联网、工业互联网设计和优化的全栈时序数据处理引擎,采用了两大技术创新极大的优化存取效率[6]。第一大创新是单采集点对应单表,保证数据存储的连续性,大幅减少随机读取操作。同时每张表对应一个信号避免了信号名等固定的静态信息重复存储。且对应的工程信号数值范围一般会固定在一个大致范围中,通过列式存储结构和压缩算法既提高了数据压缩率,又优化了实际查询更关注某一列数据或少数几列场景下行式存储逐行读取导致读取效率低下的问题,大幅度提高了检索效率。第二大创新利用超级表对多个数据采集点进行高效聚合,将静态标签单独k-v 存储,多维聚合分析时先过滤标签大幅减少聚合的数据量,根据静态标签进行高效多维检索。且可以继承超级表结构快速创建普通表,简化了新表创建复杂度并建立了血缘联系。

综上所述,根据EAST 工程信号的数据特点和应用场景,TDengine 无论是列存储、单信号单表的特殊存储设计还是超级表和标签对于聚合检索的优化,都十分适合作为EAST 工程数据监控系统的底层数据库。

1.3 系统架构

整个系统主要包括数据源、传输存储层、应用层、显示层4 层,整体架构如图1所示。

图1 系统整体架构Fig.1 Overall system architecture

数据源主要包括散落在各个子系统中的工程信号数据,无论是原MySQL 工程数据库还是其他子系统的应力应变、绝缘性能等工程信号,对整机安全分析、历史数据分析、异源关联分析等都非常重要,需要通过传输存储层进行清洗整合。

传输存储层负责将各数据源数据通过Flink 流式ETL 实时写入到数据库中,按照规定的数据结构清洗,并通过各种转换算子和自定义函数对数据进行计算转化。基于TDengine 单采集点单表的设计思路,根据设计好的超级表结构按时间顺序存储各个信号点的数值到对应的普通表中。

应用层主要基于建立的工程数据库向用户提供数据服务,根据实际实验场景需求,提供Busline进出口监控、纵场电流温度对比等监控模块。此外对关键工程信号设置阈值,通过报警规则和SMTP协议进行邮件报警并将报警信息写入到数据库中,实验人员还可以进行即席查询和自定义可视化模块。

显示层基于B/S 架构和Grafana 可视化工具给实验人员提供工程数据的监控检索界面,在EAST局域网环境中通过浏览器和权限控制访问系统,提供各个模块灵活直观的显示界面,并支持手机、电脑等多端设备访问。

1.4 数据仓库设计

首先设计超级表的数据结构,如图2所示,新数据结构下数据列由采集时间和信号数值组成,将信号ID 等工程信号基本信息设置为静态标签,降低了存储空间占用。根据超级表结构采用多列模型存储,实验人员可以根据静态信息进行多维度聚合查询,比如对某个子系统特定时间段的温度数据变化进行排序等分析,更好地辅助聚变实验进行安全性分析以便及时发现隐患信息。

图2 存储模型变化Fig.2 Storage model changes

接下来通过Flink 的DataStream Api 接口编写数据源(Source)、转换操作(Transformation)、结果接收(Sink)算子,根据各个子系统的数据存储情况编写计算传输作业,实时读取各子系统中的数据并使用TDengine 提供的JDBC 接口根据超级表数据结构以信号名为表名自动创建普通表并写入,如图3所示。

图3 数据清洗设计Fig.3 Data cleaning design

2 系统实现

2.1 系统工作流程

如图4所示,系统通过上传的Flink 作业来将不同子系统中的工程数据不断传输到设计好的数据库中并计算流量、热负荷等关键参数。实验人员通过工程数据监控系统提供的可视化模块实时了解装置运行状况,比如监控关键进出口温度并通过波形图和阈值线分析有安全隐患的工程信号。监控报警模块对海量工程信号设定阈值并实时自动监控,邮件告警并记录到数据库中,弥补了实验人员人力监控的不足。

图4 系统工作流程Fig.4 System work flow chart

2.2 工程数据库搭建

工程数据基本以结构化数据为主,TDengine 采用的是关系存储模型[7],由于其独有的单采集点对应单表设计和超级表概念,首先根据工程数据模型建立超级表engine_data 来代表工程数据采集点的集合、时间和数据值作为数据列,信号名称等静态信息作为标签,结构如表1所示。

表1 超级表engine_data 存储模型字段Tab.1 Storage model field of super table engine_data

其次EAST 装置相同表结构的工程数据多达几千路,如果每次手动创建新表十分繁琐,系统根据超级表结构自动建表,提高构建效率。通过针对不同子系统数据编写不同流处理作业,根据不同的存储结构如MySQL,MongoDB 等自定义数据源Source,将读取的数据流经过Transformation 转换输出到数据接收器Sink 中,利用JDBC 接口将数据从源子系统清洗计算到数据库中,根据超级表结构自动创建新表,将信号名作为子表名,具体语法为

insert into <子表名>using <超级表名>tags(<tag1

value>,…)values(value1,…)(value2,…)…;

2.3 数据库性能

本文对工程数据库性能进行分析,通过对比TDengine,MySQL 分区有索引和MySQL 不分区无索引三者存取性能进行对比,因查询场景主要以1~2个月时间为主,所以数据测试范围取最近2 个月进行对比分析。TDengine 版本为2.0,测试场景为官方提供的docker 环境,MySQL 版本为8.0.22,在Windows Server2012 环境下进行测试。针对常用的查询场景MySQL 基于工程信号名称和信号采集时间建立索引,并以周为跨度时间分区,性能对比如表2所示。

表2 三种环境下性能对比Tab.2 Performance comparison in three environments

由性能对比可知,TDengine 通过列式存储特性和静态信息以键值对形式存储的方式,将工程数据的存储占用压缩到MySQL 的近二十分之一,并通过连续存放相同采集点数据、列存储等特性优化了查询性能,与建立索引和设置分区后的MySQL 性能相近,甚至在时间跨度更大的情况下性能更好。

2.4 监控可视化实现

系统基于搭建的数据库使用Grafana 实现监控可视化,通过折线图、饼状图等可视化模块[8]完成数据库中实验数据和计算数据的显示,以实际实验场景为背景搭建不同的监控界面,比如关键信号进出口温度实时监控如图5所示,实时刷新并通过颜色显示根据阈值判定的危险程度,直观显示信号情况。并配置SMTP 协议设置发件服务器,超出阈值后通过邮件传输协议和告警邮件规则发送信息给监控人员,通过Webhook 配置的URL 发送报警信息,后端接收到请求后记录到报警日志数据表中并显示在图表中。

图5 关键进出口温度监控模块Fig.5 Inlet & outlet temperature monitoring module

EAST 纵场超导磁体是约束等离子体使其稳态运行的重要装置,其中纵场电流对于装置安全分析十分重要[9]。系统通过对比纵场电流和其他工程信号如TF_BLineO 温度波形图,如图6所示,帮助实验人员进行异源数据分析,探索工程信号关联性。

图6 纵场电流和其他工程信号对比监控模块Fig.6 TF current and other engineering signal comparison monitoring module

除了以上两个模块,系统基于建立的工程数据库还开发了大量实验分析模块,如信号波形监控、历史降温对比等,既满足了日常实验对于工程信号的监控需求又帮助实验人员对数据进行多维度计算分析,从中摸索异源工程数据潜在的关联性,进而帮助实验人员挖掘聚变实验数据价值。

3 结语

系统基于EAST 工程信号的数据特点和实际实验监控分析场景,结合TDengine 特殊的存储结构和Flink 流处理优势,整合多源异构的工程信号数据,建立EAST 工程信号数据仓库,解决了目前工程数据之间相互孤立、格式不统一的现象,高效支撑实验对历史数据、异源数据等多维度分析需求。经过验证通过列存储、单信号单表、超级表等数据存储优化措施,既降低了存储空间成本又提高了检索效率。同时使用Grafana 提供了一套EAST 工程信号监控系统,满足了聚变实验中的数据监控可视化和告警推送需求,并通过丰富的可视化模块挖掘工程信号之间潜在关联和数据价值。目前系统已成功部署并应用在EAST 最近一轮工程实验中,证明了系统的可行性。

猜你喜欢

子系统可视化监控
不对中转子系统耦合动力学特性研究
基于CiteSpace的足三里穴研究可视化分析
自然资源可视化决策系统
思维可视化
The Great Barrier Reef shows coral comeback
自然资源可视化决策系统
基于无人机的监控系统设计
基于AC-DC-AC的异步电机系统积分反步和滑模控制
网络空间供应链中入侵检测及防御子系统的投资机制研究
网络空间供应链中入侵检测及防御子系统的投资机制研究