头图

作者:许海军

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

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

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

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

一、存储方案选型

我们看一下能源行业数据的特性:

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

基于能源行业的数据特性,我们要在平台支持的 OpenTSDB、ClickHouse 和 TDengine 这 3 个时序数据库(Time-Series Database)存储引擎中作出选择。下面是一个对比:

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

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

二、TDengine 数据库建模

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

先来看超级表。
根据 TDengine 数据库的特性,我们将电表、水表、石油气表、氧气表,对每个类型的数据采集点创建一个超级表。以创建电表为例:

再来看普通表。
每个数据采集点需要独立建表。与标准的关系型数据库一样,一张表有表名,Schema,但除此之外,还可以带有一到多个标签。

三、实际应用总结

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

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

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

在使用 TDengine Database 的过程中,我们也总结出一些经验。

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

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

作者简介:

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


想了解更多TDengine的具体细节,欢迎大家在GitHub上查看相关源代码。


TDengine涛思数据
87 声望33 粉丝

高性能、分布式的物联网、工业大数据平台