1.1.2 数据开发工程师
1.职业特点
数据开发工程师也叫数据工程师、数据治理工程师等,在大数据行业中,其扮演的角色举足轻重,甚至可以说是不可或缺的。所谓数据开发工程师,本质上还是软件工程师,他们是整个大数据系统的构建者和优化者,职责就是保证数据接收、转移的准确性,维护系统的安全与稳定。和数据分析师不同的是,数据开发工程师的工作重点在于数据的架构、运算以及存储等方面,所需要具备的技能一般也就是超强的编程能力以及编写数据查询程序的能力。数据开发工程师的核心价值在于他们通过清晰数据创建数据管道的能力。充分了解文件系统、分布式计算与数据库是成为一位优秀数据开发工程师的必要技能。
尽管数据开发和业务系统开发都是通过编程语言,但还是有一些区别的。业务系统开发主要是“对数据库的各种增删改查操作”,并保证系统稳定运行;而数据开发重在“对数字或者字符串的处理,包括计算、转换等”,保证数据的准确性,同时兼顾数据处理的高效性和及时性。
2.工作内容
数据开发工程师的工作内容如下。
1)参与常规数据平台的前端或者后台开发,比如负责某一个统计模块功能的开发。
2)负责数据采集工作,比如开发和部署数据埋点代码等,开发各种爬虫程序等。
3)负责数据清洗工作,比如开发ETL程序。
4)数据挖掘算法实现、调优、结果验证和解释。
5)参与Hadoop、Spark、Storm等大数据平台设计和开发、运维。
6)负责高吞吐、高可用数据实时和离线采集、高并发的大数据业务架构设计。
3.技能要求
对数据开发工程师的技能要求如下(如图1-3所示)。
1)编程技能:Java、Python、Scala、MapReduce。
2)数据库技能:SQL、NoSQL。
3)Linux系统:Shell脚本。
4)分布式计算:Hadoop生态、Spark生态等。
5)机器学习计算平台:Mahout、Spark-graphy。
6)实时计算:Storm、SparkStreaming、Flink、Kafka。
7)数据接入技术:友盟、百度统计等。
8)网站页面布局:HTML、CSS、JS。
9)可视化:ECharts等。
●图1-3 数据开发工程师技能谱系图
4.职业发展和薪酬
数据开发工程师的发展路径大致为:数据开发工程师→大数据开发工程师→大数据架构师,如图1-4所示。
刚入行的数据开发工程师几乎和刚入门的初级程序员没有什么不一样的地方,主要是根据需求通过编程来对数据进行处理,以及掌握编程的技巧和提升理解需求的能力;大数据开发工程师主要是体现在数据量上,能够灵活采用不同的技术手段对不同规模的数据进行处理;大数据架构师主要是负责大数据平台架构,能根据不同的业务特点设计出相适应的大数据平台。这个职业的能力成长相对其他的职业来说有较强的递进关系,即刚入行的新人应该着重提升编程能力,随着编程经验的提升,逐步具备处理不同规模数据的能力,通过不同的项目锻炼和学习后,就可以具备架构师的能力了。
●图1-4 数据工程师职业进阶和薪酬发展
招聘岗位举例1
某互联网公司数据开发工程师职位描述
薪资:10000~15000元/月。
职责描述:
1)负责数据域数据采集及分析工作。
2)负责支持数据产品的后台设计、研发,并给出相关的技术支持。
任职要求:
1)本科及以上学历,计算机相关专业,应届毕业生。
2)熟悉主流大数据产品和数据分析技术,掌握SQL开发技能。
3)具备Hadoop、Hbase、Hive、Redis、Spark等大数据系统建设、数据挖掘和系统开发经验者优先考虑。
4)具有较强的团队意识与良好的沟通能力,高度的责任感,对工作积极严谨,勇于承担压力,较强的学习能力以及快速解决问题的能力。
招聘岗位举例2
某互联网公司大数据开发工程师职位描述
薪资:15000~30000元/月。
职责描述:负责大数据平台消息中间件/Hadoop/实时计算/OLAP的运营支撑和架构优化。
任职要求:
1)计算机或相关专业本科及以上学历,5年以上大数据运维或开发工作经验。
2)熟悉Linux开发环境,熟练掌握Java/G/Python语言中的一种。
3)熟练掌握大数据常用开源组件的技术原理,有现网的Hadoop、Kafka等开源大数据组件运维或开发经验。
4)有较强的逻辑思维能力,思想上开放,主动积极有责任感,能够承担工作压力。
5)有Hadoop、Kafka、Spark、Flink等开源组件源码优化经验优先。
招聘岗位举例3
某互联网公司大数据架构师职位描述
薪资:30000~50000元/月。
职责描述:
1)负责基于Hadoop大数据平台的海量数据处理、数据计算、数据开发。
2)参与大数据平台系统的搭建和重构,提高其易维护性、稳定性、可用性、吞吐量和效率等。
3)独立进行系统功能模块的分析设计和核心功能的开发。
4)负责大数据实时、离线处理程序开发,根据产品需求,设计开发数据处理程序。
5)开发规范等文档的编写与维护,以及其他与项目相关的研发工作。
任职要求:
1)统招本科及以上学历,计算机相关专业,3年及以上相关工作经验,有扎实的计算机理论基础。
2)熟悉Hadoop生态相关技术,包括Hadoop、Hbase、Spark、Hive、Kafka、Vue等。
3)熟悉Java/Python/Scala等编程语言,熟练使用SQL,有良好的编码习惯,对分布式有深刻理解。
4)熟悉RPC,有微服务开发经验。
5)熟悉Linux环境、Shell、Python脚本编写,熟练使用Idea、Maven、SVN等开发工具。
6)善于沟通和逻辑表达,拥有优秀的分析问题和解决问题的能力,良好的团队合作精神和积极主动的沟通意识。