本文为数据茶水间群友原创,经授权在本公众号发表。

关于作者:我是水大人,资深潜水员,一个基于开发、面向分析、走向全栈的饱经摧残的数据新手,爱折腾不爱玩,爱总结爱思考的老兵,错了改改了又错的惯犯。

0x00 前言

报表开发在很多的数据从业人员看来几乎都或多或少的要涉及,也广泛被认为是最没技术含量,最容易被替代的。其实在各大招聘网站上也找不到报表工程师这个职位,但是它却隐藏在大数据BI工程师、数据分析师、数据开发工程师等JD的要求上。而且广泛的被数据分析师来承担成构建数据监控体系来一言以蔽之。个人认为,搭建产品的基础报表体系是大数据BI工程师的主战场,数据分析师只是在基础的报表体系基础上完善开发专题分析的报表。然而由于现在的数据工作并无明显的界限划分,但严格来说,一个产品的基础数据体系搭建是大数据BI工程师的正统职责。本文以报表工程师自我修养的目标——大数据BI工程师,介绍报表工程师如何提高自我修养。

通过本文的阅读,你将获得以下四方面的认知:

1.BI工程师日常工作

2.BI工程师技能分解

3.BI工程师注意事项

4.BI工程师职业发展和思考

0x01 BI工程师日常

大数据BI工程师的日常工作可简单总结如下:

  • 数据体系

协助数据产品、分析师完成数据体系蓝图的搭建,将指标定义准确落地形成高可扩展的统计代码。快速搭建新增、留存、活跃、回流等基于用户型产品的大盘体系,辅助LTV、用户价值、用户分层等体系的建立。

  • 接收报表需求进行报表开发

BI工程师的重点职责,报表需求评审完后,将报表定义的指标口径严格落实成代码逻辑,开发数据集市,并使用报表开发工具进行BI报表配置。报表开发是数据开发最直观的成果体系,因此也被戏称为”表哥表姐“。

  • 接收埋点需求进行埋点设计

埋点设计工作是BI工程师的重点工作之一。参与埋点需求评审等阶段,将数据产品转化的或者直接对接产品,将数据采集需求准确无误地落实成埋点设计,供业务开发进行埋点设计参考,过程中会进行埋点释疑沟通,确保业务开发准确无误地理解埋点设计,同时后续也会参与到埋点验收。需要说明的是埋点的整个流程数据开发未必会全程参与,但是埋点设计这一环一定得是数据开发主导。

  • 负责日常数据正常产出,发现问题并及时定位

报表数据正常产出是BI工程师的日常例行工作,但是ETL延迟、计算错误等情况都会影响其正常产出,此时
要依据数据血缘及时定位和解决问题,虽然也有任务自动调度的加持和任务异常的预警,但并不是全能的,大多时候还是需要大数据BI工程师介入,此外某个任务的计算优化,提高数据产出的效率,也是大数据BI工程师的职责之一。

  • 指标异常波动分析

虽然指标异常波动分析,很多时候都会作为数据分析师的专题来进行,但牵涉到数据异常、计算异常的情况下,首先由大数据BI工程师进行排查。

  • 临时提数需求

BI工程师的工作会和数据产品、数据分析师重叠,承接一部分底层数据的提数,比如用户行为log、上报行为排查等

0x02 BI工程师技能分解

基础能力

技术能力:

linux、shell、sql(mysql/hive/spark)、excel、python/r、tableau/powerbi

沟通能力:

1.埋点必要性的质疑

2.埋点上报时机的讨论

3.数据报表指标定义讨论

数据埋点

直接对接产品、数据产品或者只看埋点文档进行开发,在不同的公司可能不同的人员负责,有的是数据产品负责、有的是数据分析师负责、有的是数据开发负责。不管分工如何,个人认为埋点设计的最终确定应该由大数据BI工程师负责,其它人员负责埋点需求的转化,保证采集信息全面准确。这是因为和埋点上报数据打交道最多的还是BI工程师。

数仓设计

数据仓库是数据开发的骨架,很大程度上决定了整个数据开发的高度。而这个地方往往也是最容易被忽视的,为了快速的完成报表开发任务,各种拼凑组合,或者从几近ODS层不断的重复相同的处理操作,数据表混乱冗余。尤其是当数据人员流动大的时候,没有好的数仓设计思想和文档沉淀,后人很难复用前人的工作。“前人不暇自理而后人骂之,后人骂之而不鉴之,以示后人而复骂后人也。”循环往复的怪圈,而数仓的质量一直没有改善。

不管是利用维度建模或者是ER建模,结合自己业务的特点,进行数仓的分成、分线、分主题的设计。并将设计沉淀成数据字典手册、数据血缘图等,对提升数据开发效率、数据表鲁棒、减少数据不一致,提高排查问题的效率都大有裨益。

数据可视化

BI工程师的显而易见的成果就是数据报表,而数据报表就是可视化,具备一些基本可视化知识,会让设计的报表更具表达力。此部分虽然很受限于公司的报表系统,但图表类型的选择、图表格式的调整、图表颜色的搭配仍有可发挥的空间。

0x03 BI工程师注意事项

开发和治理并重

数据开发和数据治理要并重,不要只顾着开发,而不管数据治理。大多数的数据问题在开发阶段都可以避免,不要等到污染了,数据质量问题一大堆才想起治理。为此在数据开发的过程中要遵循以下规范:

1.代码规范

2.数据字典的维护

3.数据血缘梳理

4.数据指标口径定义和维护

5.数仓规范

参与制定规范,并将规范落地,具体设计的表的命名、数据表的存储周期、表的安全管理

6.报表生命周期管理

不要只顾着做报表,而不去梳理报表之间的关系,及时下线或者更新旧报表,数据报表的简单堆积,只会造成满眼尽是报表而无数据可看的境地。

此外,输出一些规范化的文档,比如埋点需求模板,报表需求模板,降低非规范化带来的沟通成本。

维护数据业务手册

“程序员最烦的四件事:写文档,写注释,别人没写文档,别人没写注释”,维护数据业务手册,介绍数据的运转体系。包含以下内容:

1.数据现状

数据存储地址、数据开发方式、数据工作相关人员构成(数据产品、数据测试、业务开发、产品等)

埋点处理流程:团队共用,提供链接即可报表需求处理流程:团队共用,提供链接即可

2.重要指标

核心指标计算链条,口径定义

3.重要维表的更新方式

尤其是手动维护的维表,一定要写清楚维表的更新时机、更新方式,和该维表的影响

4.BI工程师有哪些需要规避的问题

每个数据项目都有坑,记录下来这些坑,让后继者规避。

5.数据平台的相关的使用和注意问题

数据平台往往也有自己的手册,此处提供链接指向即可,再加上自己在使用平台过程中遇到的问题和相应的解决办法。

维护数据业务手册的目的,一则帮助自己梳理数据体系,发现潜在问题。同时也是一份极好的传承文档,帮助后来人快速了解数据全貌、运行流程、展开数据开发工作。

沉淀方法论

将业务中的问题的解决过程沉淀成方法论,以后遇到同样的技术问题可以快速套用进行解决

1.数据故障问题和相应的经验教训,规避措施

2.指标异常波动的分析思路,分析方法自动化

方法论沉淀的目的,一则是提高同类问题发生时定位排查解决类似问题的效率,二则是在问题未发生时,提前采取规避措施,避坑。

另外一方面是跟着产品或者运营,观察采用了哪些措施进行拉新、提高留存、提高转化率等,而这些经验不仅仅是产品设计功能或运营活动的思路,也是自己分析问题的思路,从这个角度出发,也最容易对业务发展产生直接的推动作用。

比如说新增用户次日的留存率环比降低了,有哪些方法论可以去排查定位问题,其思路就有如下:

  • 基础排查

    • 数据上报、入库和计算是否异常

    • 是否存在功能服务故障

    • 产品功能更新、运营活动、中控配置等

    • 节假日、影响产品功能的社会热点

  • 扩展排查

    • 横向:

      分渠道、分用户群(可能存在大量低质用户群)

    • 纵向:

      核心业务上下游漏斗关系、历史同期

0x04 BI工程师职业发展思考

正如序言中所说,纯粹配置报表的任务很容易被自动化替代,尤其是现在自助BI发展的,简单的进行托拉拽即可完成报表的配置,连SQL都不用写,BI工程师的职业发展概括起来是一个中心,两条路。一个中心是以业务为中心,两条路是从报表出发往数据的上游走和往数据的下游走。

贴近业务再贴近业务

BI工程师直面业务,数据的终极目的导向也是业务导向,要么驱动业务用户增长,营造用户生态;要么推动收入增长,持续为公司创造收入。BI工程师与数据分析或者数据挖掘工程师相比,有着得天独厚的接近业务的优势,从功能策划上的产品改动、埋点需求上数据采集的方案的制定、报表设计上反映业务状态的指标,无一不是与业务强相关,而BI工程师几乎全程参与。

因此BI工程师的核心竞争力也在于对业务的理解,能根据业务的特点,快速设计并搭建一套最小化可运行的数据体系。

此外基于业务和技术积累,结合新业务的特点快速将一套最小化可运行的数据体系部署,也是大数据BI工程师的一个核心技能。

BI工程师最切忌的是不要把报表数据自动化产出当成自己的全部任务,以为只要数据正常产出就万事大吉高枕无忧了。这只是BI工程师的基本工作,不追踪数据后续的应用价值,就像辛辛苦苦从种子培育到果子快成熟了,却放弃了,被数据分析师、数据运营等截胡了,十分的可惜,沦落为纯粹的“表哥表姐”的BI工程师的职业发展是暗淡无光的。

增强上下游一体化能力

数据采集(埋点设计)、数据模型(数据加工处理的方法论)、报表(数据展现)是一个整体,单做报表是很难看到数据的全景,BI工程师看到数据全景有两条路:往上游走,往下游走。

  • 往上游走

报表的产出并不是简单的写sql或者托拉拽就了事的,要关注数据产生的链条,做到知其所以然。而数仓建设就是描述数据的存储加工计算的方法论,再往上走就是业务原始需求和转化(埋点设计),埋点管理、设计的本质是采集到更全面、准确的数据,为数仓建设大厦提供原材料,从这个角度来说,数仓是上游任务的核心。

  • 往下游走

虽然在配置报表的时候已经获得了一部分业务方关注的重点,但业务放如何看报表,指标间的关系是怎样的,指标的波动说明了什么,这些涉及报表使用和报表价值的跟踪,则需要BI工程师主动去挖掘了。

往上下游走,最终的目标是从业务中来,到业务中去,形成数据体系闭环,同时完成业务闭环,拥有全链路能力的BI工程师才能称为数据的owner。

综述,数据行业相比于其它行业,更需要全栈人才,懂业务又懂数据开发的人才是难得的,关注追踪数据驱动业务的价值和数据赋能,应该是每一个数据从业人员心中的灯塔。

0xFF 总结

大数据BI工程师是数据应用开发的一部分,不同于数据平台开发,其基本职责是高效及时准确的数据采集、数据处理、报表产出,以报表反映业务状态,持续助力商业BI,驱动商务智能。此外为数据分析师和数据挖掘师提供高质易用的底层数据。不同公司对该岗位的定位和要求也不一样,其工作职责范围也不尽相同,但都不要限制自己为“表哥表姐”,往上下游走,做数据体系的实施者;贴近业务,做有价值的数推官-大数据BI工程师。

更多内容:

数据团队思考:数据驱动业务,比技术更重要的是思维的转变

数据团队思考:数据团队的工作内容

关于「数据分析师」的一些理解

数据分析师做成了提数工程师,该如何破局?

警惕,导致数据仓库失败的六大原因!你占了几条?

闲聊数据库和数据仓库的区别

数据对业务价值帮助的一些思考

数据仓库实践之业务数据矩阵的设计

漫谈数据仓库和范式

一种通用的数据仓库分层方法

《七天数据埋点之旅》指引篇

遇到不喜欢的工作,该怎么办?

“报表工程师”的自我修养相关推荐

  1. 免费下载!《阿里工程师的自我修养》公开10位阿里大牛解决问题的思维方式

    简介: 今天,阿里技术公布一波阿里P8.P9技术大牛的思维模型,将他们的思维模式呈现出来.你可以在阿里资深专家职业生涯的真切感悟中,找到应对危机的最佳方法.<阿里工程师的自我修养>现已正式 ...

  2. AI工程师的自我修养

    原创:晏茜 资料来源:Lee AI 行业如今是一个炙手可热的行业,也许有一些正从事或曾经从事于其他行业的同学,希望能有一个更好的职业选择,而 AI 行业正如火如荼的发展,他们想加入 AI 发展的浪潮, ...

  3. 一名数据仓库工程师的自我修养

    一名数据仓库工程师的自我修养 第一次写文章 该学的一些技术框架(注意,是必须要会啊.至于怎么学,之后帖子会写的.) 第一部分:首先是工具类的介绍(划重点,要考的!!!!!!!) 第二部分:编程语言类 ...

  4. oCPC实践录 | 广告算法工程师的自我修养

    ​这是AITBOOK的第31篇原创文章 2019年即将过去,2020年马上到来,在这个时候做一下总结,发一下展望是最合适不过的.2019年互联网广告的发展已有人总结为令人失望,2020年估计也好不到哪 ...

  5. 持续测试下测试工程师的自我修养

    在持续测试不断实施的情况下,测试方法论.测试实践.测试技术都在快速发展和迭代,因此对于每一位测试工程师来说,持续学习就变成一个不得不说的话题.下面将从测试理论基础知识点出发,介绍持续测试下测试工程师的 ...

  6. 前端工程师的自我修养:React Fiber 是如何实现更新过程可控的

    前言 从 React 16 开始,React 采用了 Fiber 机制替代了原先基于原生执行栈递归遍历 VDOM 的方案,提高了页面渲染性能和用户体验.乍一听 Fiber 好像挺神秘,在原生执行栈都还 ...

  7. 《Web全栈工程师的自我修养》读书笔记

    <Web全栈工程师的自我修养>读书笔记 [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://w ...

  8. 安全服务工程师的自我修养

    安全服务工程师的自我修养 原创: 安全因果律 安全因果律 11月3日 原版链接:https://mp.weixin.qq.com/s/_6lAx43blXzQhIzGDtM9DQ 第一篇文章,聊一下安 ...

  9. 《阿里工程师的自我修养》笔记

    对标行业精英,有太多值得学习的地方.当你觉得写了2年3年代码技术还是停滞不前的时候,是时候多学习下优秀的人的经验了. 以下是近日读<阿里工程师的自我修养>的笔记,有些概念性的东西是需要结合 ...

最新文章

  1. Cash Shuffle初次测试成功,BCH隐私研究逐步推进
  2. Python中的高级变量类型
  3. Golang之Go Module使用
  4. 数据库基础知识——数据库的相关概念
  5. 自动化部署工具PUPPET介绍
  6. python怎么输出数组全部数据_打印numpy数组的全部内容
  7. 基于ConvLSTM的伦敦空气质量预测(1) 数据处理
  8. php7.4 微信小程序获取手机号
  9. python算法之归并排序
  10. 【转】【OPenGL】OPenGL 画图板-- 中点算法画圆
  11. java web 21_JavaWeb——day21
  12. 2021MathorCup高校数学建模挑战赛——大数据竞赛的一些想法总结
  13. netperf使用笔记
  14. IC面试数字电路基础
  15. 火狐浏览器“正在检查您的附件组件与Firefox此版本的兼容性” -- 解决方案
  16. 云服务器上硬盘是虚拟的吗,虚拟硬盘映射在主机上使用
  17. Android Behavior
  18. js substring、substr和slice 截取字符串
  19. Java实现电脑屏幕的截取并保存成图片
  20. 1u服务器系统风扇,1U工控服务器机箱介绍

热门文章

  1. 每日三个笑话-20151006
  2. fileupload文件上传用法概述
  3. Vue+Django搭建网页学习
  4. java实现通话_Java做一个最简单的通话程序
  5. Linux下的网络设备驱动
  6. 分布式与集群的区别究竟是什么?
  7. 实验二 熟悉pandas库的应用
  8. 利用ASP显示当前在线人数
  9. 在nodejs中将GBK转UTF
  10. Paper for kindle-一款切割pdf的工具