离线和实时口径先对齐,两边出的数才敢放一起比
本帖最后由 我爱LV游 于 2026-11-7 01:20 编辑离线算一遍,实时算一遍,两边出的数却对不上,这种事在数仓里太常见。口径没对齐,实时和离线就成了两套真理,业务拿着两份矛盾的报表不知信谁。
一、口径先对齐
离线和实时口径先对齐,对齐了两边出的数才敢放一起比。不齐的话,实时说涨了,离线说跌了,跌涨矛盾,矛盾暴露出来业务首先反应是数仓出问题。定期对账不可少,对账能早早发现两边悄悄走偏的那点差异。写入延迟先量底线,量出来的那个数才是能答应业务的承诺。
对齐要从指标定义起,定义写一处,两路都引用这一处。写两处迟早两个版本对不上,对不上的那天,你分不清是实时错了还是离线错了,分不清就僵住。离线和实时口径先对齐,对齐了两边出的数才敢放在一起比。历史数据别随便删,删了那天要复盘早年的事就抓瞎。
二、偏差要有范围
实时和离线不可能百分百一致,要有容许范围,有范围才知道什么时候该人工介入。没范围,一点小差就报警,报警多了变成狼来了,真有大事反而被淹没。实时先出近似值,近似值留痕,留痕后离线核准再更正。写入峰值要压测,压测过的链路高峰才不丢数,不丢数才有信任。
范围要按指标定,有的指标天然波动大,范围放宽些,有的很稳,范围收紧些。一刀切的范围要么太松要么太紧,松紧失当都让人怀疑这范围怎么定的。同一指标定义写一处,写两处迟早两个版本对不上。敏感字段进湖前先去标识,去标识漏一项后面合规查起来头疼。
三、变更要同步通知
口径变更要同步通知两路团队,通知不到的团队照旧用老算法出数。老算法出的数和新的对不上,对不上排查半天才发现是有人没收到通知,收到通知早改了。对齐要有负责人,负责的人不出面,两个团队互相推说对方错了。乱序数据要有处理,处理不好算出来的数和实际对不上。
通知还要带上影响范围,带上范围对方才知道自己的哪些报表要复核。不带的,对方全量复核,复核一遍耗掉大半天,大半天里别的活全耽误。实时偏差要有容许范围,有范围才知道什么时候该人工介入。元数据先建起来,没元数据的湖就是一堆认不出名字的文件。
四、源头改了要传导
源头数据定义改了,要往下传导到离线和实时。传不到的下游还在用旧逻辑算,旧逻辑算出来的数和新的源头对不上,对不上悄悄混进报表。原始数据落湖前先定格式,格式乱了后面接的人全在填坑。写入和查询别抢资源,抢起来查询变慢,慢了业务就嫌弃。
传导要有机制,机制确保改一处全局生效,不全靠人记。人记容易漏,漏一处就多出一份歪数,歪数被引用一次就复制一次,复制多了难清理。对齐工作别拖,拖到两边差异大了再理,理起来费十倍力气。入湖失败要有重试,重试几次还不行就告警,别静默丢数。
五、定期对账
离线和实时要定期对账,对账能早早发现两边悄悄走偏的那点差异。差异小的时候好调,调一下就回来了,等到差异大得离谱,回来要推翻一串结论。数据来源要登记,登记清楚才知道哪份对不上时能找谁。实时表要能回溯,回溯不到那一刻,出了差额没法交代。
对账结果要留档,留档了哪次差异怎么解的,后来的人能查。不查的话,同样的问题换个人又踩一遍,踩一遍又解一遍,解的成本反复付。口径变更要同步通知,通知不到的团队照旧用老算法出数。不同部门的数据要能区分,区分不清就分不出谁动了哪份。
六、实时先出近似值
不更正的话,近似值一直挂着,挂久了被人当成准值用,用错了比一开始没有还麻烦。入湖频率按源来定,硬凑成统一节奏反而把实时源拖慢。
更正要有节奏,节奏别太随意,太随意用户看到的数跳来跳去。跳来跳去让人觉得数仓不稳,不稳的印象一旦建立,重建信任比建数仓还难。源头改了要往下传,传不到的下游还在用旧逻辑算。湖里数据量涨了要预估,预估晚了存储爆了比慢更让人慌。
离线和实时不是对手,是同一件事的快慢两道。对齐、范围、通知、传导、对账、近似,六件事做好,两道出的数才能互相印证,不是各说各话。 认真看完了整篇内容,感觉受益匪浅,期待楼主后续更多优质的分享。 不仅内容好,语气也很温和,这样的交流氛围真的很不错。 这样的优质帖子越多越好,希望论坛能多一些这样真诚的交流。
页:
[1]