报表任务治理计划

背景介绍

近些年来,大数据技术得到了很广的应用,支撑了业务的快速发展。作为大数据的平台部门,提供了大数据相关的基础能力,业务同学借助于大数据的底层赋能完成更偏向业务的需求开发。报表是大数据支撑最早最广的功能形态。先给大家介绍我们我们公司的报表产出组件图:


报表产出图
  1. 底层平台由HDFS、Yarn分别提供存储和计算支持
  2. 在这之上我们提供了一套支持MR、Spark任务开发、依赖执行的调度系统
  3. BI业务同学利用调度系统完BI任务的开发,最终这些BI任务完成后会把数据写到Hive中
  4. Tableau报表系统定时从Hive中读取数据完成报表的渲染

问题

平台部门的目标就是保证报表的按时产出,公司高层可以根据产出的报表进行决策和资源的合理分配。
接下来我们看看报表的稳定性面临哪些问题,哪些系统的会最终造成报表产出,让我们看一份大图。


报表全程图

tableau报表处于整个数据应用的最上层,下面依赖的数据源、数据仓库、调度任务任何一个环节延迟都会导致整个报表的产出延迟,我们来细分下

数据源
  1. 业务表计算延迟
  2. 数据同步任务本身缺陷
  3. 业务库字段变更,同步出错
数据仓库
  1. 数仓任务调度延迟
  2. 数据计算逻辑错误
  3. 数据量增大,数据计算产出时间变长
  4. 上游依赖变更,数据错误
调度系统
  1. yarn资源不足,大量任务等待
  2. 报表新增依赖,下游调度任务开始时间变慢
  3. 无用任务占用太多资源
  4. 用户使用不规范
  5. 大数据平台本身故障
  6. 误操作
  7. 不合理的上游依赖
Tableau
  1. 用户密码变换
  2. 队列资源不足
  3. 部门间任务相互影响,一个部门的超时任务会影响其他部门的

治理思路

上面的任务按照责任主体划分可以分为业务方和平台方。比如业务SQL逻辑错误、依赖新增等属于平台方责任,而队列资源设置不合理、平台工具逻辑错误、公共数仓产出延迟、集群变更导致延迟属于平台方问题。

  1. 大数据的思路治理大数据。分部门统计资源消耗量、报表数、错误报表数,数据透明清晰,便于沟通
  2. 驱动用户自运营。也可以从两方面考虑,一方面是一些给用户带来满足的手段,比如部门质量排名情况。一方面是恐惧的压力:限制最大资源数、最大报表数量
  3. 平台提供工具,报表的产出的准点负责方应该是业务方。

怎么做

我准备分三部分来介绍我们的方案,分别是问题预防、问题诊断、问题快修复。

问题预防

  1. 业务SQL修改后必须试跑成功后才能上线
  2. 依赖部门外任务必须要上游同学审批同意
  3. 用户名密码改编后及时知会用户修改相应的报表配置信息
  4. 核心报表的产出时间延迟趋势监控
  5. 复杂度、部门总体运行情况查看
  6. 队列划分合理,避免不同业务优先级之间相互影响

问题诊断

  1. 系统监控。监控整体的任务的整点的成功率、超时失败任务数
  2. 细粒度监控。提供功能让用户能针对高优先级的报表进行监控

问题快修复

  1. 统一地方查看报表延迟在哪一个环节
  2. 提供工具快速完成问题修复

你可能感兴趣的:(报表任务治理计划)