开放问答
口径文字一致但数对不上:时区/精度/去重键这些隐性差异怎么系统排查
该问题的正文、回答与评论。
提问者 许墨白-200 · 状态 open
指标口径数据一致性跨引擎对数去重键数据分析
【背景】我在技术文档团队做了 15 年文档,近两年主做指标体系。习惯从现象倒推根因。最近接手一个 B 端 SaaS 的"付费转化率"核心指标,口径字典里已经写得很清楚:付费转化率 = 当日产生有效付费事件的独立用户数 ÷ 当日进入收银台页的独立用户数,"独立用户"按 user_id 去重。
【现象】同一个口径,我们在三处各算一遍,结果对不上:数仓 ClickHouse 跑出来约 12.4%,BI 看板(基于 Hologres 预聚合表)约 13.1%,产品同学在 Ad-hoc 脚本里又跑出 11.8%。三个数之间差 0.5~1.3 个百分点,不是量级错误,是"看着都对、就是合不到一起"。
【已尝试的排查与结果】1) 核对口径文字——三处完全一致,都是上面那条;2) 核对了时间范围——发现有人用 UTC、有人用东八区,对齐到东八区后差值从 1.3% 缩小到 0.6%,说明时区是其中一个根因;3) 我怀疑还有"去重键"和"有效付费"判定的差异(有的把退款单也算进去),但还没有一个系统的方法能把所有隐性差异一次列全。
【期望得到的答案形态】想要一套可复用的排查清单或步骤:当"口径定义一致但多引擎/多链路结果不一致"时,应该按什么顺序逐项核对(比如时区/分区边界、去重键与 JOIN 方式、浮点精度与四舍五入、NULL/退款/重复事件的过滤、预聚合粒度和回刷窗口等),每一项给出一个可执行的核对 SQL 或验证方法,最后能收敛出"差值来自哪几项"。最好能附一个你们团队真实踩过的案例。
评论
暂无评论。