数据治理-报表治理
报表治理背景
大家在开发中会遇到这样一种情况,我们的日常任务/数据表都是不断上线的,但持续上线会导致存储、计算资源飙升,导致部门每年资源预算都不充足,因此每年给大老板报预算时候预算都在增长,同时内部数据表、报表想下线时,由于不清楚有没有被使用,都被阻拦,因此产生恶心循环,目前线上报表大多数都是一次性的,可能是为了某个项目的业务侧阶段汇报、大老板想简单看个数据分布从而制定决策,因此对于无效报表、无效任务、无效数据表都可以进行治理优化,同时也需要对报表进行加速查询从而提效。
报表治理思考(治理前)
由于线上报表过多,同时很多报表业务方都在使用,如果直接上手则会导致业务投诉,因此需要先排查哪些报表还有存在价值->从而再去定位对应数据表、任务->下线后看到收益->梳理出核心报表再放入数据门户中。
报表梳理
在期初先梳理哪些任务下游有报表在使用,在网易easy data可以通过查看下游影响对象从而知道哪些数据表下游有报表进行捞取,可以直接通过元数据捞取。
如没有打通报表和数据源之间的血缘也可以手动去统计报表梳理报表使用方、核心等级、使用的数据表、最近7天访问等。
报表名称 | 报表用途 | 报表使用方 | 使用的数据表 | 最近7天报表访问量 | 报表截图 |
商品营销数据大盘 | 用于查看各类商品营销情况,方便运营活动策略分析 | 商品运营、数据分析 | ads_xx_xx ads_xxx_xxx | 13 |
报表确认
根据梳理使用情况后,可以根据7日访问小于等于2的报表进行治理,在治理之前还需与业务方进行沟通,如业务方觉得这个报表他做不了主则可以上升leader去问,如最终决定保留报表(需要给出理由)则可以约定不下线报表,下线任务缩短存储分区生命周期方便历史全量回溯。
报表治理流程(治理中)
报表下线
这里报表下线要区别是需要留存的报表还是可以直接下线的报表,这里有一定区别,可以直接下线的报表是跟业务方确认后完全没人使用及近7天访问量跌0的报表,可以直接点击报表下线,至于需不需要删除则看当前空间内部报表数量,例如空间存放的报表较少资源不足则可以。
报表对应数据表及任务下线/冻结
在确定要下线报表后找到对应ads表、ads任务,对于直接下线的报表可以直接下线任务(下线的任务一定是没有下游血缘的),对于数据表可删除,但下线的任务记得保留,可以备注已废弃,就怕未来可能要回滚。
对于不确定保留的报表可以保留报表,下线任务,缩短数据表生命周期例如保留7天,如果是核心任务场景报表也不清楚要不要下线可以不下线报表、缩短生命周期,取消基线配置,将任务时间定到午休时,这样不会影响线上其他任务使用资源还可以保障报表有数据。
报表资源治理
对于线上运行的报表有时运行很慢也会被业务方反馈,因此报表除了有效之外还需要查询高效
(1)对于报表首先需要看报表运行时间,网易有数具备报表运行检测功能,可检测出报表查询耗时方便观测,同时跑数据集时也有查询时间也可以通过此评测。
(2)对于未使用olap查询也需要改造,将原来通过maxcompute、spark运行改成olap加速(阿里云adb、star rocks),将ads表传输至olap中即可。
(3)预计算,语兴发现很多报表跑不动原因在于使用大量明细数据,都通过dwd直接连接,并在报表上去做指标,这样也会大大降低查询效率,可以先将指标计算好后在报表上展示,但对于使用多维度筛选尤其是时间维度时则需要慎重,例如审核数据报表,里面存在发布时间、审核时间(时间还会通过每日快照去变化),xxx时间等,如果通过预计算去跑则指标会被定死,导致不能灵活查询,因此对于这种数据只能限制map端,通过少读数据(限制时间+其他字段)减少后续计算压力,至于要读取dwd最近多少天的数据则可以与业务方商量。
同时对于5mi、30mi数据就不要走离线任务了,通过flink将数据落olap,在报表聚合当日数据,对于历史数据还读离线表即可,最终在数据集进行union all
select xxx ,xxx from dwd_xxx_xxx_ri --实时数据 union all select xxx ,xxx from dwd_xxx_xxx_df --离线数据
报表权限治理
报表权限隔离尤为重要,语兴建议这里按照空间隔离更好,例如基础中台一个空间、社区一个空间、金融一个空间,同时不同账号需要设置到对应空间权限,同时同空间报表也需要隔离。
但权限治理其实在语兴看来是挺鸡肋的一件事,如果是买三方服务例如阿里quick bi、网易有数都是有账号数量的,如果选择不对外展示那就要准备足够多的账号,最后会形成多个人用一个阿里云账号情况(这种情况在业务侧使用时遇到了多次),甚至还会相互借用,防了,但不一定防得住。
报表维护(治理后)
在治理后可以将核心报表维护到数据门户中按照主题域进行分类管理形成一站式管理,解决了业务方找不到核心报表问题。
同时报表治理也是持续性治理,后续可通过python代码将每周访问量低的报表推送给对应的负责人进行提醒,确认治理给予反馈及督促下线处理,当然治理还是长期的事,对于报表治理可以1年做一次清理打扫。
治理价值
(1)释放无用ads数据表、缩短数据表生命周期采用标准ttl总计40+,存储资源xxT,下线无用报表对应数据任务30+,降低夜间任务并行;
(2)释放无人使用报表资源20+,打造数据门户,完成近80+报表维护;
(3)通过预计算、olap切换、map侧限制实现30+报表平均返回时间从38s下降至10s内;
#java##数据人offer决赛圈怎么选##我想象的实习vs现实的实习##牛客创作赏金赛##实习必须要去大厂吗?#