数据开发流程规范

一、背景

在大数据发展时代,规范开发流程,能贴近业务属性、兼顾研发各阶段要点的研发规范,可以切实提高研发效率,保障数据研发工作有条不紊地运作。而不完善的研发流程,会降低研发效率,增加成本与风险。数据研发规范旨在为广大数据研发者、管理者提供规范化的研发流程指导方法,目的是简化、规范日常工作流程,提高工作效率。

二、数据开发流程及人员安排

鉴于对日常数据仓库研发工作的总结与归纳,将数据仓库研发流程抽象为如下几点:

  1. 需求阶段:业务部门或是需求分析师进行需求调研,形成需求文档,提交数据产品经理应如何应对不断变化的业务需求。

  1. 设计阶段:数据产品经理、数据开发者应如何综合性能、成本、效率、质量等因素,更好地组织与存储数据。

  1. 开发阶段:数据研发者如何高效、规范地进行编码工作。

  1. 测试阶段:测试人员应如何准确地暴露代码问题与项目风险,提升产出质量。

  1. 发布阶段:如何将具备发布条件的程序平稳地发布到线上稳定产出。

  1. 运维阶段:运维人员应如何保障数据产出的时效性和稳定性。

1、具体开发流程

  1. 需求:业务方或是需求分析人员进行需求调研,也各个业务部门讨论需求,输出需求文档。业务方把需求提交到项目组(如通过企业内部通讯录,邮件,或是项目管理软件如JIRA),并且和项目组沟通过。

  1. PRD评审(需求评审):产品评审PRD文档或是项目组评审需求文档。

  1. 技术方案讨论:一般是负责人先沟通一个初步方案方向,然后项目组一起讨论。

  1. 技术设计评审:测试人员一起参与技术设计评审。设计评审的原则是,评审会议应该是设计方案大家基本认同的前提下,做方案的文档。

  1. 设计接口:重点准确描述输入和输出。

  1. 模型设计(字段设计):根据需求定义字段,定义数据模型,并确定字段指标和获取来源,建立数据字典。

  1. 开发:开分支,写代码,一般是迭代开发。做好测试case的建立,然后自测。

  1. 代码review(代码评审):一般是整个项目组,一起进行代码评审,得出结果,目的是确保其中是否符合开发规范,确保逻辑无误,较少bug。

  1. 提测:自测完成后,将代码部署到测试环境,给测试人员提测(一般有项目管理工作台,通过项目管理软件提测),罗列测试点,以及测试方法,测试人员完成SIT测试(单元测试)和UAT验收测试(集成测试)后,出具测试报告,如有bug,测试人员会给相应开发人员提bug,如需修改,修改完重新提测。

  1. 上线:全部代码测试通过,封装到相应的分支版本下,提前告知运维,并编写上线流程文档(运行文件流程,报错回退流程等),提前申请机器资源,根据业务预估好CPU、存储、带宽等资源,由运维人员上线(有些项目也由测试人员上线)。

  1. 文档:开发完成后,文档记录一下流程以及提供数据表字段说明,方便重构。

2、数据需求流程

3、各个角色职责

作为数据开发人员,需要协调和各个角色之间的交互:

1)需要和产品评估该需求的合理性,现有技术栈能否支持该需求,例如:公司想要做个实时数据大盘,如果没有实时数仓的架构,是没法完成这块需求。一旦确定开发,需要协调资源,包含开发资源、设备资源等等。

2)需要和业务方、产品方评估数据可行性,数据开发的数据源并不是凭空出现的,需要和业务方明确已有数据能否支撑需求开发,如果缺少数据,则需要另行规划缺失数据的抽取方案。

3)需要自己评估技术可行性,数据开发可能涉及到数据传输、数据同步、ETL、实时开发、离线开发等等,要评估从数据源获取到数据展现一套流程的可行性,例如:数据源如果为多个地方产出,可能需要从binlong获取、Kafka读取、业务库同步、HDFS读取等等,数据输出也可能到各个地方,例如:mysql、hive、ES、Kafka、redis等等多个存储,需要在开发之前确定整套数据的流程。

4)需要确定是否满足安全与合规要求,对于一些敏感数据如何处理,是一个很重要的组成部分,作为数据开发人员,可能接触的数据比较多,但是哪些数据可以展现、哪些数据脱敏后可以展现、哪些数据不能落地等等,而且在数据流转过程中,也要关注数据的安全性,能否落地、能否转存等等。

5)需要和测试同学同步数据处理逻辑,并将一些逻辑的SQL进行文档化,方便测试同学进行单元测试,在交付测试之前,需要对代码进行自测,以便保障流入到测试执行环节的代码达到一定的质量标准。同时最好能让代码通过配置在不同环境进行切换,方便测试同学在测试环境、预发环境进行测试,测试通过后同一套代码能够直接上线。

4、日常数据支撑

除了项目式的开发外,数据开发人员大部分情况下都会面对产品提出来的一些临时性的数据需求,例如拉去一下近半年的销售情况、用户访问情况等等,这部分数据支撑不需要后端配合、可能也不需要进行测试,而是在已明确的数据指标的基础上,定期或者不定期的提供一个数据报表。

5、数据监控与告警

监控系统的一般套路:采集->存储->展示->告警。

监控系统对于大数据平台的重要性不言而喻,一般是对大数据整个架构、各个数据的输入输出流、中间件的稳定性、数据的准确性、资源的使用情况、任务的执行情况进行监控。一般的监控告警通过采集告警日志、错误数据、关键词匹配等获取错误的数据进行实时展现并告警。为了保证数据安全,每个团队只能看到自己的应用数据。同时对不同维度的数据,可以进行报警配置,根据最常用的报警方式,提供了钉钉报警、邮件报警、短信报警三种方式。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逗格

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值