关于数据库:TDengine在钢铁冶金行业能源管理系统中的应用

3次阅读

共计 3105 个字符,预计需要花费 8 分钟才能阅读完成。

作者介绍:徐子攀,上海旬思科技有限公司研发总监,长期从事底层工业通信协定开发,独立实现多种支流 PLC、流量计等工业设施通信采集驱动开发,对工业现场数据采集相干技术有深入研究。近年参加工业互联网平台构建工作,负责平台架构设计以及次要业务代码开发工作。TDengine 在钢铁冶金行业能源管理系统中的利用

上海旬思科技有限公司专一于工业大数据平台实时数据采集、设施近程监测及预测性保护、机器协同互联、近程实时控制等多个工业畛域。背靠上海临港新片区针对工业互联网、智能制作畛域的产业搀扶,打造国内工业互联网行业先进产品和技术的先锋企业。

旬思工业互联平台(TServer)是面向工业企业建设大数据平台的产品解决方案,提供数据采集、解析、展现、报警、统计、查问、剖析以及近程运维通道治理等性能,内置实时数据库引擎,交融传统 SCADA 软件和工业互联网架构技术,实用于工业互联网行业的赋能翻新。

我的项目背景和技术难点

湖北某特钢公司的电力能源介质的计量,是通过 TBox 工控网关采集多功能电表来实现的。依照《对于湖北电网 2020-2022 年输配电价和销售电价无关事项的告诉》,须要欠缺并实现“峰谷平尖”电能量费率计量和能源报表。TBox 工控网关基于后期我的项目施行和理论利用需要提供了残缺的技术计划,蕴含从电表采集电能数据并写入 TDengine 时序数据库,再通过 ETL 工具解决后转存到 Oracle 数据库,从而满足企业一期电能量数据报表对实时数据采集和存储的要求。

本我的项目次要接入的能源介质有:电力、焦炉煤气、高炉煤气、转炉煤气、压缩空气、天然气、氧气、氮气、氩气、蒸汽、净水、软水、除盐水和生存水等,我的项目一期首先要求采集电能量数据,其中须要接入的电表多达 874 块,电力能源数据已超 20000 点,每天产生的数据量在 2800 万条以上;我的项目二期如果再接入非电数据,还会有几千个流量设施的接入,整个零碎数据点也将远超 50000 点,每天产生的数据量预估在 1 亿条左右。

在设施通信数据采集方面,咱们始终处于行业领先水平;但对于大数据量的存储,抉择什么样的数据库,是否也能满足二期大数据量的接入能力,给咱们带来了极大的挑战。

本我的项目特点:

  • 开发周期短:用户要求零碎一个月上线;
  • 稳定性要求高:工业利用的特点,零碎无人化运维;
  • 单机性能要求:在用户提供的一台 16 核 32G 内存服务器上,须要实现所有工作,蕴含数据上传、解决和转存等服务;
  • 零碎兼容性:同时要思考满足二期 50000+ 点的数据接入能力。

抉择 TDengine 的理由

为了解决大数据量带来的数据存储难点,以及满足零碎性能要求,咱们在数据库选型方面,做了充沛的调研:

  • MySQL:传统关系型数据库

开源收费,装置应用简略,保护成本低,很少宕机,反对多操作系统。

  • InfluxDB:时序数据库

能够高性能地查问与存储时序型数据,被广泛应用于存储系统的监控数据、IoT 行业的实时数据等场景;集群性能没有开源。

  • TDengine:国产时序数据库

国产开源,针对工业互联网场景做了大量优化,同时还反对滑动窗口,流式计算。开源了集群版本。

剖析我的项目需要不难发现,时序数据库更适宜此类工业大数据利用。而在等同数据集和硬件环境下,涛思官网的测试结果显示,TDengine 的写入速度远高于 InfluxDB。同时 TDengine 反对多种数据接口,蕴含 C /C++,Java,Python,Go 和 RESTful 等。因为咱们数据解析局部应用 Go 语言编写,所以最终采纳了 Go Connector 接口方式进行时序库读写。

利用 TDengine 的场景、业务架构

本我的项目场景的能源管理类数据除时序特色外,还具备其余多种显著特色:

  • 数据结构简略,写多读少;
  • 数据极少须要更新或删除;
  • 流量安稳,依据设施数量和采集频次,可预测;
  • 数据保留期限为 10 年;
  • 数据的查问剖析是基于时间段和空间区域;
  • 除存储、查问操作外,还须要各种统计和实时计算操作;
  • 数据量微小,一天采集的数据可能超过 1 亿条。

根据上述数据特色,联合 TDengine 给的倡议,以及本我的项目数据特点和应用场景,咱们做了以下优化设计:

  • 蕴含模拟量,数字量,报警,系统日志等类型数据,同类型应用一个超级表汇合;
  • 单个数据点对应单个表存储;
  • 批量数据写入,最大化 SQL 字符串拼接,进步数据写入效率;
  • Go 多协程并发写入,进一步提高写入效率。

库结构设计:保留 update 性能,不便前期对坏数据做二次解决。

一般表一览:基于超级表自动生产一般点表。

电力能源数据一览:数据上传平台后解析并显示。

电力能源数据滑动查问:依据查问工夫长度自适应抉择滑动窗口大小。

下图是本我的项目残缺业务架构图,TBox 工控网关南向采集现场电力能源数据,北向实时上传数据到 TServer 工业互联平台;TServer 接管到数据后,通过解析辨认,分类组包高并发写入 TDengine 时序库。

后期调研,TDengine 劣势再体现

在这里咱们首先提两个工业实时数据库。一个是 Wonderware 的高性能实时关系型数据库 InSQL,它集成了微软公司的 MS SQL Server 并对其进行了扩大,具备高效数据压缩和数据存储等实时数据库性能,它比惯例关系型数据库的数据采集速度、存储量高数百倍。

InSQL 扩大了 SQL 语句,使其具备了工夫个性。InSQL 的运行性能与所用的硬件零碎无关,单机能够在 1 秒内实现 6 万个点的取数或存储 (峰值)。这个速度与数据存贮形式无关,采纳的周期性存储(以固定的多少毫秒存储一次) 或增量存储 (数据的变动超过设定百分比时存一次)。InSQL 能够每秒存储 3 万点(均值) 或每 100 毫秒存 2000 点数据。要进步数据采集速度,次要阻碍是大多数数据源 (PLC 或 DCS) 提供数据的速度赶不上 InSQL 取数的速度。InSQL 的最小分辨率为 3.3 毫秒。

另一个是 OSI 的 PI 数据库,每个 PI 的高端产品服务器中能够解决每秒钟 15 万点的数据。在客户端软件 ProcessBook 上,能够在秒级工夫内从 2 年或 3 年历史中取到 1000 点数据。在 OSI 的 WEB 网站上有一个电子表格能够帮忙你具体计算所需的配置。

TDengine 是涛思数据面对高速增长的物联网大数据市场和技术挑战推出的创新性的大数据处理产品,在时序空间大数据处理上,有着本人独到的劣势。TDengine 单核每秒能解决至多 2 万次申请,插入数百万个数据点,读出一千万以上数据点,比现有通用数据库快十倍以上,也远远超出了 InSQL、PI 这两个工业实时数据库的读写能力。

TDengine 问题解决

应用 TDengine 过程中,简直没有遇到什么大问题。一些小 bug 也能够通过版本升级解决。这里要对涛思数据的物联网大数据微信交换群,以及非常热心的涛思工程师陈玉同学,在咱们一期零碎上线后遇到的配置谬误导致服务启动失败的踊跃疾速响应表示感谢。

将来布局

本我的项目一期电力能源数据的采集早已上线运行 3 个多月,用户也十分认可这套零碎。咱们在给用户培训过程中,也强力举荐了国产的 TDengine 数据库,置信将来这些用户也将成为 TDengine 的忠诚粉丝。

咱们正在筹备我的项目二期非电能数据的采集,这次变量会成倍增长,同时也会面临新的挑战,比方分布式存储,热冗余备份等作为大数据量接入和数据安全备份的必要保障。

通过一期成功经验的积攒,咱们置信二期新零碎也会很顺利的交付运行。后续在石油管道,冶金智能制作等更多场景中,也在尝试应用 TDengine 时序库作为咱们的存储计划。对于 TDengine,咱们也有一些期待降级改良的中央:

  • 推出 Windows 平台的 Server 端;
  • 更多的 SQL 语句反对,反对更丰盛的简单计算;
  • 更稳固运行,异样不重启服务。
正文完
 0