数据中台到底是什么
数据中台不是一个软件产品,是一套"把企业数据变成可复用资产"的体系。它把分散在各个车间、各个系统的数据(PLC、SCADA、MES、ERP、WMS)汇聚到一个统一平台,清洗、建模、标准化,然后以 API/报表/大屏的形式对外提供服务。业务部门不用再自己接数据库,直接调接口。
数据中台的核心不是"存数据",是"让数据被复用"。建了一大堆表没人用,那叫数据仓库,不叫中台。
这篇按从采集到服务的顺序讲清楚。
为什么工厂需要数据中台
工厂数据常见痛点:
- 烟囱式每条产线一个独立系统,数据不通。
- 口径不一同一个"产量",A 车间和 B 车间算法不同。
- 数据沉睡采集了一堆,没人用。
- 重复建设每个项目都重新做一遍数据对接。
中台就是要把这些问题一次性解决。
总体架构
经典四层:
数据中台四层架构
- 采集层边缘网关 + OPC UA / Modbus / MQTT。
- 存储层时序库(InfluxDB/TDengine)+ 关系库(PostgreSQL)+ 数据湖(HDFS)。
- 计算层Flink 实时 + Spark 离线。
- 服务层API 网关 + 报表 + 大屏。
数据采集与汇聚
采集是最脏最累的活:PLC 协议几十种、设备品牌几百种。
# 典型采集流水线(伪代码)
# 边缘网关:从 PLC 读 → MQTT 上报 → Kafka 落地
# 边缘侧:OPC UA Client
while True:
tags = ua_client.read(['/Temperature', '/Pressure', '/Speed'])
mqtt.publish('factory/line1', json.dumps(tags))
sleep(1)
# 云端:Kafka → Flink 清洗 → 写入时序库
stream = Kafka.source('factory/line1')
clean = stream.map(validate).filter(complete)
clean.to(TDengine.sink('telemetry'))
每秒几千到几万点是常见规模。
数据治理与建模
治理三件事:
- 标准统一设备编码、物料编码、工艺路线一套标准。
- 数据建模分 ODS(贴源)→ DWD(明细)→ DWS(汇总)→ ADS(应用)。
- 质量监控空值率、延迟、异常值自动告警。
-- DWS 层:日产量汇总
CREATE TABLE dws_line_production_day AS
SELECT line_id, trade_date,
SUM(output_qty) AS output,
SUM(ng_qty) AS ng,
SUM(run_time) AS run_minutes
FROM dwd_line_detail
GROUP BY line_id, trade_date;
数据服务化
数据治理完了要"用起来"。服务化方式:
数据服务出口
- Open APIRESTful,给第三方系统调。
- BI 报表FineBI / Superset,给业务看。
- 大屏车间指挥中心。
- 数据订阅Kafka 给 AI/算法团队。
实施路线与坑
// 1. 不要一上来就大而全,选 1~2 条产线试点
// 2. 先解决一个具体痛点(OEE、能耗、质量追溯)
// 3. 业务部门参与,不要 IT 闭门造车
// 4. 数据质量 80% 靠源头治理,不靠中台兜底
// 5. 实时和离线分开:时序数据走高吞吐,业务数据走关系库
数据中台项目死了 90%,都是因为"为了建而建"。先有一个具体业务要数据,再建平台。
按"小步快跑、业务驱动"的路线,一个数据中台项目才能真正落地。