求数据库开发工程师学习路线,数据开发( 三 )


大数据开发和大数据平台开发打通了粮食收割、清理、制粉的整个流程,将原始的粮食转化成了面粉 。大数据平台开发大数据平台工程师开发主要关注提供大数据基础设施和工具 。目前的大数据公司都建有自己的数据仓库,数据仓库中的一个子任务就是构建OLAP(Online Analytical Processing,联机分析处理)工具:主要是在Hadoop生态上,构建大数据分析平台 。
大数据平台开发所做的工作包括提供HDFS、HBase、对象存储等数据存储服务;Hive和Spark批处理、Druid和Kylin预处理等数据分析工具;Spark Streaming、Flink等流式计算工具 。总之,大数据平台开发工程师关注基础设施和工具 。大数据开发大数据工程师的一个重要任务是ETL(Extract、Trasform、Load):使用大数据平台开发工程师提供的基础设施和工具,在收集到的数据上做提取和转化,生成更高层次的数据 。
这部分工程师关注业务相关的数据流 。因为原始数据一般都是互相独立的,数据与数据之间关联性差,使用这些原始数据,几乎很难快速生成用户画像、广告收入等高层次数据分析结果,更不用提如何进行机器学习建模了 。以今日头条内容推荐引擎为例,整个推荐引擎要接入不同类型的异构大数据源:每个用户在APP上的使用行为、公司购买的第三方数据(包括用户金融能力数据等)、自媒体产生的海量图文视频内容等等 。
数据工程师的工作包括:将用户在APP内的点击行为与点击的内容做关联,生成用户兴趣画像;将用户的APP内部数据与第三方数据关联,生成用户的消费能力画像等 。大数据开发工程师主要对收集过来的底层数据做处理,建立一系列数据管道,将来自不同数据源的原始数据经过层层转化,生成对数据分析和算法建模更有价值的中间数据,一般称这个流程为数据流 。
小公司限于人力有限,数据流的响应时间有可能是天级或小时级;大公司对数据流的响应要求极高,有可能是分钟级、秒级甚至亚秒级 。很多朋友都发现,在今日头条刚刚搜索过某一个内容,下一分钟就能收到相似内容的推荐了,因为大数据开发工程师提供了这种秒级数据管道 。技能要求无论是大数据平台开发工程师还是大数据开发工程师都对从业人员的“编程开发”和“大数据”大数据要求比较高,而且数据量越大的公司,对技能要求越高 。
公司一般要求工程师在Java和Scala语言上,基于Hadoop生态系统,构建实时或批量的数据流 。但公司与公司的差异很大,整个技术栈和工作内容与公司架构高度相关 。某招聘APP上对大数据开发工程师的技能要求:Java、Scala、Linux、Hadoop、Kafka、Spark、Flink等 。面试时一般会重点考察候选人对Google大数据三大论文的理解,即MapReduce、GFS和BigTable,分别对应了开源的Hadoop MapReduce、HDFS和HBase,这三篇论文也被称为驱动大数据的三驾马车 。
数据库开发工程师转行大数据开发可以吗?
数据库开发工程和大数据开发严格意义上来说不算转行,从技术层面来讲大数据开发需要更深层的技术基础和更广的架构思路,也其说转行不如说是对自身职业的一个飞跃 。数据库开发工程对于基本的数据库开发比如说SQL的熟练,表结构的分析,数据库编程的掌握,数据库的运维,这都是数据库开发工程师的天然优势和技术积累,如果要上升到大数据开发显示是比小白更具优势,向大数据库开发提升,建议从以下几方面着手:1.从技术上要学习非关系型数据库的使用,了解非关系型数据库的存储、查询及应用场景2.掌握主流的大数据相关的技术架构及主流数据库如Hadoop、spark、Hive、HDFS、HBase等技术3.关键还是需要一个机会和平台,大数据的体量并非一个普通的MIS系统,或者软件所能承载的,如果想提升到大数据开发需要找到与之匹配的平台,也就是工作机会,只有经历了大量的实践才可以说自己已经进行了大数据开发领域 。