设计数据中台
需求
公司有多个业务线(电商、金融、物流),各自建设了独立的数据系统,导致:
- 数据孤岛,跨业务线分析困难
- 重复建设,同一张表多个团队各建一份
- 数据质量参差不齐,没有统一标准
设计一个数据中台,实现数据资产化和服务化。
架构设计
核心层次
| 层次 | 能力 | 说明 |
|---|---|---|
| 数据集成 | 多源接入、实时/离线采集 | Kafka + CDC + 批量导入 |
| 数据开发 | SQL 开发、调度、版本管理 | Airflow/DolphinScheduler + Git |
| 数据资产 | 数据目录、元数据、指标 | DataHub + 指标平台 |
| 数据服务 | API 网关、查询服务、推送 | 统一数据出口 |
| 数据治理 | 质量、安全、血缘、标准 | 贯穿全链路 |
OneData 方法论
| 原则 | 内容 | 实践 |
|---|---|---|
| OneModel | 统一数据模型 | 全公司共用一套维度模型 |
| OneID | 统一用户标识 | ID Mapping 打通多端身份 |
| OneService | 统一数据服务 | 所有数据消费走 API/SQL 网关 |
ID Mapping
-- 多端 ID 打通
-- 同一用户可能有:手机号、微信 OpenID、App UID
SELECT
master_id, -- 统一用户 ID
GROUP_CONCAT(DISTINCT phone) AS phones,
GROUP_CONCAT(DISTINCT wechat_openid) AS wechat_ids,
GROUP_CONCAT(DISTINCT app_uid) AS app_uids
FROM id_mapping_graph
GROUP BY master_id;
数据资产管理
| 功能 | 说明 |
|---|---|
| 数据目录 | 可搜索的表/指标/API 目录 |
| 数据字典 | 字段含义、枚举值说明 |
| 数据血缘 | 上下游依赖关系可视化 |
| 数据评分 | 质量、热度、完整度打分 |
| 权限管理 | 按角色/数据分级控制访问 |
常见面试问题
Q1: 数据中台和数据仓库有什么区别?
答案:
| 维度 | 数据仓库 | 数据中台 |
|---|---|---|
| 定位 | 技术方案 | 组织+技术方案 |
| 范围 | 数据存储和计算 | 全链路(采集→存储→计算→服务→治理) |
| 输出 | 报表、SQL 查询 | API、数据服务、数据产品 |
| 核心价值 | 离线分析 | 数据资产化、复用、服务化 |
Q2: 数据中台适合什么样的公司?
答案:
- ✅ 适合:多业务线、跨部门数据需求多、数据团队 ≥10 人
- ❌ 不适合:单一业务线、数据量小、团队
<5人 - 关键判断标准:数据复用率——如果同一份数据被 3+ 团队使用,就值得建中台