3. 汇聚工程需求分析与指标定义

多产线时序数据汇聚工程的第一步不是选型,也不是写代码,而是把“汇聚要满足什么”变成一组可测量、可验收的指标。需求分析的核心任务,是把产线数量、测点规模、采样频率、数据保留周期、查询模式这些业务事实,翻译成吞吐量、延迟、一致性、可用性和可扩展性五类工程目标。指标定义不清,后续的架构选型、容量规划、压测验收都会失去判断依据。

一、从业务事实推导规模基线

指标推导的起点是数据源清单。假设某工厂有 12 条产线,每条产线部署 1 台边缘网关,单条产线平均 800 个测点,其中 60% 为 1 Hz 的模拟量、30% 为 0.2 Hz 的温度与压力、10% 为事件型开关量。按平均每秒写入点数估算:

单线稳态写入速率 ≈ 800 × 0.6 × 1 + 800 × 0.3 × 0.2 + 800 × 0.1 × 0.05
                  ≈ 480 + 48 + 4 = 532 点/秒
12 条产线合计     ≈ 532 × 12 ≈ 6384 点/秒
峰值系数取 2.5(换型、批量采集、补传叠加)→ 峰值约 16000 点/秒

这个估算值就是吞吐量目标的原始输入。注意它只是“写入侧”的规模,查询侧还要单独估算:若每天有 200 次历史趋势查询,每次扫描 1 小时、10 个测点、1 Hz 数据,则单次查询约 36000 个数据点,日查询总量约 720 万点。写入与查询必须分开定义指标,否则容易用写入吞吐掩盖查询压力。

二、五类指标的定义与目标设定

吞吐量描述单位时间内系统能稳定接收并落盘的数据量,通常用“点/秒”或“MB/秒”表示。目标设定要区分稳态与峰值:稳态吞吐应覆盖 1.2 倍日常均值,峰值吞吐应覆盖 2~3 倍突发,并明确峰值可持续时长(如 10 分钟)。建议目标:稳态 ≥ 8000 点/秒,峰值 ≥ 16000 点/秒且持续 10 分钟不丢数。

延迟要拆成三段:采集延迟(设备产生到网关收到)、传输延迟(网关到汇聚入口)、落盘延迟(入口到可查询)。对产线监控,端到端 P95 延迟通常要求 ≤ 3 秒;对事后分析,可放宽到 30 秒。延迟指标必须写明分位数,平均值会掩盖长尾问题。

一致性在时序场景中不是“强一致”一刀切。关键质量数据(如批次追溯、报警事件)要求不丢不重,采用至少一次投递加幂等去重;一般过程量允许在断网补传时出现短暂乱序,但同一测点同一时间戳最终必须唯一。目标可定义为:关键测点丢失率 = 0,重复率 ≤ 0.01%,时间戳乱序窗口 ≤ 5 分钟。

可用性用“年停机时间”倒推更直观。99.9% 对应年停机约 8.76 小时,99.95% 对应约 4.38 小时。汇聚链路应做到单网关故障不影响其他产线,汇聚节点故障时数据在边缘缓存并在恢复后补传。目标建议:汇聚服务可用性 ≥ 99.9%,单点故障恢复时间 ≤ 5 分钟。

可扩展性要回答“加一条产线要改什么”。理想目标是新增产线只需在配置中注册网关与测点映射,无需修改汇聚核心逻辑,容量按线性扩展。可设定:单集群支持产线数从 12 扩展到 50,写入吞吐随节点数近似线性增长,扩容操作对在线业务无中断。

多产线汇聚工程指标推导与目标设定 业务事实 → 规模基线 → 五类指标 → 验收阈值 业务事实输入 产线数量:12 条 单线测点:800 个 采样:1Hz / 0.2Hz 保留周期:2 年 查询:趋势/追溯 峰值系数:2.5 断网补传需求 扩容至 50 条产线 规模基线估算 单线稳态 ≈ 532 点/秒 12 线合计 ≈ 6384 点/秒 峰值(×2.5) ≈ 16000 点/秒 日查询量 ≈ 720 万点 年数据量 ≈ 2000 亿点 五类工程指标与目标阈值 吞 吞吐量 稳态 ≥ 8000 点/秒;峰值 ≥ 16000 点/秒,持续 10 分钟不丢数 延 延迟 监控端到端 P95 ≤ 3 秒;分析链路 P95 ≤ 30 秒 致 一致性 关键测点丢失率 = 0;重复率 ≤ 0.01%;乱序窗口 ≤ 5 分钟 用 可用性 汇聚服务 ≥ 99.9%;单点故障恢复 ≤ 5 分钟 扩 可扩展性 12 → 50 条产线线性扩容;新增产线仅注册配置,不改核心逻辑 验收闭环:压测写入吞吐 → 注入延迟观测 P95 → 断网补传验证一致性 → 杀节点验证可用性 → 加产线验证扩展性

三、指标之间的权衡与优先级

五类指标并非彼此独立。提高一致性(如每条数据同步落盘并等待确认)会推高延迟;追求极低延迟(如内存缓冲后异步批量写)会削弱断网时的数据安全性;无限扩展的假设会掩盖单点瓶颈。因此需求分析必须给出优先级。对产线汇聚,通常的顺序是:不丢关键数据 > 可用性 > 吞吐量 > 延迟 > 成本。一般过程量可以在延迟上让步,但批次、报警、质量判定数据不能丢。

权衡要落到具体设计选择上。例如,边缘网关采用本地磁盘队列缓存 24 小时数据,网络恢复后按时间顺序补传,这样可用性和一致性得到保障,代价是补传期间汇聚入口需要额外 30% 的吞吐余量。这个余量必须提前写进吞吐量目标,而不是等故障发生后再临时扩容。

四、把指标写成可验收的测试用例

指标定义的最后一步是转成验收条件。下面给出一份可直接参考的指标验收表,字段和阈值均属于示例设定,实际项目应按现场规模调整。

指标 测试方法 通过条件 观测点
吞吐量 用回放工具按 16000 点/秒持续写入 10 分钟 写入成功率 ≥ 99.99%,无持续积压 汇聚入口队列长度、落盘速率
延迟 在网关打时间戳,查询端计算差值 P95 ≤ 3 秒,P99 ≤ 8 秒 端到端时间差分布
一致性 断开网关网络 10 分钟后恢复 补传后无丢失,重复率 ≤ 0.01% 测点时间戳唯一性校验
可用性 随机终止一个汇聚节点 服务不中断,5 分钟内恢复 健康检查、请求成功率
可扩展性 新增 4 条模拟产线并注册配置 吞吐线性增长,无需改核心代码 扩容前后吞吐对比、配置变更量
指标阈值应写成“数值 + 分位数 + 持续时间 + 观测点”四要素。只写“延迟低”“吞吐高”无法验收,也无法指导容量规划。

五、常见误区

  • 只算写入不算查询。历史趋势查询可能瞬间拉高磁盘 IO,需单独设定查询并发与扫描量上限。
  • 用平均值代替分位数。平均延迟 1 秒可能掩盖 P99 达到 20 秒的事实,长尾会直接影响报警时效。
  • 把一致性等同于强一致。时序场景更适合按数据等级分级一致性,全部强一致会显著抬高延迟和成本。
  • 忽略补传流量。断网恢复后的补传是峰值吞吐的重要来源,必须在目标中预留余量。
  • 扩展性只谈节点数。真正的扩展性还包括测点注册、元数据管理、查询路由是否随产线增加而线性可控。

完成本节后,应产出一份经产线、自动化、IT 三方确认的指标基线文档:包含数据源清单、规模估算过程、五类指标阈值、优先级排序和验收用例。这份文档将直接决定后续汇聚架构的选型边界——是单节点还是集群、是消息队列加时序库还是边缘直写、是否需要分级存储。指标定义不是形式工作,而是整个汇聚工程的第一道设计约束。