大数据团队从1到2

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 1.0阶段的核心是数据分析,把大数据离线计算的整套流程和框架搭建起来,后续就是不断在框架中加入新的业务、新的需求了。但是1.0阶段的数据是T+1的,即每天、每周、每月定时计算的,快一点儿的有每小时、甚至每5分钟的,都是离线数据,实时性不足。2.0阶段重点加强的,就是实时计算领域。

接上文:《大数据团队从0到1

1.0阶段的核心是数据分析,把大数据离线计算的整套流程和框架搭建起来,后续就是不断在框架中加入新的业务、新的需求了。但是1.0阶段的数据是T+1的,即每天、每周、每月定时计算的,快一点儿的有每小时、甚至每5分钟的,都是离线数据,实时性不足。2.0阶段重点加强的,就是实时计算领域。

实时 VS 离线

实时计算与离线计算,表面上的区别,在于数据的时效性。实际在这背后,还有更多的区别。上一篇文章中说,从0到1的阶段需要的是数据分析,但没有解释为什么一开始是使用“离线的”数据分析而不是实时的,下面来解释一下:

大数据离线与实时计算的相同点

1、输入

大数据一定是与线上数据解耦的。

离线计算时,我们把数据从线上数据库中同步一份儿到离线数仓中,在离线数仓中进行复杂的计算;

实时计算时,我们也是采用异步的办法,从线上数据中接一条分支的数据流过来,进行实时计算;

两种方案都是,不直接操作线上数据,而是想办法同步一份儿数据过来,再使用我们同步过来的这份儿数据进行计算。

2、输出

输出的方式,都是把结果数据直接输出,更新到一个数据存储里。用户的感知上没有太大区别,有的时候甚至不在乎这份儿数据是多久更新一次。

大数据离线与实时计算的不同点

1、人员技能

离线计算的核心技能就是SQL,虽然HiveSql与传统RDBMS的SQL写法稍有不同,但绝大多数情况下都是一样的。首先理解SQL的本质是MapReduce任务,再顺着这一思路去写SQL即可。

而实时计算就麻烦了,这一领域的技术链条长、同类产品多,需要的都是全域的“通才”。而这类“通才”往往很难找,不敢奢求找到技术链条完全匹配的,匹配度超过50%的都不容易。一般有两种办法解决这一问题:

  1. 凑齐整个技术链条的“专家”。技术链条虽长,但每个节点都有每个节点的“专家”,凑齐所有节点的专家即可;
  2. 寻找学习能力强的“潜力股”。大部分公司会选择这种方式。“潜力股”的薪资水平通常会比有多年经验的专家低得多,但学习能力强、上手速度快。而且很多程序员都对大数据这一领域垂涎三尺,巴不得有个机会可以转到大数据领域;

现在在招聘网站上看求职者简历,很多人都会用+拼成好几条技术线,凸显自己的技术面广。例如:

Flume+Kafka+HDFS+Spark+HBase+Redis+Impala+ElasticSearch+Hive

求职者这一思路是没有错的,毕竟如果只专于某一种技术或者框架,可能换一家公司就发现技术选型不一样,又要从头再来了。

但是这里也要提醒公司的招聘负责人注意,根据多年面试经验,求职者的技术链条一般写的都是整个大数据团队的技术链条、而不是他自己一个人的,需要仔细识别他自己负责的到底是哪一块,避免招聘入职后发现被骗。

2、成本

如果是开源使用者,这一阶段的服务器费用成本不会增加太多,但是人力成本、学习成本、时间成本上会多出许多,甚至还需要专门的大数据运维工程师。

如果是云产品使用者,这一阶段会又多出大量的云产品费用支出。毕竟实时计算所需的技术组件远比离线要多、要贵。

3、投入产出比

即使以上1、2两条都不是问题,那最终算下来的投入产出比,也远远低于离线计算。同样是计算“每日订单量”并写到一张结果表中,离线计算从开发到完成不会超过半个小时,实时计算大约得要一天的工作量。

4、“坑”

实时计算是有“坑”的,更麻烦的是,万一真掉进坑里了,修复会很难。

离线计算如果出错了,直接重跑一次即可,会直接把之前错误的数据覆盖掉;

实时计算如果出错了,如果按正常流程修复,需要先找到出错的时间点,把消费进度恢复到那一时间点,再重新消费。这里边还要注意“幂等”、注意“顺序”等等问题,非常麻烦。所以一般都采取直接用“离线计算”来修正实时计算的数据(甚至不管实时数据是否出错,都定期用离线数据修正)。这就需要实时和离线两边的代码逻辑完全一致。那么问题又来了:完全不同的编程语言,如何保证两边的逻辑完全一致呢?“坑”挖到这里,一般人可能就坚持不下去了。

个人十分看好Flink“流批一体化”的产品方向,期待Flink能更快地成熟起来,把这一问题从根本上解决掉。

综上,第一阶段使用离线计算才是比较明智的做法。毕竟想稳住自己的地位,必须要先尽快的做出成绩。

面临的选择

这里列举在实时计算团队的工作过程中,会面临的几个比较重要的选择。

1、数据接入方式

大数据团队想接一条数据流过来的方式有很多。比较常见的有:

  1. 规定一个消息队列,作为大数据接入的标准数据源。其他业务方如果有需求,就按照事先规定好的接入标准把数据主动写到这条消息队列中,大数据再进行消费。

    • 适用于大数据团队比较强势、团队规模不大的公司;
    • 优点:大数据团队完全不用担心有遗漏的业务、或者消息的格式不匹配导致的报错;
    • 缺点:其他所有的业务团队都需要了解并严格执行大数据团队制定的规则;
  2. 大数据团队自己想办法去拿数据。例如监听业务数据库的binlog、或作为一个新的消费者订阅业务方的所有消息队列。

    • 适用于大数据团队相对弱势、团队规模较大的公司;
    • 优点:各个业务团队几乎可以完全不用顾忌大数据团队的需求,做好他们自己就可以;
    • 缺点:业务方有变更时,大数据很难及时了解;需要耗费大量精力在沟通上;人工维护成本太高;

我当然更偏向选择第1种。但事实往往不尽如人意。

2、技术选型

技术选型中必不可少的几类组件:

  • 流计算引擎(Storm/Spark/Flink/KafkaConsumer/...)
  • 消息队列(Kafka/RocketMQ/阿里云DataHub/阿里云日志服务LogHub/...)
  • 日志采集工具(Logstash/Flume/阿里云日志服务LogTail/...)
  • 缓存(Redis/Memcache/...)
  • 数据存储(RDBMS/NOSQL数据库/搜索引擎/分布式文件系统/...)
  • ……

还有一些可能会用到的,比如:

  • 数据查询引擎(Kylin/Impala/Presto/...)
  • ……

在做选型之前,最好先要把同类的产品都研究一遍,列举出优缺点,最终选择一款最适合自己场景的产品。

见过很多的团队,选型属于“随大流”类型,别人用什么、我们就用什么。

选型是需要有自己的原则的(一个没有原则的团队,想想就觉得很可怕)。比如:

  1. 偏向于选择大型云服务商的云产品;
  2. 偏向于选择社区活跃度高的开源产品;
  3. 偏向于选择依赖环境少的产品;
  4. 偏向于选择生态完善、不会需要太多二次开发的开源产品;

……

小公司由于人力有限,一般在选型上的注意事项会比较多。大公司则恨不得自己从0开始重新写代码,之后作为开源软件捐赠出去、或者作为商业化产品卖。

大数据团队组织架构V2.0

大数据团队V2.png

如图,在1.0基础上,增加了两个新的职位:

Spark/Storm/Flink开发工程师

  • 任职要求关键词:Java/Scala、Spark/Storm/Flink、Flume/Logstash、HBase、Redis/Memcache、ElasticSearch、……
  • 岗位职责:负责基于大数据实时计算体系的需求开发

大数据运维工程师

这是一个神奇的岗位,在招聘网站上几乎看不到,但是却是一个实实在在存在、甚至必须存在的岗位。原因之一,也是由于大部分公司都把大数据的“开发”和“运维”岗位合成了一个,要求:大数据实时计算体系的搭建、开发、运维。

但是其实,大数据的运维和开发还是建议分开,因为大数据运维这一领域有好多该做的事儿。

另一个原因则是,近几年大型的云服务提供商的崛起,使得云产品的使用率越来越高,这类云产品都是免运维、开箱即用的。

另外还有一个神奇的岗位,叫“大数据测试工程师”,也是在招聘网站上几乎看不到。大数据领域的测试,我虽从业多年,也一直没找到一个非常合适的测试方法和测试流程,一直坚持的办法就是开发的自测和互测,因为需要能看懂代码的人。

大数据团队工作成果V2.0

  1. 实时计算平台:提供实时(准实时)的大数据计算平台,使数据更加实时。

总结

2.0阶段,相对1.0阶段来说,走得更慢,而且缺少特别有突破性的成果。但是从团队建设的角度,这一阶段走完之后,大数据团队就基本已经成型了。

这一阶段可以走得很长,甚至永远在这一阶段走下去。毕竟光是依靠大数据的“离线+实时”的计算能力,就可以做很多很多事儿。重点注意这一阶段的团队流程建设,包括实时计算团队的领域划分、技术方案设计、文档与注释要求、压力测试等等,也包括之前提到过的离线计算团队的数仓设计原则、编码规范等等,还包括如何让整个团队提升工作效率、避免重复造轮子、避免陷入舒适区等等。

总结一下,2.0阶段走向成熟的标识就是:一切基本的数据分析都不再是问题,数据中心建设完成。

下一个阶段,就是如何让数据发挥价值。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
2月前
|
机器学习/深度学习 运维 算法
|
4月前
|
机器学习/深度学习 运维 算法
大数据基础工程技术团队4篇论文入选ICLR,ICDE,WWW
近日,由阿里云计算平台大数据基础工程技术团队主导的四篇时间序列相关论文分别被国际顶会ICLR2024、ICDE2024和WWW2024接收。
|
机器学习/深度学习 分布式计算 算法
腾讯大数据将开源高性能计算平台 Angel,机器之心专访开发团队
随着近年来深度学习技术的发展,各种机器学习平台也纷纷涌现或从专用走向了开源。到现在,一家科技巨头没有一个主导的机器学习平台都不好意思跟人打招呼。比如谷歌有 TensorFlow、微软有 CNTK、Facebook 是 Torch 的坚定支持者、IBM 强推 Spark、百度开源了 PaddlePaddle、亚马逊也在前段时间高调宣布了对 MXNet 的支持。 现在,腾讯也加入了这一浪潮。在 12 月 18 日于深圳举办的腾讯大数据技术峰会暨 KDD China 技术峰会上,腾讯大数据宣布推出了面向机器学习的「第三代高性能计算平台」——Angel,并表示将于 2017 年一季度开放其源代码。
465 0
腾讯大数据将开源高性能计算平台 Angel,机器之心专访开发团队
|
数据可视化 JavaScript 算法
大数据时代的特种兵:阿里数据产品团队
你可能用过数据魔方、淘宝指数、淘宝时光机这些好玩的产品,为其对大数据的运用点赞,或许你还对阿里巴巴在大数据这领域所做的工作感到好奇。在这里,Segmentfault 给大家来介绍一下这些炫酷产品背后的团队:阿里数据平台事业部数据产品团队。
451 0
大数据时代的特种兵:阿里数据产品团队
|
自然语言处理 监控 搜索推荐
大数据团队从2到3
其实从3.0阶段开始,团队的升级路线就比较分散了,依赖于各公司对于数据团队职能的定位和期待。
359 0
大数据团队从2到3
|
机器学习/深度学习 分布式计算 DataWorks
9大训练营免费开营!阿里云大数据团队的独门绝学全在这了
即日起,阿里云大数据训练营九营齐开!理论与实践,概念与案例,大数据从0到1上手学习,行业大神真人带练!
3243 0
9大训练营免费开营!阿里云大数据团队的独门绝学全在这了
|
机器学习/深度学习 分布式计算 DataWorks
|
大数据 BI 数据挖掘
大数据团队从0到1
“大数据”这个词,大家都已经不陌生了,已经从一个新兴的词汇变成了一个百姓茶余饭后都会聊到的概念。各种大大小小的互联网公司也都会创建自己的大数据团队,我也曾经在多家公司从事过大数据领域的开发和团队管理工作,这里写一下我自己的经历和感受。
2276 1
|
大数据
CCF大数据与计算智能大赛在沈阳浑南落幕 45支团队赢百万奖金
12月2日,第六届2018 CCF大数据与计算智能大赛决赛嘉年华系列活动在沈阳浑南创新天地落下帷幕。
1667 0