• 大数据工程师的日常工作内容是干嘛?


    本文来源:知乎

    大家好,我是脚丫先生 (o^^o)

    最近小伙伴们,有问到大数据工程师岗位平常的日常工作都是干嘛的?

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

    一个项目一般包含:前端,后端,后后端,大数据属于后后端,是在项目开发完成之后有了数据之后才到大数据这一步。从上帝视角看张图:

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

    一、数仓工程师 (全称:数据仓库工程师)

    数仓工程师日常工作一般是不写代码的,主要以写 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架构)

    二、大数据开发工程师

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

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

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

    三、ETL工程师

    ETL是三个单词的首字母,中文意思是抽取、转换、加载从开始的图中也能看出,ETL工程师是对接业务和数据的交接点,所以需要处理上下游的关系对于上游,需要经常跟业务系统的人打交道,所以要对业务系统比较熟悉。

    比如它们存在各种接口,不管是API级别还是数据库接口,这都需要ETL工程师非常了解。

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

    需要重点掌握的技能。

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

    四、数据分析工程师

    在数据工程师准备好数据维护好数仓后,数据分析师就上场了。

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

    需要重点掌握的技能:

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

    总结:

    1 写 SQL (很多入职一两年的大数据工程师主要的工作就是写 SQL )。

    2 为集群搭大数据环境(一般公司招大数据工程师环境都已经搭好了,公司内部会有现成的大数据平台,但我这边会私下搞一套测试环境,毕竟公司内部的大数据系统权限限制很多,严重影响开发效率)

    3 维护大数据平台(这个应该是每个大数据工程师都做过的工作,或多或少会承担“运维”的工作)

    4 数据迁移(有部分公司需要把数据从传统的数据库 Oracle、MySQL 等数据迁移到大数据集群中,这个是比较繁琐的工作,吃力不讨好)

    5 应用迁移(有部分公司需要把应用从传统的数据库 Oracle、MySQL 等数据库的存储过程程序或者SQL脚本迁移到大数据平台上,这个过程也是非常繁琐的工作,无聊,高度重复且麻烦,吃力不讨好)

    6 数据采集(采集日志数据、文件数据、接口数据,这个涉及到各种格式的转换,一般用得比较多的是 Flume 和 Logstash)

    7 数据处理

    7.1 离线数据处理(这个一般就是写写 SQL 然后扔到 Hive 中跑,其实和第一点有点重复了)

    7.2 实时数据处理(这个涉及到消息队列,Kafka,Spark,Flink 这些,组件,一般就是 Flume 采集到数据发给 Kafka 然后 Spark 消费 Kafka 的数据进行处理)

    8 数据可视化(这个我司是用 Spring Boot 连接后台数据与前端,前端用自己魔改的 echarts)

    9 大数据平台开发(偏Java方向的,大概就是把开源的组件整合起来整成一个可用的大数据平台这样,常见的是各种难用的 PaaS 平台)

    10 数据中台开发(中台需要支持接入各种数据源,把各种数据源清洗转换为可用的数据,然后再基于原始数据搭建起宽表层,一般为了节省开发成本和服务器资源,都是基于宽表层查询出业务数据)

    11 搭建数据仓(离线数仓和实时数仓)

    总之就是离不开写 SQL …

    好了,今天就聊到这里,祝各位终有所成,收获满满!

    更多精彩内容请关注 微信公众号 👇「大数据指北」🔥:


    一枚热衷于分享大数据基础原理,技术实战,架构设计与原型实现之外,还喜欢输出一些个人私活案例。


    更多精彩福利干货,期待您的关注 ~

  • 相关阅读:
    vue3.2新增指令v-memo的使用
    Ajax了解及请求方式
    工厂模式之简单工厂模式(常用)
    Go重写Redis中间件 - Go实现内存数据库
    【JS】Chapter10-Bom 操作
    图论应用——拓扑排序
    Web2 vs. Web3,社交工具的发展会有什么变化?
    Spring Cloud Gateway从数据库读取并更新Cors配置
    EdgeNeXt轻量化学习笔记
    Python中的闭包是什么?
  • 原文地址:https://blog.csdn.net/shujuelin/article/details/126262904