经常有朋友问到企业中的大数据岗位都是干啥的,本人结合自己多年的工作经历给准备转行或者刚刚从事大数据工作的朋友简单介绍一下,总的来说,企业中的大数据相关的工作分为一下几种,但是在一些公司中,Boss恨不能让你以一顶五,可能都让你干o(* ̄︶ ̄*)o:
- 数据平台运维
- 大数据平台开发
- 大数据平台架构
- 大数据应用开发
- 数据仓库开发等
1.数据平台运维:这个岗位大家应该很容易理解,在企业大数据部门,数据出了问题,首当其冲的就是运维工程师了,他们往往要半夜或者凌晨爬起来去处理一些基础的服务器问题,比如服务器重启、扩容、磁盘空间清理等,而且很多公司规定,只有运维工程师才能直接操作线上服务器,因为只有他们最了解哪些操作有害哪些无害,即使再熟练的linux工程师,如果对运维规范不了解,也可能对生产环境造成致命伤害,所以平台运维工程师需要了解很多大数据组件的基本原理和操作方法,我接触过的,腾讯的运维工程师是相当厉害的,他们不但了解基本原理,还会对下面要出场的人物提出很多自己的建议。
2.大数据平台开发:上边讲了,平台运维工程师需要了解大数据组件的基本原理,但是大数据系统往往是非常复杂的,所以有时一些现网问题运维工程师是搞不定的,这时就需要平台开发的同事上马了,所以平台开发的工作时常和平台运维重叠。数据平台开发的朋友不但需要了解大数据组件的基本原理,而且他们一定要在垂直领域深入钻研和掌握多个系统,如果没有这样的深度,是搞不定线上那些奇奇怪该的问题的,所以这个岗位往往被认为是大数据平台部门所谓的有“技术含量”的岗位。这个岗位的朋友在不处理现网问题时都在干吗呢?demo联调、性能压测以及定制化开发等是他们的日常,demo联调往往是新上了一个系统后,需要和其他系统进行数据对接;性能压测则是模拟现网流量、qps等在测试环境对全链路进行压力测试,及早发现系统潜藏的问题;定制化开发则指的是我们常说的二次开发,把开源系统里不满足业务需求的地方修修改改,比如给spark开发一套新的外部数据源,或者给spark加一套执行计划,或者开发一套自己的工作流调度系统等。这种岗位在BAT的公司是非常吃香的,因为开源的系统往往扛不住这些大厂的数据量和复杂的业务需求,那么定制开发自己的系统就势在必行。比如腾讯和阿里的linux都是自己优化后的kernel,阿里有自己的jvm开发团队,更上层的大数据组件更是全部重构来满足业务和数据量的要求。
3.大数据平台架构:这个岗位往往是需要多年的经验才能上岗的,这个岗位要对大数据各个组件都要有一定的使用经验,即使没有使用经验,也要能在只看文档的情况下就能深入了解某个系统面向的业务场景、特性以及优缺点等(架构师往往已经具备了这种能力)。这个岗位往往做的事情非常杂,服务器购买预算要找你,数据开发要找你,算法要找你,运维要找你,甚至业务也会找你,所以架构师一般会议非常多,不是在开会就是在准备去开会最合适不过大数据架构师了,所以架构师基本不会再去写代码了。以画像业务为例,数据怎么采集,怎么汇总,在哪里计算标签,标签存储在哪里,分析师用什么工具去做透视分析,整个一整套流程都需要架构师把关,平台开发同事往往工作年限较短,只对个别系统有深耕,整体框架只能靠架构师。但是现在很多中小公司因为人手不够或者招不来优秀的架构师,这个岗位往往没有明确的划分,一套平台往往是七拼八凑搞起来的,所以这样的平台整体运行效率并不是很高。
4.大数据应用开发:这个岗位应该是目前大数据领域招聘人数最多的岗位了,大家的入门学习的内容基本就属于这个细分领域内了。这个岗位的工作,说白了就是各种系统api的调用,根据业务逻辑实现具体的功能即可,不需要有很扎实的计算机基础,不需要有很深入的系统理解,所以才会造成这个岗位门槛变低,跟传统的后台开发写几个CRUD区别不是很大(这也是各个大数据系统为什么一直在优化api,因为api好用了,开发者就会变多,对系统的粘性也会变大),这也就给很多刚入门的同学造成很多困惑,他们感觉这个岗位没有太多能学习的东西。巴特,这个岗位往往在企业中也是一个比较模糊的角色,你会使用api,ok那你去帮平台的同事做做demo测试和压测(转平台),你懂业务,ok那你去帮BI的同学做点ETL(转BI)。这个岗位干好了,空间还是很大的,可以向多个方向发展,但是如果你一直只停留在调用api的层面,那就只能沦落为普通的后台开发了。
5.数据仓库开发:埋点、写sql、提数据,埋点、写sql、提数据,埋点、写sql、提数据,这就是这个岗位同学的日常,我见过太多这个岗位的同学抱怨这个岗位了,数仓框架基本都继承自传统的框架,已经发展了很多年,大数据时代也不例外,只是做BI的工具发生了变化而已,对外还是那套传统的开发流程,所以这个岗位的同学往往比较苦恼,不知道发展方向是什么,由于他们忙于数据开发,所以往往疏于对后台系统特性的学习和了解,我往往会收到这个岗位的同学发来的几个超大sql让我给优化,而我一般给他们配置几个hive参数或者在sql中加入hint就可以让sql飞起来,但是他们很少有人愿意去深入学习一下这几个参数的原理。
当然还有数据分析岗位和算法岗位,不过这个领域跟技术开发已经差别较大,他们更侧重的是业务模型,算法模型以及对数学的运用,下次再专门开篇来讨论这两个领域。
本文转自 知乎,原文链接:https://zhuanlan.zhihu.com/p/45558561,如需转载请自行联系原作者