小 T 导读:上海嘉柒智能科技有限公司致力于电力行业线下线上一体化运维,为此提供整体解决方案。业务蕴含电力运维,智慧路灯,隧道一体化等。其电力运维平台数据库应用的是 TDengine,采纳 TDengine 后,存储空间大为节俭。
业务场景
嘉柒智能的电力运维平台嘉能云,专一于线下线上联结运维,具备海量设施接入能力、数据分析和计算能力,其中电力运维平台数据库应用的是 TDengine,在数据层面蕴含有:数据采集,数据传输,数据存储,数据分析。
数据采集:设施多种多样,生产研发采集设施及通信治理机的厂家也十分多,这种场景特地适宜 TDengine 的“一个设施一张表”模式。厂家的设施都是依据规约来生产的,电力规约通常有电力协定有许多比方(IEC101、103、104 国内电力调度协定)、61850(国内通用),还有一些其余的比方 Modbus-RTU、CDT 等。而这些协定蕴含几种数据:遥测、遥信、遥脉、遥控、遥调等,这些数据都由一个或多个点表(点表蕴含测点类型及测点数量多有不同)上报,采集频率个别是五分钟(依据被监控设施的重要性及其须要的反应时间来确定),随着设施量的减少,数据量还是相当宏大的。
遥信:要求采纳无源接点形式,即某一路遥信量的输出应是一对继电器的触点,或者是闭合,或者是断开。通过遥信端子板将继电器触点的闭合或断开转换成为低电平或高电平信号送入 RTU 的 YX 模块。遥信性能通常用于测量下列信号, 开关的地位信号、变压器外部故障综合信号、保护装置的动作信号、通信设施运行状况信号、调压变压器抽头地位信号。主动调节安装的运行状态信号和其它可提供继电器形式输入的信号;事变总信号及安装主电源停电信号等。在 TDengine 中,此种类型的数据比拟适宜应用 bool 类型。
遥测:遥测往往又分为重要遥测、主要遥测、个别遥测和总加遥测等。遥测性能罕用于变压器的有功和无功采集;线路的有功功率采集;母线电压和线路电流采集;温度、压力、流量(流速) 等采集;周波频率采集和其它模拟信号采集。在 TDengine 中,此种类型的数据比拟适宜应用 float 类型。
遥控:采纳无源接点形式, 要求其正确动作率不小于 99. 99 %。所谓遥控的正确动作率是指其不误动的概率,个别拒动不认为是不正确,遥控性能罕用于断路器的合、分和电容器以及其它能够采纳继电器管制的场合。在 TDengine 中,此种类型的数据比拟适宜应用 bool 类型。
遥调:采纳无源接点形式, 要求其正确率大于 99. 99 %。遥调罕用于有载调压变压器抽头的升、降调节和其它可采纳一组继电器管制具备分级升降性能的场合。在 TDengine 中,此种类型的数据比拟适宜应用 float 类型。
遥脉:遥脉往往是累积量,通常用于尖峰平谷期间的电度量采集(分为有功电度、无功电),电压暂升、暂降等。在 TDengine 中,此种类型的数据比拟适宜应用 double 类型。
零碎设计
数据传输:数据传输方式,多采纳 RJ45 口传输,或者 sim 卡无线传输,这取决于监控站容许的网络环境,如果是串口,则加一个转换设施将串口转为网口数据
数据分析:嘉能云电力运维平台,针对不同站具体的状况,提供相应的数据分析服务。常见的数据分析有:模拟量越限、异样开关、电气火灾、用电剖析等等,紧急情况将第一工夫告诉到电力运维负责人。TDengine 的降频和流式计算性能,为此种场景,提供了极大的不便。
数据存储:接入站点泛滥,每个站点有多个设施,每个设施有多个测点,采集工夫距离小。在这样的状况下,数据量曾经十分宏大了,必须要有一个可靠性高,能疾速插入、查问大量数据的数据库。思考到数据库的方便使用,数据库性能,以及语言环境;咱们开始尝试应用 TDengine,并且用 python 作为执行疾速插入 / 查问的 client。
本平台反对公网接入或平台接入两种接入形式: 公网接入数据解析,数据传输皆在云端实现,平台将云端数据通过音讯队列订阅下来,且在订阅服务中,植入 TDengine 操作代码,将接管到的设施三遥数据间接存入 TDengine,防止数据流转工夫过长。平台间接接入设施,嘉能云平台具备协定解析能力,能间接将设施上传的字节流数据解析进去,再存入 TDengine。
数据存储构造:在 TDengine 数据库中,存储形式咱们采纳站名为数据库名,表名为设施名,一个设施一张表,以解冻工夫为主键,以点表测点标识符为字段名的模式。
因为接入设施各不相同,在接入设施之前, 咱们为每个设施创立物模型,雷同物模型的设施归为一类,雷同站归为一组,再通过数据库同步到 TDengine 生成相应的设施表。应用 TDengine 的超级表,能够实现对同一类设施的对立治理。
Show databases;
select * from da00012829 limit 1\G;
数据量写入:在决定应用 TDengine 之前,我依据:
1)十个站一千个设施;
2)五分钟采集上报一次;
3)一个设施两百个测点;
4)云端接入的状况,
做了一下简略测试:一千个设施一千张表,每张表 200 个 field,也就是 20 万个测点值要分一千次,存入 TDengine,经继续的插入测试,数据并无失落,且运行稳固。
上面是 Log 记录:
数据查问和展现
数据查问:在数据查问方面,用于数据分析的数据查问,咱们感觉数据分析齐全在代码层解决是十分慢的,尤其是在数据密度大,剖析数据时段长的时候,这会很影响用户体验,TDengine 除了能够疾速插入数据,另外一个重要的点就是可在数据库层面将数据预处理(过滤、填充、时间段筛选、数据查问密度等),且速度快。
查问举例:察看一个月内的电压状况,查问出相干设施的电流电压,以及产生的告警;综合剖析。依据采集距离计算:工夫范畴 30 天 43200 分钟,密度为 5min 一个点,则是 8640 个值,三相电压则一次返回三组数据。
在接口中嵌入 TDengine 时序浓缩数据查问代码示例,做到即时查问即时返回:
局部设施测点同比剖析示例:
应用感触
TDengine 的确是一款不错的时序数据库,开源、高效的存储和查问,存储空间大为节俭。最开始只是关注插入和查问性能,数据的压缩率的确给了不少的惊喜,大概 11%,节俭了不少的存储空间。
connection 的人性化、轻量级的软件、每种语言的样例程序,在安装包中都 /examples 中都能够找到。
将来优化倡议
TDengine 数据库的链接对象解决机制还有待晋升,心愿 2.0 版本之后可能扭转。
在数据库查问方面:心愿查问可能更加灵便,且能更多的分担代码计算的压力,这也将使 TDengine 在我的项目中的位置越重。
作者简介 : 张灏,上海嘉柒智能科技有限公司研发工程师,次要从事电力运维平台开发与利用及底层数据接入,近年专一于数据利用与能耗剖析。