levycui 发表于 2021-11-10 18:29:17

大数据工程师的日常工作内容分享

本帖最后由 levycui 于 2021-11-10 18:58 编辑

问题导读:
1、每天的工作有哪些?
2、大数据工作分为几种?
3、各工程师的技术范围是什么?
4、大数据学习路线是什么?

面试造火箭,工作拧螺丝,你千万不能以日常工作内容去准备你的面试,不然你会找不到工作的,因为大数据的日常工作和你面试完全不是一个等级,先说说我的日常工作吧

现在是上午十点零一分,我在公司吃着早餐,就一杯黑芝麻糊,听说能改善脱发,所以我先提前预防着

公司是九点半上班,来了之后先去厕所待个二十分钟,然后吃早饭,顺便刷刷知乎,再写写问答,就像这条回答一样

十点半正式开始工作,上午的时间是非常短暂的,一般十一点半就开始吃饭了,所以上午基本干不了活,开开会时间基本就没了。

下午两点正式进入紧张的工作中,大部分时间都是在思考,理解需求,考虑架构,这个时间占整个项目周期的70%,剩下时间是在开发,我离线和实时都做,离线的项目好做点,直接在公司的数据中台上做,写写sql即可,实时稍微复杂点,sql有时完成不了需求,需要写写代码

目前离线开发主要是hive,实时开发基本全部是flink了

如果让我招大数据工程师,我第一看中的不是技术,而是你有没有独立思考的能力,给你一个你毫不熟悉的项目,能不能快速理清业务逻辑,能不能将需求完整的复述一遍,因为这太重要了,我司目前招进来两个大数据初级,不知道是跨行业的原因,还是笨,需求始终理解的差那么一点,也可能是我们的业务比较复杂。但是需求理解不到位,技术在厉害也是没用

但是话又说回来,需求这东西你没办法提前复习啊,只有需求来了才知道要干什么,所以面试时只能考察技术及你的过往项目经历,通过你之前做的项目看你对这个项目的理解情况,这主要看和面试官有没有眼缘,没有具体标准,,因为每个人做的项目可能不一样,你项目中会的地方多说一点,不会的少说一点或者干脆不说,面试官感觉你说得好,你就有希望

但是技术是有标准的,问你某个技术点,你会就是会,不会就是不会

但是在学技术的时候要多思考,这个技术点为什么这样实现,有什么好处,多思考会让大脑越来越灵活,就比如Flink支持精准一次处理语义,但是大家深入思考下flink的精准处理是怎么实现的,有人说是通过两阶段提交协议实现的,对,是通过这个协议,那再深入思考下,这个协议的主要内容是什么,底层的算法是怎么实现的,这样一步步的向下思考,你就会发现一个新世界

具体的文章可以看这篇
https://link.zhihu.com/?target=h ... KZrh8YMbfFn6GyYUXVA

以上都是随便扯扯,大家随便看看就好,接下来说说大数据怎么学习,怎么面试

想学大数据或者说想入门大数据,技术肯定是第一重要的,不会大数据的技术谈什么大数据。那么大数据的技术怎么学,要知道大数据是依赖Java的,首先要保证Java得会

咱们从业务来说,一个项目一般包含:前端,后端,后后端,大数据属于后后端,是在项目开发完成之后有了数据之后才到大数据这一步

从上帝视角看张图:


大数据工作分为图上这几种,和后端接触的是ETL工程师,负责将数据拿到大数据平台,然后供数仓开发工程师使用,大数据开发负责大数据平台的建设,后面还有数据分析师,AI工程师等

1、数仓工程师 (全称:数据仓库工程师)
数仓工程师日常工作一般是不写代码的,主要以写 SQL 为主!
数仓工程师是大数据领域公司招聘较多的岗位,薪资也较高,需要重点关注!
数据仓库分为离线数仓和实时数仓,但是企业在招聘时大多要求两者都会,进入公司之后可能会专注于离线或实时其中之一。就目前来说,大多数的企业还是以离线数仓为主,不过未来趋势肯定是实时数仓为主,所以学习时,为了现在能找到工作,需要学习离线数仓,为了以后的发展,需要学习实时数仓。所以,离线和实时都是我们重点掌握的!

需要掌握的技能:不管离线还是实时,重中之重就是:SQL

SQL 语法及调优一定要掌握,这里说的 SQL 包括 mysql 中的 sql,hive中的 hive sql,spark 中的 spark sql,flink 中 的 flink sql。

在企业招聘的笔记及面试中,一般问的关于 sql 的问题主要是以 hive sql 为主,所以请重点关注!

除 sql 外,还需要重点掌握以下技能,分为离线和实时
离线数仓需要重点掌握的技能:


[*]Hadoop(HDFS,MapReduce,YARN)
[*]Hive(重点,包括hive底层原理,hive SQL及调优)
[*]Spark(Spark 会用及了解底层原理)
[*]Oozie(调度工具,会用即可)
[*]离线数仓建设(搭建数仓,数仓建模规范)
[*]维度建模(建模方式常用的有范式建模和维度建模,重点关注维度建模)

实时数仓需要重点掌握的技能:


[*]Hadoop(这是大数据基础,不管离线和实时都必须掌握)
[*]Kafka(重点,大数据领域中算是唯一的消息队列)
[*]Flink(重中之重,这个不用说了,实时计算框架中绝对王者)
[*]HBase(会使用,了解底层原理)
[*]Druid(会用,了解底层原理)
[*]实时数仓架构(两种数仓架构:Lambda架构和Kappa架构)

2. 大数据开发工程师
数据开发工程师一般是以写代码为主,以 Java 和 Scala 为主。大数据开发分两类,第一类是编写Hadoop、Spark、Flink 的应用程序,第二类是对大数据处理系统本身进行开发,如对开源框架的扩展开发,数据中台的开发等!需要重点掌握的技能:


[*]语言:Java 和 Scala(语言以这两种为主,需要重点掌握)
[*]Linux(需要对Linux有一定的理解)
[*]Hadoop(需理解底层,能看懂源码)
[*]Hive(会使用,能进行二次开发)
[*]Spark(能进行开发。对源码有了解)
[*]Kafka(会使用,理解底层原理)
[*]Flink(能进行开发。对源码有了解)
[*]HBase(理解底层原理)

通过以上技能,我们也能看出,数据开发和数仓开发的技能重复率较高,所以很多公司招聘时 大数据开发 和 数仓建设 分的没有这么细,数据开发包含了数仓的工作!


3. ETL工程师
ETL是三个单词的首字母,中文意思是抽取、转换、加载
从开始的图中也能看出,ETL工程师是对接业务和数据的交接点,所以需要处理上下游的关系
对于上游,需要经常跟业务系统的人打交道,所以要对业务系统比较熟悉。比如它们存在各种接口,不管是API级别还是数据库接口,这都需要ETL工程师非常了解。

其次是其下游,这意味着你要跟许多数据开发工程师师、数据科学家打交道。比如将准备好的数据(数据的清洗、整理、融合),交给下游的数据开发和数据科学家。

需要重点掌握的技能


[*]语言:Java/Python(会基础)
[*]Shell脚本(需要对shell较为熟悉)
[*]Linux(会用基本命令)
[*]Kettle(需要掌握)
[*]Sqoop(会用)
[*]Flume(会用)
[*]MySQL(熟悉)
[*]Hive(熟悉)
[*]HDFS(熟悉)
[*]Oozie(任务调度框架会用其中一个即可,其他如 azkaban,airflow)



4. 数据分析工程师
在数据工程师准备好数据维护好数仓后,数据分析师就上场了。
分析师们会根据数据和业务情况,分析得出结论、制定业务策略或者建立模型,创造新的业务价值并支持业务高效运转。
同时数据分析师在后期还有数据爬虫、数据挖掘和算法工程师三个分

需要重点掌握的技能:


[*]数学知识(数学知识是数据分析师的基础知识,需要掌握统计学、线性代数等课程)
[*]编程语言(需要掌握Python、R语言)
[*]分析工具(Excel是必须的,还需要掌握 Tableau 等可视化工具)
[*]数据敏感性(对数据要有一定的敏感性,看见数据就能想到它的用处,能带来哪些价值)


大数据学习路线

系统的学习大数据相关的课程,可按照如下顺序学习

需要先掌握 Java SE 阶段,Linux 基础命令,MySQL数据库

如果上述基础技能没有掌握,可网上搜索相关课程进行学习(这类基础课程网上免费的特别多)

Java只需要学习 Java SE 阶段即可

会在虚拟机中安装Linux发行版本(建议安装 CentOS),学完Linux基础即可。

MySQL需要学习 sql 语法,范式,事务等。

如果以上技能你都掌握的话,接下来就进入大数据框架

可按照如下顺序进行学习(涵盖ETL、数仓、开发等岗位)

hadoop -> zookeeper -> hive -> flume && sqoop -> azkaban && oozie -> 数仓建模理论+实践 -> hbase -> redis -> kafka -> elk -> scala -> spark -> kylin -> flink -> 实时数仓项目

以上为大数据学习必备知识!!!

学完以上技能后,有时间还需要学习比较流行的 OLAP 查询引擎
Impala 、 Presto、Druid 、 Kudu 、 ClickHouse 、 Doris

如果还有时间,可以学习数据治理相关的内容,如元数据管理,数据湖等
Atlas 、 Hudi


大数据面试:
https://link.zhihu.com/?target=h ... Xv4KsAyp2qj3-LhCl1A

精挑细选的大数据技术书籍:
https://link.zhihu.com/?target=h ... Joywm8cv5LmReRY9PXQ



作者:五分钟学大数据
来源:https://www.zhihu.com/question/299830109/answer/1788219176


最新经典文章,欢迎关注公众号http://www.aboutyun.com/data/attachment/forum/201903/18/215536lzpn7n3u7m7u90vm.jpg

lynx99 发表于 2021-11-11 13:47:34

感谢分享

zhouyongheng 发表于 2021-11-11 15:34:58

牛,,,,思路清晰!!
页: [1]
查看完整版本: 大数据工程师的日常工作内容分享