大数据开发学习文档(分布式文件系统的实现,大数据生态圈学习文档等): 文章专栏(点击跳转)
国科大学习生活(期末复习资料、课程大作业解析、实习经历等): 文章专栏(点击跳转)
离线数据开发流程
流程图如下:
专有名词解释:
PM:Product Management 数据产品经理,负责协调业务与开发对接,看板配置等工作
DE:Data Engineer 数据工程师即数据开发,负责数仓建设,数据驱动业务行为。
-
业务需求沟通阶段
首先业务方会以BRD文档的形式提出需求。初接触新业务时,我们首先要做的事就是弄清楚该需求的背景,弄清楚业务方真正想要的是什么。有时候对于某些业务逻辑,可能业务想要的数据并不合理,如口径没有拉齐等情况,这就要求我们给出建议,及时调整,确定一个比较清楚的业务需求。 -
技术方案产出阶段
如果有了明确的产品需求文档(PRD),接下来就进入到技术方案产出阶段。离线开发重要阶段,对于较复杂的业务需求来说,在产出技术开发方案的过程中可以明确业务需求需要用到哪些上游表,并根据这些上游表的特点来确定需要进行怎样的预处理(如何聚合、业务约束等),有时候这样的操作会避免后续开发过程中手忙脚乱、顾此失彼的情况。 -
开发阶段
- 明确业务需求。此阶段的难点不在于写代码而在于改代码:前期写好的逻辑,后期由于微调导致业务逻辑错误的情况时常发生!
不怕代码报错,就怕代码正常运行但是业务逻辑错误。要避免这一点就要求我们在业务层面做好理解,在修改某一段代码时需要考虑所有的业务逻辑是否符合需求。 - 分模块开发。对于业务需求数据,要弄清楚原子指标与衍生指标的区别,然后通过上游表的特点来确定哪一些指标可以放在一起来开发。对于一些在各个模块都会用到的上游表操作,要使用with…as来处理,以防止出现代码重复的情况,降低代码可读性。
- 此外,在开发过程中要考虑到多种业务情况,以免后续业务再调整逻辑而导致重复开发。
- 明确业务需求。此阶段的难点不在于写代码而在于改代码:前期写好的逻辑,后期由于微调导致业务逻辑错误的情况时常发生!
-
测试阶段
非常重要的一个阶段。在产出开发库hive表后,需要进行数据测试,通过产出的数据结合业务逻辑来确定开发的正确性。有时候可能在开发阶段发现不了的问题,在测试阶段就会暴露无疑。还有一种情况是业务上游表无权限,看不到数据。这时候盲写的代码正确性与否就无法得到保障,只能通过后续测试才能发现是否问题,然后及时修改。 -
看板配置阶段 归属于数据产品经理(DPM)
-
需求交付
当开发完成且看板配置完成后,就到了离线数据开发的最后一个阶段:需求交付。这个阶段我们要做的工作就是与业务方以及PM一起验收需求交付的看板或Hive表,解答业务方的问题(答疑)。 -
售后
需求交付后,等待业务或者运营验收,期间遇到的一些问题依然需要我们DE来解答。
完成以上7步后,恭喜你,终于完整的交付了一个需求!
16点21分 2024年8月26日
实习期间的离线数据开发流程整理
如有不妥欢迎评论区交流。