2021 Data Engineer求职必备技能

2021 Data Engineer求职必备技能

因为我对数据科学、数据分析和云计算方面有一些了解,所以经常会被问到一些了类似的问题。除了想知道数据工程师和数据科学家之间的区别外,有个最常见的问题就是“作为数据工程师,我应该学习哪些技能?”

对于一名新晋或即将成为数据工程师的人来说,这是一个很好的问题。

实际上,现在的公司比以往任何时候都更需要数据工程师。按照我们目前的速度,大约每天都要创建2.5千亿字节的数据,而且,这个数字还在以更快的速度增长。有专家预估,到2025年,全世界每天会产生463 EB的数据,相当于每天产生212,765,957张DVD。

为了更好地利用数据,公司现在意识到他们需要聘请数据工程师,把他们的数据从A点带到B 点。这样,数据科学家和分析师就可以轻松地利用数据,来提高效率和生产率。这就是为什么在2019年的一项分析中,“数据工程师”这个职业头衔增长最快的原因。

为了帮助你成为一名新的数据工程师,我创建了一个技能金字塔,你可以把它当作技能需求的层次结构。帮助你专注于那些你应该先学习的技能,为你学习更具体的技能打下坚实的基础。请记住,学习金字塔每一步,都不能太死板或严格按照顺序走。你可以把每个步骤分层,帮助你在学习中进步。那让我们开始吧!如果你想了解更多数据分析相关内容,可以阅读以下这些文章:
数据可观察性:数据工程师的求职新重点
神奇动物在哪里:数据科学家和数据工程师大揭秘!
数据科学家与数据分析师、数据工程师到底有何差别?
剖析Scala | 数据工程师评价Scala语言的现状和发展

Python和SQL

在金字塔的底部,我建议学习结构化查询语言(SQL)或者其他形式的编程。

当我说到编程,其实我指的是学习它的核心概念,比如loop、if语句、函数和数据结构。你需要了解它们是什么,它们做什么,以及它们是如何运作的。为什么要用这个,而不是另一个?

要成为一名成功的数据工程师,你需要成为一名熟练的程序员。目前,我们生活在Python时代,它仍然是一个标准的入门点。这种编程语言非常适合网站、脚本和数据。SQL是数据语言,与自动化、脚本和数据库建模有关。虽然年代久远,但它仍然在管理和处理数据方面发挥着关键作用。

SQL和Python都是职位列表中列出的最常见的技术。所以,无论一个数据工程师是在Apple这种大公司,还是在小型初创公司工作,他们都必须是SQL方面的专家。而且,公司对Python的需求也依然很高。

最适合你的语言和技术,主要取决于你的专攻目标。比如,数据处理方面的专家可能非常精通Spark或AWS。不过在达到这一点之前,你需要学习基础知识。

ETL和数据仓库

下一个层次包括了ETL(提取、转换、加载)和ELT,它们能让你把数据从一个点带到另一个点,而这一过程通常会使用到工具或编程。数据要经过处理、提取、经常地转换,然后加载到数据湖或数据库中。想要了解移动数据对于下一组数据集的影响,不但跟数据仓库、数据湖有关,有时还和数据湖屋的技能有关:

  • 数据仓库可以帮助你理解数据建模,以及为什么有经验的数据工程师会以某种方式处理数据。获得这种启发能够确保你有更高的一致性,帮助公司做出更明智的决策。
  • 基于公司的岗位来理解数据湖,这让企业以一种比数据仓库更便宜、更繁重的方式来管理数据。
  • 数据湖屋(Data lake houses)是一个在过去一年中变得流行的术语。同样,企业们觉得这是一个有吸引力的选择,是因为它结合了数据仓库和数据湖的元素。

你可以花大量时间来学习上面的三个系统,因为在ETL、数据建模等方面有很多最佳实践。不要很仓促地去完成这层的学习,因为它是数据工程的“主要内容”。

问自己一些关键性的问题,比如:

  • 这三个概念是什么?它们从哪里演变来的,又会演变到哪里?
  • ETLs 和 ELTs的区别在哪里?
  • 从商业的角度来看,这一层的目标是什么?

Cloud, DevOps,和数据可视化

等你获得更多经验以后,这一层背后的基础知识就相当简单了。但当你刚刚开始培养自己的数据工程师技能时,一切似乎都让人不知所措——因为有很多东西需要你学习。

  • 首先从无服务计算、云数据仓库等方面了解云。如果你将来要去一家初创公司工作,这些知识将都很有价值。
  • DevOps能帮你把环境中的代码引入生产环境。熟悉Git—一种用于源代码管理的工具。
  • 在学习数据可视化时,你会选择用Tableau这类工具,同时还要学习最佳实践。

流数据、分布式计算和专业化

在了解了前三层以及其中的概念之后,你就可以更具体地使用自己的方法了。因为你拥有了ETL和数据仓库方面的背景,并且会习惯使用云计算,所以,在AWS Kinesis上设置一些东西对你来说会更容易。

在这一阶段,你还可以更深入地研究分布式处理,以及使用这种系统的利弊。

很多数据工程师在努力成为一名专家,他们严格地与微软(Microsoft)、Azure数据工厂(Azure data Factory)等等公司进行合作。许多公司都在寻找特定领域的专家,这是许多新数据工程师在磨练技能时都要考虑到的问题。

知识渊博最好的一点,是你可以自由选择你想要关注的事情。有些人喜欢构建基础设施组件,而另一些人可能更喜欢构建数据产品。

作为一个新手数据工程师,你的目标是帮助公司更好地管理他们的数据,但是,不论公司有多大或有多成功,数据问题总是存在的。这对新晋数据工程师来说非常有用,因为它增加了工作的保障性。

所以,总的来说,数据工程师应该具备哪些技能呢?

  • 能够构建和维护数据库系统。
  • 理解并熟练掌握编程语言——尤其是Python和SQL。
  • 了解如何查找、使用仓储解决方案、以及ETL工具。
  • 对云计算技术、数据可视化等有深入了解。
  • 熟悉最基本的程序,根据你的专业知识构建特定的软件技能。比如,针对于Redshift、Azure、Apache等的技能。

和数据科学家和数据分析师不同,与分析和解释数据相比,数据工程师更关心如何准备数据。尽管这三个工作的很多技能都有重叠,但数据工程师更专注于 ETL、数据仓库、高级编程、脚本、数据可视化和流水线。而深入了解 SQL是必不可少的。

一旦磨练了上述技能,你就可以自由地掌握最吸引你的系统、工具和模型。所以,无论你是对管理公司的大数据基础设施感兴趣,还是对机器学习感兴趣,你的职业生涯都可以立即开始。好好利用今天讨论的基本技能吧!你还可以订阅我们的YouTube频道,观看大量数据科学相关公开课:https://www.youtube.com/channel/UCa8NLpvi70mHVsW4J_x9OeQ;在LinkedIn上关注我们,扩展你的人际网络!https://www.linkedin.com/company/dataapplab/

原文作者:SeattleDataGuy
翻译作者:Lea
美工编辑:过儿
校对审稿:Jiawei Tong
原文链接:https://betterprogramming.pub/what-skills-does-a-data-engineer-need-55ea69f77422