小T导读:昆明卷烟厂作为红云红河烟草(集团)有限责任公司的重要组成部分,是集团卷烟生产的核心工厂。早期在建设制造执行系统(MES)时,其采用了 Wonderware 平台的时序数据存储功能模块,实现实时数据的采集与管理。随着生产规模的扩大及自动化水平的提升,设备状态、工艺参数和环境监测等数据量日益激增,传统信息化架构在海量数据存储和实时处理方面面临巨大挑战,难以支撑现代化生产的需求。为此,昆明卷烟厂决定引入 TDengine 时序数据库,重构数据底座,全面提升数据处理和分析能力。
背景和痛点
MES 系统在持续扩展和深度应用的过程中,出现了系统稳定性差,数据采集系统异常等情况,主要体现在以下几个方面:
- 维护成本高,扩展能力差
Wonderware 平台按年收取维护费用,采用按组件和授权等级计费的模式,且不支持一次性买断,软件升级也需额外付费,整体成本高昂。由于版本较旧,部分技术问题难以及时解决,影响系统稳定性和生产效率,限制了企业在信息化和智能化方向上的持续创新。
- 部署发布效率低
原有 Wonderware 平台采用传统 CS 架构,需要专门的客户端安装程序,部署与配置效率低,分布式能力不足。一旦系统需要更新,需对每台服务器和操作站逐一操作,导致维护负担大、响应速度慢。
- 存储点数受限
现有需要采集和存储的数据点大约有 30W+,而 Wonderware 历史数据的存储能力有限,无法支撑未来大规模数据分析和信息化升级需求,成为发展瓶颈。
- 对外接口单一
接口设计不够灵活,当访问数量过大,访问客户端链接过多,系统资源就容易被堵塞,直接影响实时数据的写入和查询性能,降低整体数据处理能力。
TDengine 带来的 5 点价值
面对传统架构在成本、性能与扩展性方面的种种瓶颈,MES 系统亟需一个更高效、更灵活的数据底座来支撑不断增长的生产数据量和智能化升级需求。经过深入调研与测试,我们最终选择了 TDengine 作为核心时序数据库解决方案,其优势主要体现在以下几个方面:
- 成本可控,版本可持续升级:TDengine 支持永久授权模式和年费模式,在软件有效期内,如客户需对硬件升级改造,可以对 TDengine 进行软件授权迁移,保护客户投资,降低总体拥有成本。
- 系统稳定,弹性扩展:作为专为时序数据设计的数据库,TDengine 具备成熟的分布式架构,支持在线扩容与缩容,显著提升系统的稳定性与灵活性,部署更高效,运维更轻松。
- 高效存储,性能卓越:TDengine 采用列式存储与高效压缩算法,大幅降低存储空间占用。其写入能力强,能够承载高频数据写入需求,轻松应对百万点位以上的数据采集与存储需求。
- 接口丰富,兼容性强:提供原生驱动、REST API、WebSocket 等多种访问方式,支持 Java、Python、C/C++、C#、Go 等主流开发语言,具备良好的多并发处理能力,满足实时查询与系统集成需求。
- 全面支持信创环境:TDengine 为 100% 国产自主研发,核心代码开源,已适配麒麟、统信、凝思等国产 Linux 操作系统,支持 x86 与 arm64 架构,全面满足政府与企业的信息安全及国产化替代要求。
TDengine 的落地实践
在项目初期,MES 系统部署了两节点的 TDengine(版本 2.4,运行于 Ubuntu 系统),由 SCADA 系统采集设备数据并通过应用程序写入 TDengine。环境监测系统则采用了单节点的 TDengine 3.1 版本。
2023 年,我们对这两套系统进行了整合,统一为一套三节点的 TDengine 集群,版本升级至 3.3,操作系统同步切换为国产麒麟。系统整合后,进一步提升了数据处理能力和系统稳定性,更好地支撑了生产、监测等核心业务。
在建模方面,我们采用“1 个点位对应 1 张子表”的方式,实时存储来自卷烟机、包装机、滤棒成型机、切片机、加料机等制丝生产设备的数据,目前接入设备已超过 10 万台,且仍在持续增长中。这些数据既可用于实时查询关键工艺参数(如水分、温度等),也可用于分析当班生产产量、剔除情况等,为生产管理提供可靠的数据支撑。

新集群由 3 台物理主机组成,每台主机配置如下:
- CPU:64核
- 内存:128GB
- 磁盘空间:20TB
在建库时,我们采用了 3 副本策略,有效保障了数据的冗余性和系统的高可用性。在完成历史数据平稳迁移后,数据采集程序与上层应用系统也顺利完成切换。
系统架构图:

从架构图中可以看出,采集到的时序数据随后被写入 TDengine 进行持久化存储。
落地效果
目前,TDengine 集群已成功接入 SCADA 系统采集的 10 万多个点位,累计存储 3 年历史数据,共计 1.8 万亿条记录,仅占用整体存储空间的 30%,预计可支撑 8 至 10 年的数据保存需求。
集群的存储空间可根据需要进行动态扩展,满足后期更多设备点位数据采集上来的存储需求。本项目已验证 TDengine 在烟草工业海量时序数据处理中的适用性,为行业数字化转型提供了可复用的技术路径。

运行优化与问题解决
在使用 TDengine 的过程中,曾一度发现存储空间增长较快。经涛思数据售后团队协助分析,确认是由于应用程序写入历史数据,导致数据文件中出现空洞和存储放大等问题。这不仅降低了存储效率,也影响了查询性能。
为解决这一问题,项目团队启用了 TDengine 企业版提供的数据重整功能(data compact)。该功能能够重新整理存储的数据文件,删除其中的空洞和无效数据,从而提高数据的组织度,进而提升存储和查询效率。
具体排查与优化操作如下:
- 系统监控显示存储空间增长异常,占用了 75% 空间。

- 经过检查文件编号和更新日期,发现某单个数据文件大小和写入日期异常,可以判断是应用侧写入了大量历史数据,导致存储放大。

- 手动执行 compact database 后,存储空间使用恢复正常,性能也得到了大幅度的提升。

未来规划与升级方向
当前系统采用“一个点位一张表”的单列模型,便于数据采集与管理。然而,在实际查询过程中,采用宽表多列模型更为方便,尤其是在跨点位、跨表的分析场景下,该模型存在一定的局限性。例如,跨表查询需依赖复杂的 JOIN 语句和多次拼接操作,数据按时间戳对齐效率低,查询延迟明显。
为解决上述问题,TDengine 在 3.3.6 版本中引入了虚拟表功能,真正实现了“一个设备一张表”的设计理念。具备以下优势:
- 更简单:用户无需编写复杂 JOIN + 嵌套查询语句,通过虚拟表直接获取跨表对齐数据
- 更快速:动态计算减少冗余存储,归并排序优化数据对齐效率
- 实时性:虚拟表实时反映原始表变更,支持毫秒级数据更新
- 易扩展:支持动态添加/删除列,适配业务需求变化。
下一步,我们计划将 TDengine 集群从当前的 3.3.2 升级至 3.3.6,充分利用虚拟表功能,以更高效地支撑未来日益增长的查询分析需求。
关于昆明卷烟厂
昆明卷烟厂创建于 1922 年,是中国卷烟工业四大重点骨干企业之一。核心品牌“云烟”是中国烟草行业首批同时拥有“中国驰名商标”和“中国名牌产品”的双冠品牌。产品覆盖中高端市场,远销海内外。