4. 基础数据准备

名单增量更新与存量客户重筛的成败,往往不取决于模型多复杂,而取决于基础数据是否“干净、统一、可对齐”。如果数据源散落在CRM、订单库、活动报名表、客服工单和第三方渠道中,字段命名各异、口径不一,后续的增量识别和重筛规则就会频繁误判。本章聚焦数据准备的四步法:数据源梳理 → 字段标准化 → 质量检查 → 清洗落地,并给出可直接复用的检查清单与代码示例。

一、核心原理:数据准备的本质是“对齐”

数据准备不是简单地把表拼在一起,而是完成三层对齐:

  • 实体对齐:同一个人在不同系统中可能有多个ID、手机号、邮箱,需要确定唯一主键(如统一客户ID或手机号哈希)。
  • 字段对齐:同一含义的字段在不同来源中命名不同,例如“手机号”“mobile”“phone”“联系方式”应统一为mobile。
  • 口径对齐:同一字段的取值规则不同,例如“活跃客户”在A系统指近30天有登录,在B系统指近90天有下单,必须统一为同一业务定义。

关键判断:如果两个数据源无法通过稳定主键关联,或同一字段的口径差异超过20%,应先暂停合并,回到业务侧确认口径,而不是强行清洗。

二、方法流程:四步法操作指南

1. 数据源梳理

先画一张数据源清单,记录每个来源的系统名称、更新频率、主键、关键字段、数据量级和负责人。常见来源包括:

  • CRM系统:客户基础信息、标签、跟进记录。
  • 交易/订单库:下单时间、金额、频次、品类。
  • 活动/营销平台:报名、领券、点击、转化。
  • 客服工单:投诉、咨询、满意度。
  • 第三方数据:画像标签、风险评分。

2. 字段标准化

建立字段映射表,将不同来源的字段统一到目标模型。重点处理:

  • 命名统一:全部小写、下划线分隔,如customer_id、mobile、last_order_time。
  • 类型统一:日期统一为YYYY-MM-DD HH:MM:SS,金额统一为分或元并保留两位小数。
  • 枚举统一:性别、客户等级、渠道来源等建立码表映射。
  • 空值统一:用NULL或空字符串前,先约定业务含义,避免“未知”和“未填写”混用。

3. 数据质量检查

质量检查建议覆盖六个维度:完整性、唯一性、一致性、准确性、时效性、合法性。常用检查项如下表:

检查维度 检查项 示例规则 处理建议
完整性 关键字段空值率 mobile为空占比 < 2% 超阈值则回源补全
唯一性 主键重复 customer_id重复数 = 0 去重并保留最新记录
一致性 跨表字段冲突 同一客户性别在CRM与订单库不一致 按优先级取CRM值
准确性 手机号格式 符合^1[3-9]\d{9}$ 非法值置空并标记
时效性 数据延迟 last_order_time不超过T+1 延迟数据单独分区
合法性 枚举越界 客户等级仅允许A/B/C/D 越界值归入“未知”

4. 清洗方法

清洗不是“一刀切删除”,而是分层处理:

  1. 去重:按主键+更新时间排序,保留最新一条;对手机号相同但ID不同的记录,合并为同一客户。
  2. 补全:通过关联表回填缺失字段,如用订单库回填最近下单时间。
  3. 修正:格式错误、枚举越界、单位不一致的值进行标准化转换。
  4. 标记:无法修正的记录不删除,打上quality_flag,供后续人工复核或降权使用。

实战建议:清洗前后各跑一次质量报告,对比空值率、重复率、枚举越界率的变化。如果清洗后关键指标没有改善,说明规则未命中真实问题。

三、案例/场景:某零售企业名单重筛前的数据准备

某零售企业需要从存量客户中重筛出“高潜复购客户”。原始数据来自CRM、天猫订单、小程序和线下POS。初次合并后发现:

  • CRM中手机号为空占比8%,无法直接关联订单。
  • 订单库中“客户ID”与CRM“会员ID”编码规则不同,直接JOIN后匹配率仅35%。
  • “最近下单时间”在订单库为UTC时间,CRM为北京时间,导致活跃判断偏差8小时。

处理动作:先用手机号哈希作为桥接键,将匹配率提升到82%;统一时间字段为北京时间;对无法匹配的客户打上unmatched_flag,不纳入本次重筛但进入补全队列。最终重筛名单准确率从61%提升到89%。

-- 示例:手机号标准化与去重
SELECT
  customer_id,
  REGEXP_REPLACE(mobile, '[^0-9]', '') AS mobile_std,
  MAX(update_time) AS last_update
FROM raw_customer
WHERE mobile IS NOT NULL
GROUP BY customer_id, REGEXP_REPLACE(mobile, '[^0-9]', '')
HAVING LENGTH(REGEXP_REPLACE(mobile, '[^0-9]', '')) = 11;

四、误区与复盘

常见误区一:先清洗再梳理。没有数据源清单和字段映射,清洗规则容易遗漏关键来源,导致“洗了但没洗对”。

常见误区二:把空值一律删除。空值可能代表“未填写”而非“无效”,直接删除会丢失可补全客户,建议先标记再处理。

常见误区三:忽略时间口径。时区、统计周期、快照时间不一致,会让增量识别把老客户误判为新客户。

常见误区四:清洗后不做回归验证。清洗规则可能误伤正常数据,必须用抽样对比和指标监控验证。

复盘时建议回答三个问题:数据源是否全部覆盖?字段映射是否经过业务确认?清洗规则是否可解释、可回滚?只有这三项都成立,基础数据才具备支撑增量更新与存量重筛的可靠性。