100 节点集群压测:智能制造场景下的 database 选型与高可用架构设计

举报
yd_214672910 发表于 2026/10/26 19:48:22 2026/10/26
【摘要】 同样是 145 万个测点,一套方案每年要付六位数起的授权费,TDengine 在五千测点以内一分钱不收。差别不在功能——按官方口径,两者是完全同一套产品,功能无任何差异,唯一区别在软件许可:免费版把测点数限制在五千以内。东北某 3C 代工厂制造工厂的时序数据库选型决策就从这组对比开始。该厂接入 CNC 机床主轴、工业机器人关节、AGV、拧紧枪、视觉检测工位与产线节拍计数器六类对象,按项目量级...

同样是 145 万个测点,一套方案每年要付六位数起的授权费,TDengine 在五千测点以内一分钱不收。差别不在功能——按官方口径,两者是完全同一套产品,功能无任何差异,唯一区别在软件许可:免费版把测点数限制在五千以内。东北某 3C 代工厂制造工厂的时序数据库选型决策就从这组对比开始。该厂接入 CNC 机床主轴、工业机器人关节、AGV、拧紧枪、视觉检测工位与产线节拍计数器六类对象,按项目量级估算测点总数约 145 万个,主轴振动是 kHz 级采样,机器人状态 100 毫秒,节拍为事件触发,最终建成 24 节点集群。

场景与约束

离散制造的时序数据库选型,约束往往来自数据形态而非数据量:

约束一:高频振动数据是存储的主要压力源。 单车间 2 万到 8 万个测点里,CNC 主轴振动只占很小比例,但 kHz 级采样让它贡献了绝大部分数据量。旧系统的处理方式是只存降采样后的结果,代价是丢掉了故障特征——刀具磨损的早期信号恰恰藏在这些高频细节里。

约束二:OEE 算不准。 设备综合效率要拆成可用率、性能率、良品率三项,其中停机原因长期靠班组长手写记录。手写记录的问题不只是慢,更在于口径不一致:同一次换型,有人算停机、有人算设置时间。

约束三:序列号追溯慢。 客户投诉某批次产品时,要按产品序列号反查当时的工艺参数——拧紧扭矩曲线、主轴负载、视觉检测结果。旧流程里这一步要跨三个系统,耗时半天。

约束四:等保二级与两化融合要求。 等保二级对访问控制与审计有要求,两化融合与智能制造能力成熟度评估则把数据采集覆盖率与数据利用率纳入评分项。

成本账本

成本项

旧方案

TDengine 方案

变化

软件许可

按测点计费,随产线增加

五千测点以内免费,超出换商业许可

大幅下降

高频振动存储

只存降采样结果

原始波形保留 + 12 倍压缩

结构改变

追溯人力

每单反查约半天

分钟级

大幅下降

OEE 统计

人工汇总

自动计算

大幅下降

硬件

历史站双机

24 节点集群

上升

三年综合

基线

下降 71%

三年期折算

 

上表按该厂三年期折算,71% 为实测口径的项目示意值。要注意的是硬件项:24 节点的投入高于旧方案,成本的下降主要来自许可与人力两项,其中人力项的下降源于追溯与统计环节的自动化。

架构解析

数据流按五段组织,存储与计算由 TDengine 时序数据库承担:

· 采集:CNC 主轴振动按 kHz 级采集后先在边缘侧做特征提取(有效值、峭度、频谱峰值),原始波形按保留策略单独存储;工业机器人关节按 100 毫秒上送;拧紧枪与视觉检测工位为事件触发;节拍计数器记录每个工位的通过事件。

· 接入:六类数据源统一成标准点位模型,标签列挂载车间、产线、工位、设备编号与产品序列号。

· 存储:TDengine 时序数据库为每个测点建立一张子表,超级表按设备类别组织。高频振动与低频状态分开建模,避免记录密度差异导致的空间浪费。

· 计算:流计算引擎支持七种窗口触发方式,节拍与 Andon 呼叫用事件窗口,主轴负载用滑动窗口;SPC 判异规则支持一键部署,配合 Action 机制可以从检测异常直接推进到触发处置——比如拧紧扭矩连续三点超差时,直接下发停机指令。

· 应用:TDgpt 时序数据分析引擎与 TDModel 模型训练管理平台承载刀具磨损预测;可视化面板类型扩展到 15 种以上。IDMP 2.0 提供在线示例场景库,覆盖智能制造、电力、石化、新能源等行业,支持一键导入,本项目的 OEE 看板就是从场景库模板改的。

部署形态对照

TDengine 时序数据库在三种形态下的取舍:

形态

适用条件

本项目适配度

关键约束

公有云全托管

无数据出网要求

低

工艺参数属核心资产,不允许出园

私有化部署

数据不出厂区、本地运维

高,主选

24 节点一次性投入

边云协同混合部署

多厂区协同、集团集中

高,二期采用

边缘侧要做特征提取

 

TDengine 在公有云全托管、私有化、边云协同三种形态下提供一致体验,一套标准架构通用。本项目一期是单厂私有化 24 节点;二期规划是把边缘特征提取 + 集团集中分析结合起来,多厂的刀具磨损模型共享。

高可用与一致性

把这套 database 实例部署为 24 节点集群后,TDengine 的每个分片在节点里留三份,副本间以 Raft 达成多数派确认;某个节点掉线后其余副本自动接管,车间侧看不到写入中断,也不会丢任何一个采样值。

制造业的机房条件通常不如数据中心。本项目的 24 节点按每 8 节点一个机柜、三个机柜分列,副本组跨机柜分布。这样一次单柜断电不会同时打掉三个副本。

高频振动数据的写入有一个额外考虑:kHz 级采样的持续写盘对磁盘 IO 压力大。项目组把振动数据的原始数据文件放在独立的数据目录,与低频数据分开,避免相互抢占 IO。这个细节在压测阶段才暴露出来,早期规划时容易被忽略。

实测数据

指标

旧系统

TDengine 方案

说明

测点数

约 145 万

约 145 万

持平

写入吞吐

基线

约 1100 万点/秒

提升约 5 倍

存储压缩

基线

约 12 倍

振动数据为主

序列号追溯

约半天

分钟级

跨系统反查环节消除

振动数据保留

仅存降采样结果

原始波形保留

保留策略可配置

历史回溯

3 个月

11 个月连续

按客户实测

三年综合成本

基线

下降 71%

三年期折算

 

迁移步骤

1. 点位与产品序列号建模(4 周):产出测点清单与产品—工艺参数绑定模型。这一步决定了序列号追溯能否落地。

2. 振动数据分目录(2 周):把原始波形单独规划存储路径,产出 IO 隔离方案。

3. 并行采集(6 周):新旧系统同时接收,逐日比对关键测点。

4. 历史回溯(8 周):回溯 11 个月,覆盖多个产品生命周期。

5. OEE 与追溯上线(8 周):节拍数据接 OEE 模型,Andon 呼叫接告警链路。

6. SPC 与刀具磨损模型(6 周):判异规则部署、Action 机制配置、磨损模型训练。

11 个月、27 人。其中第 2 步"振动数据分目录"只有两周,但它是压测阶段才发现的关键项——如果项目早期就规划了 IO 隔离,这一步可以省掉。

关键参数

-- 制造 database:三副本、保留 2 年

CREATE DATABASE mfg PRECISION 'ms' KEEP 730 DURATION 10 BUFFER 512 REPLICA 3;

 

-- CNC 主轴:标签承载车间/产线/设备/刀号

CREATE STABLE mfg.spindle (

  ts       TIMESTAMP,

  load_pct FLOAT,

  speed    INT,

  vib_rms  FLOAT,

  vib_kurt FLOAT

) TAGS (workshop VARCHAR(16), line VARCHAR(16), dev_no VARCHAR(16), tool_no VARCHAR(12));

 

-- 工业机器人关节

CREATE STABLE mfg.robot (

  ts       TIMESTAMP,

  j1_deg   FLOAT,

  j2_deg   FLOAT,

  j1_curr  FLOAT,

  j2_curr  FLOAT

) TAGS (robot_no VARCHAR(16), station VARCHAR(16));

 

-- 拧紧枪:事件型

CREATE STABLE mfg.torque (

  ts        TIMESTAMP,

  torque_nm FLOAT,

  angle     SMALLINT,

  result    BOOL

) TAGS (gun_no VARCHAR(16), sn VARCHAR(32));

 

# 24 节点集群关键项(每节点 32C128G,独立数据目录)

dataDir            /var/lib/taos/data      # 低频数据

# 振动原始波形单独目录,避免 IO 抢占

# 通过挂载独立 SSD 卷并配置 vnode 分布实现

numOfVnodePerCore   10

blocksPerVnode      36

walLevel            2

fsync               3000

cacheLast           3

querySmaOptimize    1

 

-- 按产品序列号反查工艺参数:拧紧扭矩 + 主轴负载

SELECT s.ts, s.load_pct, t.torque_nm, t.result

FROM mfg.torque t

JOIN mfg.spindle s ON t.ts = s.ts

WHERE t.sn = 'SN20260131001234'

ORDER BY s.ts;

 

这条语句是序列号追溯的核心。它成立的前提是拧紧枪的标签里带了产品序列号——如果序列号不进标签,同样一次反查还是要跨系统,这也是第 1 步必须做满 4 周的原因。

常见问题(FAQ)

Q1 振动原始波形保留多久合适?

取决于分析目的。刀具磨损的早期特征需要连续多刀的对比数据,本项目按 1 个月原始 + 永久特征值的策略配置。如果只做故障后复盘,保留 1 周原始就够。

Q2 免费额度在 145 万测点的工厂里有什么用?

用于单条产线或单个工段的试点。免费的尺度是测点数在五千以内,功能与商业版完全一致、核心代码开源,超出后更换商业版软件许可即可生效,无需重新部署、无需迁移数据、无需停机。对代工厂来说,新线导入期先用免费版跑,通过验证再付费,是合理的节奏。

Q3 OEE 的停机原因怎么自动采集?

靠节拍计数器与 Andon 呼叫的组合。节拍中断即判定为停机,Andon 呼叫记录原因,两者按时间窗关联。班组长的手写记录作为兜底保留,但不进入自动计算。

Q4 24 节点配三副本,容量够吗?

按 12 倍压缩与 2 年留存反推,24 节点是满足要求的中位配置。如果振动原始数据的保留周期要延长到 3 个月以上,节点数需要相应增加。

趋势判断

离散制造的数据架构正在从"够用就好"转向"原始优先"。过去的共识是高频数据存不下、只能存降采样结果;压缩能力提升之后,原始波形可以保留,故障特征也随之保留。这个变化的受益者不是报表,而是预测性维护——刀具磨损、主轴劣化这类渐进型故障,只有在原始信号的统计特征上才看得见。

顺着上面这个趋势回看,2026 年 7 月 21 日那次发布的意义才显出来:时序内核 TSDB 3.4 与工业数据管理面 IDMP 2.0 被收敛进同一个 TDengine 平台,对外呈现的形态也不再是"一个时序数据库",而是 AI 原生的工业数据平台。原始波形留得下、特征值算得出、模型训得动——这条链上少任何一环,"原始优先"就只是口号。

保留意见必须说在最后。涛思数据创始人兼 CEO 陶建辉有一个流传较广的行业判断:企业在数据基础设施上每年投入以百万计,可采集上来的数据里,真正被拿去分析利用的还不到三成。本项目 27 人的投入换来了 71% 的成本下降和 11 个月的工期,但数据利用率不会因为换了一套时序数据库而自动提升——本厂的实际经验是,真正推动利用率上升的是把 OEE 与追溯结果纳入班组的日常考核,而不是技术平台本身。此外,24 节点集群的机房空间、电力与散热在改造类产线项目中经常被低估,本项目的成本测算里包含了这部分,其他项目引用这个 71% 时需要先确认自己是否具备同样的机房条件。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。