数仓实习实战|医疗报表电话指标缺失,完整上游排查思路
今天碰到一个问题患者档案里明明有联系电话但是最终报表展示的时候这个字段就是空的。跟着师哥一步步排查下来思路清晰了很多也把完整的排查逻辑整理了一下以后遇到类似问题可以直接参考一、问题场景业务报表需要展示患者联系方式但是实际生成的结果里电话指标一直缺失。已知档案表中是有电话信息的所以问题大概率出在数仓分层或者数据关联的某一环上。排查的核心思路就是不盲目改脚本先锁定单个人的数据沿着数据链路一层层往上找断点。二、整体排查思路先在当前报表的SQL逻辑里排查不着急跳出业务链路如果确认关联、字段都没问题再往更底层的数仓表追溯找到数据从哪一层开始丢失这样定位效率最高也不会乱改乱动。三、完整排查步骤1. 锁定测试数据精准定位单条记录排查的时候千万不要全量跑数据很容易看花眼。直接选一个档案里确定有电话的患者用姓名ID精准过滤只盯着这一条数据查所有判断都围绕它展开这是最稳的方式。2. 在报表SQL内部排查关联逻辑先找到电话字段在SQL里的来源表一般不会在检验报告主表里而是通过 JOIN 关联过来的患者信息表。先把完整SQL跑一遍看电话字段是不是为 NULL。如果有值说明只是脚本没把字段加进去或者前端没配置展示如果是 NULL就继续往上查每一层关联是否正常关联字段是否匹配有没有因为关联方式导致数据被过滤掉。3. 逐层向上核对每一张关联表顺着SQL里的关联关系从报表用到的表依次查患者信息表、患者电话表看哪一层开始没有电话数据。只要前面的表都有到某一层突然为空问题就出在这一层的关联或者数据本身。4. 跳出报表逻辑向上游底层表排查如果前面的关联都没问题就要继续往数仓更底层查也就是用来生成指标的BIT/DWD层基础表。这些底层表是指标的真正数据源上层所有报表都是从这里取数。只要这一层没有电话后面再怎么关联都不可能取到。四、最终问题根因排查到最后发现问题并不在报表SQL的关联逻辑上而是用来生成电话指标的BIT层底层电话表本身就没有这条患者的联系方式。源头表没有数据上层指标自然为空属于底层数据采集或同步的问题不是报表脚本的问题。五、排查总结以后再遇到指标缺失类问题基本都可以按这个思路来先查报表脚本本身有没有漏字段、关联错误再查每一层中间表是否正常最后定位到数仓最底层的源头表。大部分情况要么是关联断了要么是底层压根没数据顺着链路往上查很快就能定位。六、实习小感悟刚接触数仓排查很容易慌其实逻辑很固定就是沿着数据血缘一层层追溯。不用上来就改脚本先定位断点在哪一层再判断是开发问题还是源头数据问题。多练几次对分层和链路的理解会快很多
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2480079.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!