1.4 数据中台开发流程

在这一节,笔者讲一下数据中台的开发流程,如图1-7所示。一个指标从口径的确认到上线、迭代都要经历图示的这些过程。

图1-7 数据中台开发流程

数据中台完成一个指标的开发需要经历11个步骤,分别是业务口径梳理、技术口径梳理、原型设计和评审、模型设计、数据开发、后端开发、前端开发、联调、测试、上线、迭代。接下来我们分别看一下这些步骤都是做什么的。

(1)业务口径梳理。这个步骤应该由数据中台产品经理来主导。产品经理需要与提出该指标的产品/运营负责人沟通,要问清楚这个指标有什么用、给谁用、业务流程是什么,还要确定指标定义、统计周期、计算方式等。不是所有的指标都有开发的意义,因为数据中台每做一个指标都会花费大量的人力资源,所以一定要考虑开发这个指标的性价比——投入这么多资源,能够给公司带来什么。

(2)技术口径梳理。这个步骤由模型设计师主导。首先,模型设计师需要理解数据指标涉及的业务逻辑,还需要理解指标定义、统计周期、计算方式等。接着,模型设计师需要与产品线的开发人员一起梳理数据指标涉及的表结构和字段,这个工作比较重要,一定要精确到字段级别,在确定好这些字段后,就能初步判定这个指标在技术层面能不能统计,如果不能统计,模型设计师应该主动告知产品经理:①目前这个阶段还没法计算相关指标,②做了哪些功能后才能计算这些指标。

(3)原型设计和评审。这个步骤还是由产品经理主导的。基于运营的需求设计原型,在原型设计完后,要经过内部评审和外部评审。在内部评审中,产品经理要召集数据中台的架构师、模型设计师、数据开发工程师、后端开发工程师、前端开发工程师、UI设计师、测试工程师,说明整个功能的价值和详细的业务流程、操作流程,确保大家理解一致。接下来,产品经理和运营人员要针对原型做一次外部评审,把有歧义的地方一并解决。对于比较重要的功能,产品经理需要发邮件让运营人员进一步确认,并同步给所有的产品/运营人员,保证大家的口径一致。

(4)模型设计。这个步骤由数据中台的模型设计师主导。业内一般会采用分层建模的方式对数据进行更加科学的组织与存储。模型一般分为5层,分别为ODS层(操作数据层)、DIM层(维度数据层)、DWD层(明细数据层)、DWS层(汇总数据层)、ADS层(应用数据层),这是业界对于数据分层的常用的模型。模型设计工程师要清楚地知道数据来源于哪里、要怎么存储。

(5)数据开发。这个步骤由数据开发工程师主导。首先,数据开发工程师要和模型设计师确定技术口径,明确计算的指标都来自哪些业务系统。接着,数据开发工程师通过数据同步工具将数据同步到ODS层,并一层层地汇总,从ODS层到DWD层,再到DWS层,直到最后把可以直接服务应用的数据填充到ADS层。另外,大数据开发工程的一个比较重要的工作就是设置调度任务——简单来讲就是配置指标在什么时候计算。数据开发工程师会写好计算脚本(比如按照“T-1”的方式每天凌晨处理前一天的数据等)。随着业务的增长,运营工作对于实时数据的需求越来越大,还有一些实时计算任务的配置也会由数据开发工程师完成。

(6)后端开发。这一步骤由后端开发工程师主导。后端开发工程师基于产品经理对功能的定义,输出相应的接口给数据中台的前端开发工程师或产品线的前端开发工程师。一般来说,最终对外提供服务的数据存储在ADS层,后端开发工程师一般是基于ADS层的数据将数据封装成对外服务的接口,后端开发工程师一方面要和数据开发工程师沟通好ADS层数据的存储结构,另一方面需要和产品经理沟通产品的功能、性能方面的问题,以便为使用者提供更好的用户体验。

(7)前端开发。这个步骤由前端开发工程师主导。在原型设计出来后,产品经理会让UI设计师基于产品功能原型设计UI。在功能界面最终定型后,UI设计师会给前端开发工程师提供切图。前端开发工程师基于UI的切图做前端页面的开发。

(8)联调。数据开发工程师、前端开发工程师、后端开发工程师都要参与这个步骤。一般来说,数据开发工程师要基于历史的数据执行计算任务并承担数据准确性的校验。前端开发工程师和后端开发工程师负责解决用户操作的相关问题,保证不出现低级的错误。

(9)测试。这个步骤由测试工程师主导。在完成原型评审后,测试工程师就要开始写测试用例,哪些是开发人员自测通过后才能交上来测试的内容、哪些是开发人员要再次自测验证的内容,都需要在测试用例文档上写清楚。此时有经验的测试工程师可以向运营人员要一些历史的统计数据来核对数据,不过运营人员的数据不一定准确,只能作为参考。在最终测试没问题后,产品经理可以请运营人员试用,如果在试用中发现数据准确性的问题则需要再进行一轮测试,以验证数据。如果问题都解决了,整个研发过程就结束了。

(10)上线。运维工程师会配合数据中台的前端开发工程师、后端开发工程师将最新的版本更新到服务器中。此时产品经理要找到该指标的负责人,令其长期跟进指标的准确性。对于重要的指标,每过一个周期还要再次进行内部验证,从而保证数据的准确性。

(11)迭代。数据指标上线后,随着公司业务的变化,指标的口径可能也会有所变动,所以也要定期盘点已有的指标,如果指标有变化,需要不断迭代,保证指标的准确性。