跳转到主要内容

号码状态查询结果的血缘:结论从哪来

业务方发来一个号码,问为什么把它从触达名单里剔掉了,可结果表里只有一行「不在网」,查询时刻、来源批次、判定口径都没有。这篇讲号码状态查询的结果该带哪几个来源字段、血缘缺失是哪三层造成的,以及被质疑时按什么顺序追溯。

数据治理约 1600 字

🎁 免费试用手机号码状态查询 API

直连三网运营商 · 准确率 ≥99.9% · 支持携号转网识别 · 按次计费即买即用

立即免费试用 →

业务方在群里发来一个号码,问为什么把它从触达名单里剔掉了。你打开结果表,只有一行:不在网。什么时候查的、哪一批任务写的、用的是哪家服务方、当时的判定口径是什么,全都没有。回一句「系统判定」很容易,但对方要的是一个能写进工单的说法。

更难受的是另一种情形:同一个号码在表里有两条结论,一条正常一条空号,两条都带时间戳,可都没有来源标记,谁先谁后靠猜,工单最后只能挂起。

号码状态查询一行结果的来源字段构成

结果表最早的设计几乎都是最小的:号码、状态、更新时间。这套结构支撑业务动作没问题,能不能打、能不能发短信,看状态就够了,字段越少写入越快。

说不清的原因有三层。第一层是没有查询时刻,只有更新时间,而这个时间会被后一次写入覆盖,同一个号码被查过五次,表里还是只有最后一条。第二层是没有来源,哪一批名单触发的调用、由哪个系统发起,写入方自己不记,事后也就没人能还原。第三层是没有口径,服务方的判定逻辑会调整,某类号码以前判正常、后来改判空号,表里那两条记录不会告诉你中间发生过什么。

三层叠起来,结果表就从一份可追溯的记录退化成了一张现状快照。日常看不出问题,出事那天就是硬伤。

最小可用的一组来源信息是五个:号码本身、判定结论、查询时刻、来源批次或发起方、以及判定所依据的服务方与口径版本。

号码与结论是原有字段,不用改。查询时刻要按调用发生的时间写入,而不是按落库时间,因为排队和批量写入会让两者差出几十分钟,追溯时这几十分钟经常就是关键。来源批次是连接名单与结果的纽带,没有它,一条结论没法回溯到当初那批号码。发起方用来区分是哪个业务系统或哪条定时任务产生的调用。服务方与口径版本是为了跨期比较,同一批号码前后两次跑出来的比例不同时,先看口径有没有变,再看号码本身。

代价要说清楚:表会变宽,写入方要按规范填,字段缺失时还得有兜底值。这里有个取舍,来源信息按批次冗余存一行也可以,不必给每个号码存一份完整描述,查询时用批次号关联即可。

只存状态的表与带来源信息的表差别

拿到一个号码和一次质疑,第一步是先定时间窗。问清楚业务方看到这个剔除动作大概是什么时候,把范围缩到几天,而不是把全表翻一遍。

第二步是按号码加窗口去调用流水里找那几条记录,看当时返回的原始状态码、用的是哪份凭据、耗时多少。流水表按天分区的好处在这个场景里最明显,窗口一划,扫的数据量就差一个量级。

第三步是回到批次。用批次号找出那批名单的入口文件、条数以及当时清洗规则的版本,确认这个号码进入查询之前是什么样子。不少争议的根子其实是清洗阶段把它当无效号段剔掉了,和接口判定无关,追溯方向错了会白费一天。

第四步才是比口径。如果时间跨度较长,先确认服务方的判定定义有没有调整过,再决定要不要按当前口径重跑一遍做对照。重跑要花钱,所以这一步放在最后。

四步走完,给业务方的答复里会有环节、有时刻、有依据,而不是一句「系统判的」。

争议号码追溯四步:窗口、流水、批次、口径

检验方法很简单:从结果表里随便挑一行,问四个问题——这个号码什么时候被查的、哪一批任务查的、哪家服务方判的、当时的口径是什么。四个答案都能在几分钟内找齐,血缘就是通的;有一个要问人才知道,说明该补的字段还没补。

血缘与保留期限是两件事,前者管说得清,后者管留多久,号码状态查询数据到期没删:保留期怎么落地讲的是后者;跨期比较之前该先做哪些对照,见号码状态查询口径改了:历史结论怎么办;如果争议出在一个客户对应多个号码上,见号码状态查询结果怎么归到客户:一个客户五个号。

用【号码状态检测接口】这类服务时,直连移动、联通、电信三网、八种状态、携号转网识别这些能力决定了结论的形态,鉴权走请求头携带 AppCode,按次计费、即买即用,字段含义与返回码口径以商品详情页文档为准;真正决定三个月后能不能说清楚的,是你自己那张结果表里写了什么。

边界还要再钉一句:号段由转售企业放号、卡片只承担设备联网、登记地落在境外运营商的号码,查多少次都不会产出结论,留在表里的往往是空值或缺省标记。这类行同样要带来源信息,否则以后连「为什么没有结论」都解释不了。

文章评论

发表评论

请先注册/登录后评论