分享

TDengine在TCL空调能源管理平台的实践

 刘振东 2022-02-10
作者:许海军

小 T 导读:格创东智科技有限公司成立于2018年,孵化于中国500强企业TCL,是我国知名的工业互联网平台服务商。公司依托TCL集团40年工业场景和制造基因沉淀,基于“面向工业现场”的研发方向和“连接、协同、共享”的发展理念,深度融合人工智能、大数据、云计算、物联网等前沿技术,为智能工厂和制造业园区打造的数字化能源管理方案,可广泛应用于多个垂直行业,运行监控、能效管理、智能分析、运维管理、能源采购、碳排放管理等数十个功能模块,实现完善的能源管理价值闭环,建立数字化能源&碳计量体系,智慧化用能及碳管理系统,打造涵盖企业碳追踪、碳计量、碳管理、碳中和的一站式解决方案。


TCL空调能源管理平台对工厂电、水、天然气、油等指标进行实时采集、动态监测,并以时间维度、厂家、车间、生产线类型、生产线、设备等维度进行分析、节能计量、计费、成本核算、进行行业对标、生成分析报告等,实现企业能源精细化管理,促进节能降耗;实时监控用户的用能安全数据,及时向安全管理人员发送报警信息,指导其开展隐患治理,为帮助企业实施用能安全及能源管理提供信息化服务。

G-Things是我们的应用智能平台产品家族的物联网平台,我们先来看一下在该平台上的数据流转情况。

图片

工业设备会将数据上报到平台数据接入网关,然后接入网关负责解析报文,并过滤掉非法数据报文,之后再将数据下发到Apache Kafka消息中间件,由平台实时处理、持久化服务进行消费,持久化服务会把最新数据写入Redis,并将数据持久化到时序数据库。对于平台存储架构,设计上支持OpenTSDB、ClickHouse、TDengine等时序数据库切换,我们要根据项目实际情况来选型。

一.

存储方案选型


我们看一下能源行业数据的特性:
  • 数据的时序性:设备源源不断地产生数据,这些数据会带着时间戳上报到平台
  • 数据流量稳定:上报频率比较稳定,采集频率在30秒一次
  • 数据是数值类型:是一些使用累计量、电流、电流、压力之类的数据
  • 数据不存在变更:数据是记录某一时刻的采集表记数据,上报无需更新或删除
  • 数据的聚合及分析基于时间维度、空间维度:时间维度有年、月、周、日、时,最短15分钟统计一次,空间维度有厂家、车间、生产线类型、生产线、设备等
    • 数据量大:按一个工厂4万表记计算,每30秒钟一笔数据,一天采集的数据会超过1亿条

    基于能源行业的数据特性,我们要在平台支持的OpenTSDB、ClickHouse和TDengine这3个时序数据库存储引擎中作出选择。下面是一个对比:
    1. OpenTSDB:依赖HBase、HDFS和ZooKeeper等组件,硬件资源要求高、成本高,在查询时间跨度较大时,性能骤降,另外对聚合分析查询支持不好。
    2. ClickHouse:在数据存储、跨时间段查询及数据聚合分析查询等方面,都满足我们的所有选型要求,但是运维成本太高,扩展过于复杂,使用的资源较多。
    3. TDengine:在数据存储、数据分析查询等方面都满足我们的需求,并且集群版也开源了,支持横向扩展,占用资源少,在客户有限的资源条件下,是存储引擎最优的选择。

    经过以上对比,我们选择了将TDengine作为自己的存储引擎。

    二.

    TDengine数据库建模


    TDengine有两个很独特的创新,一个是“一个数据采集点一张表”,一个是“超级表”。所以在设计数据模型时,就要考虑业务模型怎么映射到超级表和具体的表。

    先来看超级表。
    根据TDengine数据库的特性,我们将电表、水表、石油气表、氧气表,对每个类型的数据采集点创建一个超级表。以创建电表为例:
    图片
    再来看普通表。
    每个数据采集点需要独立建表。与标准的关系型数据库一样,一张表有表名,Schema,但除此之外,还可以带有一到多个标签。
    图片

    三.

    实际应用总结


    项目上线半年以来,一直平稳运行。

    在TCL空调能源管理项目中,我们使用的硬件资源明显减少,同选用ClickHouse集群作为存储的TCL电子工业物联网平台对比,两个项目的数据规模差不多,TCL空调能源管理项目数据库服务器减少了一半。

    我们以组态视图的方式实现了各系统运营参数可视化监控与实时查询,实现了完整的能源数字化管理解决方案,提高了运营管理决策的效率。通过电、水、石油、天然气使用分析,对工厂能源结构优化和节能降耗,实现降能耗5%左右,预计每年为TCL空调实现降本收益上千万元。
    图片
    图片
    在使用TDengine的过程中,我们也总结出一些经验。

    比如,TDengine提供最后一条记录的缓存,通过last_row函数可以快速获取实时数据。平台在使用TDengine之前,用Redis来缓存最新的一笔数据,而大量的写入Redis对性能会有一定的影响,现在用TDengine cache代替Redis缓存,可以完美解决这个问题。

    另外,在使用过程中,TDengine的技术专家也提供了很多支持。TDengine有自己的技术交流微信群,非常活跃,很多技术问题都有涛思数据的专家亲自答复,响应非常快速。


    作者简介:

    许海军,目前负责TCL AIoT平台整体技术架构开发,主要从事工业互联网、大数据系统开发,曾参与广东示范级工业互联网平台建设等工作。

      本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
      转藏 分享 献花(0

      0条评论

      发表

      请遵守用户 评论公约

      类似文章 更多