3000字梳理大数据开发流程及规范(建议收藏)

点击上方 "大数据肌肉猿"关注, 星标一起成长

点击下方链接,进入高质量学习交流群

今日更新| 1052个转型案例分享-大数据交流群

c7c9a020aae6e406f1af71113c6c5800.png

来源:五分钟学大数据

全文共 2933 个字,建议阅读 分钟

在大数据时代,规范地进行数据资产管理已成为推动互联网、大数据、人工智能和实体经济深度融合的必要条件。贴近业务属性、兼顾研发各阶段要点的研发规范,可以切实提高研发效率,保障数据研发工作有条不紊地运作。而不完善的研发流程,会降低研发效率,增加成本与风险。

数据中台数据开发规范旨在为广大数据研发者、管理者提供规范化的开研发流程指导方法,目的是简化、规范日常的数据中台管理和开发工作,提高工作效率,减少无效与冗余工作,赋能企业、政府更强大的数据掌控力来应对海量增长的业务数据,从而释放更多人力与财力专注于业务创新。

01  数据开发流程

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

  1. 需求阶段:数据产品经理应如何应对不断变化的业务需求。

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

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

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

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

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

具体开发流程

  1. 需求:与运营产品讨论需求。业务方把需求提交到JIRA,并且和产品沟通过。

  2. PRD评审:产品评审PRD文档。

  3. 技术方案讨论:最好是负责人先沟通一个初级的方案,然后找大家一起讨论(可能比直接头脑风暴效率搞,根据负责人的经验来讨论);然后找大家一起讨论。

  4. 技术设计评审:设计评审叫上测试。

  5. 设计评审的原则:评审会议应该是设计方案大家基本认同的前提下,做方案的文档。

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

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

  8. 开发:开分支,写代码。做好测试case的建立,然后自测。

  9. 代码review:叫上测试和一个其他开发同学,给出review的结果。目的是让其他同学帮忙review其中的逻辑。

  10. 提测:给出提测报告,包括罗列测试点。

  11. 上线:提前告知运维,提前申请机器资源,根据业务预估好CPU、存储、带宽等资源。

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


02 数据需求流程

ac62a1f7b8cc0f1c626e8ff48dd4af05.jpeg

各个角色职责

44e2da11eb9109400d6fa3810f81d13d.jpeg

这个流程针对的是项目是开发,在项目立项的开始,就需要明确各个角色的职责,而且需要和多个角色进行配合。作为数据开发人员,需要协调和各个角色之间的交互:

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

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

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

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

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

03 日常数据支撑

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

  • 明确数据需求模板、常规需求申请单等等,提供需求单的目的是避免长时间的沟通,特别是已经有的数据指标,只需要让产品提供一份详细的数据需求单,按照需求单的模版进行提供数据即可。模版如下:

50cbe44ba47a725e1f7cfcd01e64671b.jpeg

指标需求中通常会涉及到下表中的约定项,如果需要自定义约定项,可以在自定义格式列进行填写。

0b2eda40980124d048b2ecf243c542ce.jpeg
  • 明确需求的指标含义,和所需求的字段明细、统计周期、开发周期等。

db25e7435280cb48a9505229af33793b.jpeg

04 注意事项

  • 需求评审完成后,如果发生需求变更或者迭代,一定需要提供迭代/变更的需求申请单,或者提供JIRA,避免需求不可追溯。

6fb58175a34969de8e3f9b08e7ef1fb3.jpeg
  • 对于一些重要指标的定义,就算文档中写了,也要和产品进行确定,例如产品需要近半年的所有销量,那么要明确这个销量是否包含退款、是按照成交时间还是付款时间来计算等等。避免数据指标不匹配,导致二次开发。

  • 开发过程中,文档要规范,先设计在开发,而且在做系统建设的时候,要有全局视野,不局限某一个点,并不是发布完成了,就算结束,代码开发完成只是第一步,后续的文档建设、代码复盘、数据监控、数据告警、稳定性等等,都需要在开始规划好。

  • 及时反馈,在开发过程,不论进行到哪个阶段,项目期间每天都需要和前后端同步一下进度,避免延期的风险。

  • 故障处理,在程序上下后,可能会因为客观或者代码的原因出现一些BUG,不同的故障处理方案不同,但是注意复盘和故障记录,避免下次出现相同的BUG。

故障等级定义:

P0 :
1.全局问题,影响所有用户,例如系统必现崩溃,主要功能不可用,严重影响用户正常交易。
2.涉及到用户资金损失的问题。
解决时间:2小时内。
反馈时间:0.5小时。
反馈方式:comments自动邮件方式+即时通信:例如QQ\微信\钉钉\电话

P1:
1.全局问题,影响所有用户,例如系统次要功能不可用,系统偶现崩溃且崩溃率超过50%。
2.局部问题,影响超过20%的用户,例如系统主要功能不可用,系统必现崩溃。解决时间:待定不过夜。
反馈时间:1小时。
反馈方式:comments自动邮件方式+即时通信:例如QQ\微信\钉钉\电话

P2:
1.局部问题,影响用户10%-20%,例如系统次要功能不可用,或者系统某一个逻辑不可用,系统崩溃率20-50%。
解决时间:待定48小时。
反馈方式:comments自动邮件方式。

P3:
1.局部问题,影响用户10%以下,例如系统次要功能不可用,系统部分逻辑不正常,仅在某一单一机型或单一用户出现的问题。
解决时间:待定下个版本发布。
反馈方式:下个版本的需求计划中体现。

P4:
1.系统文本错误,系统样式错误,系统交互友好性等不影响用户正常使用的功能。(包含全局性质)
解决时间:下个版本上线时。
反馈方式:下个版本的需求计划中体现。

注意:P0\P1级别问题在规定时间内无法解决的,需要该问题的研发同学在问题comments内说明无法在规定时间内解决的合理的解释,并告知该问题具体的解决时间点同时邮件说明。

--end--

扫描下方二维码

添加好友,备注【交流】
可围观朋友圈,也可私信交流
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
⼤数据产品开发流程规范_⼤数据开发步骤和流程 ⼤数据项⽬开发步骤: 第⼀步:需求:数据的输⼊和数据的产出; 第⼆步:数据量、处理效率、可靠性、可维护性、简洁性; 第三步:数据建模; 第四步:架构设计:数据怎么进来,输出怎么展⽰,最最重要的是处理流出数据的架构; 第五步:再次思考⼤数据系统和企业IT系统的交互; 第六步:最终确定选择、规范等; 第七步:基于数据建模写基础服务代码; 第⼋步:正式编写第⼀个模块; 第九步:实现其它的模块,并完成测试和调试等; 第⼗步:测试和验收; ⼤数据流程: 从流程⾓度上看,整个⼤数据处理可分成4个主要步骤。 第⼀步是数据的搜集与存储; 第⼆步是通过数据分析技术对数据进⾏探索性研究,包括⽆关数据的剔除,即数据清洗,与寻找数据的模式探索数据的价值所在; 第三步为在基本数据分析的基础上,选择和开发数据分析算法,对数据进⾏建模。从数据中提取有价值的信息,这其实是真正的阿⾥云⼤数 据的学习过程。这当中会涉及很多算法和技术,⽐如机器学习算法等; 最后⼀步是对模型的部署和应⽤,即把研究出来的模型应⽤到⽣产环境之中。 1) 数据采集:定制开发采集程序,或使⽤开源框架flume 2) 数据预处理:定制开发mapreduce程序运⾏于hadoop集群 3) 数据仓库技术:基于hadoop之上的Hive 4) 数据导出:基于hadoop的sqoop数据导⼊导出⼯具 5) 数据可视化:定制开发web程序或使⽤kettle等产品
产品需求获取流程: 1. 定义产品目标:明确产品的目标、目的和定位,为后续需求获取工作提供方向和依据。 2. 竞品分析:对竞争对手的产品进行深入分析,确定自己的产品特点和优势,在需求获取过程中避免重复和模仿。 3. 用户调研:通过问卷调查、访谈、焦点小组等方式,了解用户需求和痛点,为产品需求制定提供参考。 4. 产品规划:根据产品目标和用户需求,制定产品规划,确定产品的功能、特点、设计等方面的要求。 5. 需求梳理:将产品规划转化为具体的需求,分析每个需求的优先级、可行性等,形成完整的需求列表。 6. 需求评审:对需求列表进行评审,确保每个需求都与产品目标和用户需求相符,并能够实现。 7. 需求确认:与开发、设计、测试等团队确认需求的具体实现方法和时间表,确保需求能够顺利实现。 标准需求文档书写规范: 1. 标题:需求文档应包含清晰的标题,简洁明了地描述需求的内容。 2. 需求描述:需求文档应清晰地描述需求的功能、特点、优先级、用户需求等方面的内容。 3. 需求优先级:需求文档应明确需求的优先级,便于开发团队进行工作安排。 4. 需求实现:需求文档应描述需求的具体实现方法和技术要求,确保开发团队能够顺利实现。 5. 需求验收标准:需求文档应明确需求的验收标准,便于测试团队进行测试和验收。 6. 附注:需求文档应包含必要的附注和参考资料,方便开发团队和测试团队进行参考和理解。 7. 版本控制:需求文档应进行版本控制,确保每个版本的需求都得到充分的讨论和确认。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值