半点优化网 http://www.bdxc.net/
当前位置首页 > 网站建设> 正文

大数据开发跟大数据平台开发有区别吗?

2022-02-24 04:39:59 暂无评论 161 网站建设 数据   开发   区别

我用一个比喻说说个人理解吧:大数据平台在一些地方被称为数据仓库,如果把数据仓库比作粮仓的话,大数据平台开发工程师提供工具,比如研发更快的收割机、设计更大的仓库等等;大数据开发工程师使用这些工具处理数据,比如将农田里的收割、晾晒、去皮、研磨成可以食用的大米面粉。

数据科学金字塔

上图的数据金字塔展示了数据科学领域各岗位的大致职能。

最底层是数据收集部分,主要是原始数据的生成和收集。这部分数据来自各种IoT设备、传感器、手机APP上的用户行为、外部数据、以及用户生成数据(类似抖音用户主动发布的视频)。第二层是数据存储部分,一般需要构建数据仓库,生成一系列数据流,将原始数据存储至大数据平台。第三层是数据清洗和转化部分,主要对数据进行清洗和预处理,将数据转化为更高层次的数据,为上层数据分析做准备。第四层是数据聚合部分,主要做一些基础的数据分析和业务报表,进行一些数据挖掘,并构建机器学习的训练数据。第五层是机器学习部分,主要构建机器学习模型,将模型发布到生产系统,进行AB实验。最顶层是人工智能部分,顶级的科学家提出新算法或新架构。大数据开发和大数据平台开发的工作都主要集中在1、2、3三层。

原始的数据就像农田里的麦子,需要经过层层工序,才能最终将其转化餐桌上的面包。大数据开发和大数据平台开发打通了粮食收割、清理、制粉的整个流程,将原始的粮食转化成了面粉。

大数据平台开发大数据平台工程师开发主要关注提供大数据基础设施和工具。目前的大数据公司都建有自己的数据仓库,数据仓库中的一个子任务就是构建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,这三篇论文也被称为驱动大数据的三驾马车。

小结大数据平台开发工程师提供基础设施和工具,是大数据平台的底层保障,工作内容离业务较远。大数据开发工程师依赖这些工具,在业务数据做提取和转化,构建数据流,工作内容离业务较近。

猜你喜欢