多源冲突怎么取值
同一属性来自多个源系统时经常冲突:CRM 里的手机号与订单系统的不一致。做法是建立优先级链(权威系统高于业务系统,业务系统高于外部数据),同级再按更新时间取新值,并同时记录取值来源。要特别注意时间戳新并不代表更可信,低质量源的高频写入会覆盖权威数据。
基本信息
| 优先级链 | 权威系统、业务系统、外部数据的固定顺序 |
|---|---|
| 同级处理 | 按更新时间或版本号取最新 |
| 留痕要求 | 写入取值来源列,便于追溯 |
| 例外情况 | 人工锁定值优先级最高,需记录锁定人与原因 |
| 落地方式 | 优先级配置化,变更走评审 |
典型使用场景
- 客户主数据:多系统融合时决定手机号与地址的取值来源
- 商品信息:商品中心与渠道提供的名称、规格冲突
- 供应商档案:工商登记数据与内部录入不一致
- 人工修正:锁定值优先于所有自动来源
- 冲突监控:统计各来源被采纳的比例,评估数据源质量
按优先级取值
按优先级取值
-- 优先级取值:按来源等级从高到低依次兜底
SELECT customer_id,
coalesce(
max(CASE WHEN src_rank = 1 THEN name END),
max(CASE WHEN src_rank = 2 THEN name END),
max(CASE WHEN src_rank = 3 THEN name END)
) AS name
FROM stg_customer_attr
GROUP BY customer_id;来源等级与信任度
| 来源等级 | 典型来源 | 信任度 |
|---|---|---|
| 1 权威 | 主数据系统、工商登记 | 最高,冲突时优先采纳 |
| 2 业务 | 订单、CRM、客服系统 | 较高,权威缺失时采用 |
| 3 外部 | 第三方数据、公开渠道 | 最低,仅作补充 |
| 4 人工 | 人工锁定与修正 | 覆盖所有自动来源 |
优先级链是业务决策而不只是技术配置:要写进维度规范并随数据源变化评审,否则新增数据源时无人知道该插在哪一级。
不留取值来源就无法追溯:出现争议时只能逐表人工比对,留下来源列后一处即可定位,代价只是多一列存储。