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. 清洗方法
清洗不是“一刀切删除”,而是分层处理:
- 去重:按主键+更新时间排序,保留最新一条;对手机号相同但ID不同的记录,合并为同一客户。
- 补全:通过关联表回填缺失字段,如用订单库回填最近下单时间。
- 修正:格式错误、枚举越界、单位不一致的值进行标准化转换。
- 标记:无法修正的记录不删除,打上
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;
四、误区与复盘
常见误区一:先清洗再梳理。没有数据源清单和字段映射,清洗规则容易遗漏关键来源,导致“洗了但没洗对”。
常见误区二:把空值一律删除。空值可能代表“未填写”而非“无效”,直接删除会丢失可补全客户,建议先标记再处理。
常见误区三:忽略时间口径。时区、统计周期、快照时间不一致,会让增量识别把老客户误判为新客户。
常见误区四:清洗后不做回归验证。清洗规则可能误伤正常数据,必须用抽样对比和指标监控验证。
复盘时建议回答三个问题:数据源是否全部覆盖?字段映射是否经过业务确认?清洗规则是否可解释、可回滚?只有这三项都成立,基础数据才具备支撑增量更新与存量重筛的可靠性。