做跨境业务时,名单很少只有一种号码形态。同一份表里可能同时出现中国大陆号、英国号、泰国号,有的带 +,有的带 00,有的还保留了本地拨号时的前导 0。这时如果只做“单元格完全一致”的去重,漏判和误判都会很高。
全球号码批量去重的关键,不是把所有数字压成一串,而是先识别地区,再按该地区规则做规范化,最后才进入库比对。
为什么字符串相等不够用
下面这些写法,对用户来说经常是同一个号,对表格来说却是不同文本:
+44 7700 9001230044770090012307700 900123(英国本地格式,前导 0)
中国大陆号也常见 +86、86、11 位本地号混用。不先处理国家码,历史库里已经存过的客户,会在新名单里再次出现。
批量任务开始前,至少要明确两件事:
- 这份名单默认地区是什么
- 遇到已带国家码的行,是否以号码自带地区为准
手机号码去重怎么做 里强调过主字段和来源标注,全球场景还要再加一列:地区或国家码。
规范化建议按这个顺序
处理国际号码时,比较稳妥的顺序是:
- 去掉空格、括号、短横线等分隔符
- 识别
+或00开头的国际前缀 - 按地区规则处理本地前导 0
- 补全或校验国家码
- 再与号码库做唯一性比对
不要在第 1 步就把所有前导 0 删掉。某些地区的有效号码本身就会以 0 之后的数字开头,粗暴裁剪会把不同号合成一个。
180 多个地区的格式差异,不适合每次让运营手写规则。号码去重 把多地区格式放进引擎里,导入时按任务选择“全球号码 / 严格去重”这类模式,减少每次重新发明规则。
批量任务怎么拆,才不容易乱
建议按批次而不是把全年数据一次性丢进去:
- 先小批量试跑。200 到 1000 行足够暴露格式问题
- 按来源拆任务。不同供应商的书写习惯不同,混在一起更难定位
- 保留原始列。规范化结果和原始号码都要能导出,方便对账
- 单独处理异常行。长度不对、缺国家码、含字母的记录不要和有效重复混在一个结果集
任务结果至少分成:通过、重复、格式异常。只给一个“重复率”数字,后面排错会非常慢。
多地区号码库怎么维护
全球号码库一旦开始用,维护重点会从“怎么导入”变成“怎么避免规则漂移”:
- 新地区上线时,先用该地区真实样本验证,再开放给全员
- 同一员工不要用两套互相冲突的国家码习惯
- 历史数据如果早期没有国家码,补全时要打标,避免静默改写
- 存储和查询分开看:写入可以批量,查询要能秒级返回,否则值守时没人愿意用系统
如果你已经在评估自建还是继续找人洗文件,可以对照 自建号码数据库 和 产品定价。一次买断、数据留在自己服务器上,更适合把全球号码当成长期资产来管。
常见问题
所有国际号码都应该存成 E.164 吗?
E.164(+国家码+本地号)适合作为内部唯一键。前台展示仍可以按当地习惯格式化,但库内比对不要混用多种存储形态。
严格去重和宽松去重有什么差别?
严格去重通常要求规范化后完全一致才判重复;宽松策略可能忽略某些前缀或符号。业务若涉及计费和投诉,优先从严格规则起步,再用小样本看漏判。
可以先看多地区任务怎么跑吗?
可以访问 demo.hmqc.cc 查看实时预览。需要按自己的地区包部署时,联系 Telegram @imchat。