这个年代每个人都想成为数据科学家。但数据工程呢?从本质上讲,它是数据分析师和数据科学家之间的混合体。数据工程师负责管理数据工作流,管道和ETL流程。鉴于这样的功能,市场对数据工程师的需求其实十分巨大,如果您想成为这样的英雄,那么开始学习永远不会太晚。在这篇文章中,我整理了所有必要的信息,以帮助您迈出第一步。

什么是数据工程?

没有比这更好的解释了:
科学家可以发现一颗新星,但他无法制造一颗。他不得不请工程师为他做 - 戈登·林赛·格莱格
数据工程与数据相关联,包括数据获取,存储和处理。因此,工程师的主要任务是为数据提供可靠的基础架构。如果我们看一下需求的层次结构,数据工程将进入其中的前2-3个阶段:收集,移动和存储,数据准备。

数据工程师做什么?

随着“大数据”的出现,责任领域发生了巨大变化。如果这些专家早些时候使用Informatica ETL,Pentaho ETL,Talend等工具编写了大型SQL查询并超过了数据,那么现在对数据工程师的要求已经提高。
大多数招聘数据工程师的公司都有如下需求:
  • 精通SQL和Python
  • 熟练使用云计算平台
  • 对SQL和NoSQL数据库有很好的理解(数据建模,数据仓库)
请记住,这只是必需品。从这个清单中,我们可以假设数据工程师是软件工程和后端开发领域的专家。
例如,如果公司开始从不同的来源生成大量数据,那么作为数据工程师,您的任务就是组织信息的收集,处理和存储。
在这种情况下使用的工具列表可能会有所不同,一切取决于数据的数量,其到达速度和异构性。大多数公司根本没有大数据,因此,作为集中存储库,即所谓的数据仓库,您可以使用带有少量脚本的SQL数据库(PostgreSQL,MySQL等)将数据驱动到存储库中。
谷歌,亚马逊,脸谱等IT巨头有更高的要求:
  • 掌握Python,Java或Scala
  • 大数据经验:Hadoop,Spark,Kafka
  • 算法和数据结构知识
  • 了解分布式系统的基础
  • 具备Tableau或ElasticSearch等数据可视化工具的经验将是一大优势
简单来说,大数据对工程师的要求更高,因为必须在高负载下进行处理。

数据工程师 vs 数据科学家

首先,您应该知道数据科学与数据工程师的角色和技能之间确实存在很多差异。因此,您很容易为成功的数据工程师所需的技能感到困惑。数据科学是真实的事物,但是世界正在转变为功能性数据科学世界,从业者可以进行自己的分析。您需要数据工程师(而不是数据科
学家)来创建数据管道和集成数据结构。
数据工程师比数据科学家有更多需求吗?是的,因为在制造美味佳肴之前,首先得有原料!

数据工程师必须掌握的技能

1. 算法和数据结构
使用正确的数据结构可以大大提高算法的性能。理论上程序员应该学校学习数据结构和算法,但现实并非如此。下方是我最喜欢的在线课程,用于学习数据结构和算法:
  • 数据结构从入门到精通(Udemy)
  • 算法,第一部分(Coursera)
  • 算法,第二部分(Coursera)
另外不要忘了Thomas Cormen撰写的有关算法的经典著作:算法简介。当您需要刷新记忆时,这是完美的参考。
您还可以在YouTube上观看卡内基·梅隆大学的精彩视频,深入数据库的世界:
  • 数据库系统简介
  • 先进的数据库系统
2. 学习SQL
SQL(结构化查询语言)是数据领域的通用语言。不管有人怎么贬低它,SQL都可以生存,并且可以生存很长时间。如果您是经验丰富的开发,您可能会注意到有关SQL即将死亡的谣言会定期出现。该语言开发于70年代初期,在分析人员,开发人员和狂热者中仍然非常流行。
在数据工程领域,不懂SQL将寸步难行,因为您将不可避免地从数据库中获取数据。所有现代大数据仓库都支持SQL:
  • 亚马逊Redshift
  • 惠普Vertica
  • 甲骨文
  • SQL服务器
为了分析存储在HDFS等分布式系统中的大量数据,发明了SQL引擎:Apache Hive,Impala等。
如何学习SQL?只需要不断练习。
我建议您熟悉Mode Analytics提供的优秀教程,该教程是免费的。
  • 中级SQL
  • 在SQL中连接数据
3. 用Python和Java / Scala编程
为什么要学习Python,因为这是应用数据科学的最佳工具。对于Java和Scala,大多数用于存储和处理大量数据的工具都是用这些语言编写的。例如:
  • Apache Kafka(Scala)
  • Hadoop,HDFS(Java)
  • Apache Spark(Scala)
  • Apache Cassandra(Java)
  • HBase(Java)
  • Apache Hive(Java)
要了解这些工具的工作方式,您需要了解它们所使用的语言。Scala的函数式编程使您可以有效地解决并行数据处理的问题,在性能方面,python远远比不上Scala。
要深入学习Scala语言,您可以阅读该语言作者的《使用Scala编程》。此外,Twitter公司还发布了一个很好的入门指南Scala School。
至于Python,我认为Fluent Python是最好的中级水平的书。
4. 大数据工具
以下是大数据世界中最受欢迎的工具列表:
  • Apache Spark
  • Apache Kafka
  • Apache Hadoop(HDFS,HBase,Hive)
  • Apache Cassandra
最受欢迎的工具是Spark和Kafka,他们绝对值得探索,最好从内部了解它们的工作方式。
Hadoop简介可以是《精通Hadoop的完整指南》(免费)。
对我来说,关于Apache Spark的最全面的指南是Spark:权威指南。
5. 云平台
熟练使用至少一个云平台是数据工程师的必备条件。按照市场份额划分,最顶尖的云服务提供商是:亚马逊AWS,谷歌CloudPlatform,微软Azure。
6. 分布式系统
大数据通常存储在独立运行的计算机集群,它们之间的通信是通过网络进行的。群集越大,其成员节点发生故障的可能性越大。要成为出色的数据专家,您需要了解分布式系统的问题和现有解决方案。Andrew Tanenbaum被认为是该领域的先驱。对于那些想学习复杂理论的人,我推荐他的《分布式系统》一书,对于初学者来说可能很难,但是它确实可以帮助您提高技能。
我认为Martin Kleppmann的《设计数据密集型应用程序》是最好的入门书籍。对于那些喜欢看视频的人,Youtube上有一门分布式计算机系统课程。

7.数据管道

很多时候,数据工程师要构建所谓的数据管道(Data Pipeline)。数据管道可理解为将数据从一个地方传递到另一个地方的过程,这些可以是自定义脚本,可以转到外部服务API或进行SQL查询,丰富数据并将其放入集中式存储(数据仓库)或非结构化数据的存储(数据湖)。

汇总

除上面罗列的几点外,要成为优秀的数据工程师,还应该充分理解:
  • 信息系统
  • 软件工程(敏捷开发,DevOps,设计技术,SOA)
  • 分布式系统和并行编程
  • 数据库基础知识:计划,设计,操作和故障排除
  • 实验设计:A / B测试,用于将“概念验证”系统的可靠性,性能以及为提供“实时”交付好的解决方案而设计的流线型设计
最后我要说一件很重要的事情:成为数据工程师的过程并不像看起来那样容易,这是一个艰难的旅程,您必须为此做好准备。但是只要坚持,就能学到非常多的新技能。下方的学习曲线很好地说明了这一点。

【关于我们】

蜂鸟数据:开源金融数据库,聚合主流金融市场10000+时间序列,为广大金融从业者提供高质量的免费数据。我们的优势:1. 同时提供股票,外汇,商品期货的实时报价和历史数据;2. 提供高度统一的API接口,您可以把数据整合到自己的程序中,查看我们的API文档。

这是属于大数据的时代,蜂鸟数据的使命:用数据创造财富。如果您有建设性意见,欢迎给我们留言。

数据工程师的终极指南相关推荐

  1. 数据科学面试终极指南

    以阅读本文大概需要 2.9 分钟. 今天给大家推荐一本免费的电子书. ​ 相信关注我的大部分都是想转行做数据行业的,但在这个转行的过程中总是会遇到各种各样的问题. 例如分不清数据分析师.数据科学家.数 ...

  2. 【译Py】数据科学面试终极指南04

    [译Py]数据科学面试终极指南 [译Py]数据科学面试终极指南01 [译Py]数据科学面试终极指南02 [译Py]数据科学面试终极指南03 [译Py]数据科学面试终极指南04 [译Py]数据科学面试终 ...

  3. 【大数据技术分享】数据清理的终极指南

    我花了几个月的时间分析来自传感器.调查及日志等相关数据.无论我用多少图表,设计多么复杂的算法,结果总是会与预期不同.更糟糕的是,当你向首席执行官展示你的新发现时,他/她总会发现缺陷,你的发现与他们的理 ...

  4. 【译Py】数据科学面试终极指南(二)

    欢迎来我的简书:呆鸟的译Py胡言 聘用数据科学家的行业   各行业对数据科学的要求不一样.每个行业都有专业知识,数据类型也因此不同,比如学校与银行关注的指标就不一样.   假如求职者恰巧对要面试的行业 ...

  5. 【译Py】数据科学面试终极指南(四)

    欢迎来我的简书:呆鸟的译Py胡言 数据科学面试题 行为试题   与其它岗位的面试类似,数据科学面试也包括大量行为试题,面试官会考核求职者的软技能,了解求职者能否适应公司的企业文化. 请说明你以前做过的 ...

  6. 给软件工程师、数据科学家和数据工程师的面试指南:该做与不该做

    亚马逊这样的公司有 14 项领导原则 .他们不想仅仅雇佣一个数据科学家或软件工程师.对于许多只进行一次或两次面试的面试者来说,这可能没有那么明显,因为你太专注于回答面试的技术部分.但是,在你进行技术面 ...

  7. 《从零开始:成为顶尖测试工程师的终极指南》

    概要: 针对那些有意成为软件测试领域专家的人,本篇文章提供了一份详尽的指南.从基本测试方法论到高级技能,我们将分享测试工程师成功之道. 一.测试工程师的职责与重要性 软件测试的定义 质量保证与质量控制 ...

  8. ASIC设计-终极指南

    ASIC设计-终极指南 ASIC Design – The Ultimate Guide ASIC设计-终极指南 ASICs代表特定于应用的集成电路,指的是针对特定应用而设计的半导体解决方案,与其他解 ...

  9. 独家 | 一份数据工程师必备的学习资源,干货满满(附链接)

    作者:PRANAV DAR 翻译:张玲 校对:车前子 本文约6500字,建议阅读15分钟. 本文首先详细介绍了数据工程的职责.与数据科学家之间的差别以及其不同的工作角色,然后重点列出了很多与核心技能相 ...

最新文章

  1. antd 表单提交,文件和表单内容一起提交,表单校验
  2. 渐进式Web应用程序的深入概述
  3. es6 语法 (Proxy和Reflect 的对比)
  4. macOS的关于屏幕录制的快捷键和操作
  5. 深入了解以太坊虚拟机第2部分——固定长度数据类型的表示方法
  6. 缓冲池和String池
  7. oracle 空间数据字段,Oracle spatial创建空间数据的字段详解
  8. Redis - Redis command timed out nested exception is io.lettuce.core.RedisCommandTimeoutException
  9. UVA - 442:Matrix Chain Multiplication
  10. 再见,Spark!Flink已成气候!
  11. 如何用python做计算软件_如何用Python写一个计算器软件 附带效果图
  12. 【nodejs原理源码赏析(9)】用node-ssh实现轻量级自动化部署
  13. 房屋户型图设计工具Room Arranger for Mac
  14. 【STM32技巧】使用STM32 HAL库的硬件I2C驱动RX8025T实时时钟芯片
  15. 科学计算机感叹号,电脑网络黄三角感叹号怎么解决
  16. html设置幼圆字体,CSS font-family中文字体设置方法
  17. 计算机二三四级软考、志愿者实习、软著外观实用发明专利、著作、科研论文EI/SCI在大学期间野蛮成长方式
  18. oracle 删除数据违反约束条件,ORA-02292: 违反完整约束条件 处理
  19. 如何查看GPU的计算能力?
  20. SharePoint 2013 Search KQL 介绍及实例分析

热门文章

  1. transform:scale实现大屏自适应
  2. 天价高端茶礼是真文化还是智商税?
  3. 让座席管理工作听得见也看得着
  4. 短信字数的验证JAVA代码
  5. 你知道哪些冷门但逆天的 App?
  6. 【阴阳师】真蛇10层记录
  7. 【CRM】ReferenceError: XXX is not defined at eval(eval at RunHandlerInternal)
  8. python判断矩阵是否对称_矩阵的特征分解(推导+手算+python计算+对称矩阵的特征分解性质)...
  9. 高中计算机听课总结,中学新信息技术老师听课心得体会五篇
  10. Unity学习篇之txt文本文档的多种读写方式