在创建模型以前,在数据通过清洗用于探索分析以前,甚至在数据科学家工做开始以前,数据工程师就已经闪亮登场了。每个数据驱动的业务都须要一个适用于数据科学管道的框架,不然就是失败的配置。html
大多数人怀揣着成为数据科学家的梦想进入数据科学世界,但却没有意识到数据工程师是作什么的,或者这个角色须要具有什么能力。数据工程师是数据科学项目的重要组成部分,以致于在当今数据丰富的环境里,产业对他们的需求正在指数式地上涨。python
目录mysql
1. 什么是数据工程师linux
2. 数据科学家和数据工程师的区别git
3. 数据工程中的不一样角色程序员
4. 数据工程认证github
5. 核心数据工程技能及其学习资源redis
数据工程简介算法
基本语言要求:Pythonsql
扎实的操做系统知识
丰富、深刻的数据库知识-SQL和NoSQL
数据仓库-Hadoop、MapReduce、Hive、Pig、Apache Spark、Kafka
基本的机器学习知识
6. 总结
数据工程师负责构建和维护数据科学项目的数据架构,他们必须确保服务器和应用程序之间的数据流是连续的。改进数据基础应用程序,将新的数据管理技术和软件集成到现有系统中,构建数据收集管道及其余各类各样的事情,都属于数据工程师的职责。
数据工程中最受欢迎的技能之一是设计和构建数据仓库的能力。数据仓库是收集、存储和检索全部原始数据的地方,若是没有数据仓库,一个数据科学家作的全部任务就会变得要么太昂贵,要么太大,以致于没法拓展。
ETL(提取、转换和载入)是数据工程师构建数据管道所遵循的步骤,它其实是一份关于如何处理、转换收集来的原始数据以备分析的蓝图。
数据工程师一般有着工程背景,与数据科学家不一样的是,这个角色不须要太多的学术和科学知识。所以,对构建大规模结构和体系结构的开发人员或工程师很是适合这个角色。
了解这两种角色之间的区别很是重要。从广义上讲,数据科学家综合使用统计学、数学、机器学习和行业知识来构建模型。他/她必须使用组织支持的相同工具/语言和框架来编码和构建这些模型。而数据工程师必须构建并维护适用于数据收集、处理和部署数据密集型应用的数据结构和体系架构。构建数据收集和存储管道,将数据汇总给数据科学家,从而将模型投入生产-这些只是数据工程师必须执行的任务中的一部分。
要使任何大规模数据科学项目取得成功,数据科学家和数据工程师须要携手合做,不然事情很快就会出错。
要了解有关这两个角色之间差别的更多信息,请访问咱们的详细信息图。
详细信息图:
https://www.analyticsvidhya.com/blog/2015/10/job-comparison-data-scientist-data-engineer-statistician/
数据架构师:数据架构师为数据管理系统收集、整合和维护全部的数据源奠基基础,这个角色须要了解SQL、XML、Hive、Pig、Spark等工具。
数据库管理员:顾名思义,担任此角色的人须要对数据库有着普遍的了解。职责包括确保数据库对全部须要的用户可用,适当地维护数据库,而且保证在添加新特性时没有任何中断。
数据工程师:精通以上众多技巧的人。正如咱们所见,数据工程师须要掌握数据库工具、Python和Java语言、分布式系统(如Hadoop)等知识,这个角色负责多种组合任务。
谷歌认证专家
这是目前最重要的数据工程认证之一。要得到此证书,你须要成功地经过一个具备挑战性的、2个小时多的考试,题型是多项选择题。你能够在这个网页上找到考试内容的大致范围,此外,这个网页提供给了一些实际操做谷歌云技术的实践指南。请必定要看一下!
谷歌认证专家:
https://cloud.google.com/certification/data-engineer
IBM认证数据工程师
要得到证书,你须要经过这个考试。考试包含54个问题,你必须正确回答44个。我建议在考试前,先了解IBM但愿你了解的内容。“考试”连接中还提供了学习资料的进一步连接,你能够参考这些资料进行准备。
IBM认证数据工程师:
https://www.ibm.com/certify/cert?id=50001501
考试:
https://www.ibm.com/certify/exam?id=C2090-101
Cloudera的CCP数据工程师
这是另外一个全球公认的认证,对新手来讲是一个至关具备挑战性的认证。你的概念须要更新和深刻,你应该有一些使用数据工程工具的实践经验,如Hadoop,Oozie,AWS Sandbox等。可是,若是你经过此次考试,对于你得到开启数据工程领域工做来讲,会是一个充满但愿的开始!
Cloudera曾提到,若是你参加他们的Apache Spark和Hadoop培训课程,这将有助于你经过考试,缘由是考试主要基于这两个工具。
Cloudera的CCP数据工程师:
https://www.cloudera.com/more/training/certification/ccp-data-engineer.html
Apache Spark和Hadoop培训课程:
https://www.cloudera.com/more/training/courses/developer-training-for-spark-and-hadoop.html
数据工程简介
基本语言要求:Python
扎实的操做系统知识
丰富、深刻的数据库知识-SQL和NoSQL
数据仓库-Hadoop、MapReduce、Hive、Pig、Apache Spark、Kafka
基本的机器学习知识
在深刻了解角色之间的不一样方面以前,首先得了解数据工程的实质是什么。数据工程天天执行的不一样工做是什么?顶尖技术公司想要怎样的数据工程师?你是应该了解可见的全部一切,仍是仅仅了解与某一特定角色相关的东西?个人目的是提供如下参考资料,以助你找到这些问题或者其他更多问题的答案。
《数据工程入门指南》(第1部分):这是一篇很是受欢迎的、有关数据工程的文章,出自爱彼迎(Airbnb)的一位数据科学家之手。做者首先解释了为何数据工程是全部机器学习项目中如此关键的一方面,而后深刻探讨了本主题的每一个部分。我认为这是全部想要成为数据工程师、数据科学家的新手们必读的一篇文章。
《数据工程入门指南》(第1部分):
https://medium.com/@rchang/a-beginners-guide-to-data-engineering-part-i-4227c5c457d7
《数据工程入门指南》(第2部分):接着上面的文章,第2部分将介绍数据建模、数据分区、Airflow和ETL的最佳实践。
《数据工程入门指南》(第2部分):
https://medium.com/@rchang/a-beginners-guide-to-data-engineering-part-ii-47c4e7cbda71
《数据工程入门指南》(第3部分):这是入门指南系列中的最后一部分,本部分将介绍数据工程框架的概念。在整个系列中,做者不断将理论与Airbnb的实践相结合,从而写了一篇篇精妙绝伦的文章,并且还在持续更新中。
《数据工程入门指南》(第3部分):
https://medium.com/@rchang/a-beginners-guide-to-data-engineering-the-series-finale-2cc92ff14b0
O'Reilly的免费数据工程电子书套件:O'Reilly以其优秀的图书而出名,这一系列也不例外。不过,这些书是免费的!向下滚动到“大数据架构”部分,查看那里的书籍。有些书籍须要有大数据基础设施的基本知识,但这些书将有助于你熟悉复杂的数据工程任务。
O'Reilly的免费数据工程电子书套件:
https://www.oreilly.com/data/free/
虽然还有其余的数据工程专用编程语言(如JAVA和Scala),但咱们本文将只关注Python。咱们看到业界已经明显转向使用Python,并且使用率正在快速上升。它已经成为数据工程师(和数据科学家)技能的重要组成部分。
网络上有大量的学习Python资源,我在下面提到了其中的一些。
在Scratch平台上使用Python学习数据科学的完整教程:KunalJain的这篇文章涵盖了一系列能够用来开始学习和提高Python的资源,这是必读的资源。
在Scratch平台上使用Python学习数据科学的完整教程:
https://www.analyticsvidhya.com/blog/2016/01/complete-tutorial-learn-data-science-python-scratch-2/
使用Python的数据科学导论:这是Analytics Vidhya上最受欢迎的课程,涵盖了Python的基本知识。咱们还额外介绍了核心统计概念和预测建模方法,以巩固你对python和数据科学基础的理解。
使用Python的数据科学导论:
https://trainings.analyticsvidhya.com/courses/coursev1:AnalyticsVidhya+DS101+2018T2/about
Codeacademy上学习Python课程:本课程不须要编程基础,绝对是从python的最基础开始,这是一个很好的起点。
Codeacademy上学习Python课程:
https://www.codecademy.com/learn/learn-python
若是你喜欢经过书原本学习,下面是一些免费的电子书,便于你开始学习:
Allen Downey的《思考Python》:全面深刻地介绍了Python语言,很是适合新手,甚至非程序员。
Allen Downey的《思考Python》:
http://www.greenteapress.com/thinkpython/thinkpython.pdf
Python 3的非程序员教程:顾名思义,它是非IT背景和非技术背景新手们的完美起点,每章都有大量的示例来测试你的知识。
Python 3的非程序员教程:
https://upload.wikimedia.org/wikipedia/commons/1/1d/Non-Programmer%27s_Tutorial_for_Python_3.pdf
在整个数据科学世界的“机器”中,操做系统是使管道运转起来的重要“齿轮”。数据工程师应该了解基础设施组件(如虚拟机、网络、应用程序服务等)的输入和输出。你对服务器管理有多精通?你对Linux是否有足够的了解,能够浏览不一样的配置吗?你对访问控制方法有多熟悉?做为一名数据工程师,这些只是你将面临的一些问题。
Linux服务器管理和安全:本课程是为那些想了解Linux如何在公司应用的人而设计的,课程内容分为4周(最后还有一个项目),详细介绍了这个主题中的全部基本内容。
Linux服务器管理和安全:
https://www.coursera.org/learn/linux-server-management-security
CS401-操做系统:和其余操做系统课程同样全面,这个课程包含9个部分,专门介绍操做系统的不一样方面。主要介绍基于Unix的系统,尽管Windows也包括在内。
CS401-操做系统:
https://learn.saylor.org/course/cs401
Raspberry Pi平台和Raspberry Pi的python编程:这是一个煊赫一时的编程方式,如今对这种编程人员的需求空前高涨。本课程旨在让你熟悉Raspberry Pi环境,并让你开始学习Raspberry PI上的python基本代码。
Raspberry Pi平台和Raspberry Pi的python编程:
https://www.coursera.org/learn/raspberry-pi-platform
为了成为一名数据工程师,你须要熟练掌握数据库语言和工具。这是另外一个很是基本的要求,你须要具有实时从数据库收集、存储和查询信息的能力。现今有不少可用的数据库,我已经列出了目前在业界普遍使用的数据库的相关资源,分为SQL和NoSQL两部分。
SQL数据库
免费学习SQL:这是codecademy另外一个课程,你能够在这里学到SQL很基本的知识,像操做、查询、聚合函数这些主题从一开始就涵盖了。若是你是这个领域的新手,没有比这更好的起点了。
免费学习SQL:
https://www.codecademy.com/learn/learn-sql
快速查找SQL命令的备忘录:一个很是有用的Github存储库,包含按期更新的SQL查询和示例。为了保证你在任什么时候候均可以快速查找SQL相关命令,请将为这个存储库加入收藏,做为平常参考。
快速查找SQL命令的备忘录:
https://github.com/enochtangg/quick-SQL-cheatsheet
MYSQL教程:MySQL建立于20多年前,至今还是业界的热门选择。这个资源是一个基于文本的教程,易于理解。这个站点最酷的是,每一个主题都附带实用示例的SQL脚本和屏幕截图。
MYSQL教程:
http://www.mysqltutorial.org/
学习Microsoft SQL Server:本教程从基础知识到更高的主题探讨SQL Sever的概念,并以代码和详细的屏幕截图的方式解释了概念。
学习Microsoft SQL Server:
https://www.tutorialspoint.com/ms_sql_server/
PostgreSQL教程:这是一个让人惊叫的详细指南,让你开始和熟悉PostgreSQL。本教程分为16个部分,所以你彻底能够想象出该课程的覆盖面有多广。
PostgreSQL教程:
http://www.postgresqltutorial.com/
Oracle Live SQL:谁能比建立者更好地学习Oracle SQL数据库?这个平台设计得很是好提供了良好的终端用户体验。你能够在这个平台上查看脚本和教程,而后还能够在这里编码。哇,这太棒啦!
Oracle Live SQL:
https://livesql.oracle.com/apex/f?p=590:1000
NoSQL数据库
MongoDB来自MongoDB:这是目前最流行的NoSQL数据库,和上面说起的Oracle培训课程同样,学习MongoDB最好的方式是从建立它的大师们那里学习。我在这里连接了他们的整个课程目录,你能够选择你想参加的培训课程。
MongoDB来自MongoDB:
https://university.mongodb.com/courses/catalog
MongoDB简介:本课程将帮助你快速启动和运行MongoDB,并教你如何利用它进行数据分析。这是一个为期3周的短课程,但有大量的练习。当你完成的时候,会以为本身就是一名专家了!
MongoDB简介:
https://www.coursera.org/learn/introduction-mongodb
学习Cassandra:若是你正在寻找一个优秀的、基于文本的、新手易于理解的Cassandra简介,这会是一个完美的资源。像Cassandra的架构、安装、关键操做等主题都会在这里有所介绍,本教程还提供了专门的章节来说解CQL种可用的数据类型和集合、以及如何使用用户自定义的数据类型。
学习Cassandra:
https://www.tutorialspoint.com/cassandra/index.htm
Redis Enterprise:了解Redis的资源很少,但这一个站点就足够了。有多个课程和精心设计的视频,令人沉浸其中,乐趣无穷,并且它是免费的!
Redis Enterprise:
https://university.redislabs.com/
Google Bigtable:做为Google的产品,学习BigTable工做原理的资源稀缺得让人惊讶,我连接了一个包含大量谷歌云主题的课程,你能够向下滚动,选择BigTable(或BigQuery)。不过,我建议你仔细阅读整个课程,由于它提供了有关谷歌整个云产品如何工做的宝贵看法。
Google Bigtable:
https://www.coursera.org/learn/gcp-fundamentals
Couchbase:这里提供多种培训课程(向下滚动查看免费培训课程),从初学者到高级都有。若是Couchbase是大家所用的数据库,那么你将在这里了解有关它的全部信息。
Couchbase:
http://training.couchbase.com/store
如今,在每个数据工程师的工做描述中都会看到像Hadoop(HDFS)这样的分布式文件系统。它是全部角色都须要掌握的,你应该很是熟悉。除此以外,你还须要了解ApacheSpark、Hive、Pig、Kafka等平台和框架,我在本节列出了全部这些主题的资源。
Hadoop和MapReduce
Hadoop基础知识:这本质上是Hadoop的学习路径,它包括5门课程,可让你深刻地了解hadoop是什么、定义它的体系结构和组件是什么、如何使用它、它的应用怎么样以及其余更多的内容。
Hadoop基础知识:
https://cognitiveclass.ai/learn/hadoop/
Hadoop入门包:对于想要着手开始学Hadoop的人来讲,这是一个很是全面的、优秀的免费课程。它包括HDFS、MapReduce、Pig和Hive之类的主题,能够经过免费访问集群来练习所学的内容。
Hadoop入门包:
https://www.udemy.com/hadoopstarterkit/
HortonWorks教程:做为Hadoop的建立者,HortonWorks拥有一套使人万分期待的课程,能够学习与Hadoop相关的各类知识。从低级到高级,本页有着很是全面的教程列表,必定要看一下这个!
HortonWorks教程:
https://hortonworks.com/tutorials/
MapReduce简介:在阅读本文以前,你须要了解Hadoop的基本工做原理。请完成后,再回来深刻了解MapReduce的世界。
MapReduce简介:
https://www.analyticsvidhya.com/blog/2014/05/introduction-mapreduce/
Hadoop超越了传统的MapReduce-简版:本文介绍了Hadoop生态系统的概述,它超越了简单的MapReduce。
Hadoop超越了传统的MapReduce-简版:
https://www.analyticsvidhya.com/blog/2014/11/hadoop-mapreduce/
更喜欢书吗?别担忧,我已经帮你选好了!下面是一些免费电子书,涵盖hadoop和它的组件。
《Hadoop详解》:简要介绍Hadoop的复杂体系,对Hadoop的工做原理、优点、现实场景中的应用程序等进行了高层次的概述。
《Hadoop详解》:
https://www.packtpub.com/packt/free-ebook/hadoop-explained
《Hadoop-你应该了解的》:这本书和上面的书有类似的内容。正如描述所说,这些书所涵盖的内容足够让你了解Hadoop的方方面面,从而作出明智的决策。
《Hadoop-你应该了解的》:
https://www.oreilly.com/data/free/hadoop-what-you-need-to-know.csp?intcmp=il-data-free-lp-lgen_free_reports_page
《使用MapReduce进行数据密集型文本处理》:这本免费电子书涵盖了MapReduce的基本知识及其算法的设计,而后深刻探讨了你应该了解的示例和应用程序。建议你在阅读这本书以前先上上述课程。
《使用MapReduce进行数据密集型文本处理》:
https://lintool.github.io/MapReduceAlgorithms/MapReduce-book-final.pdf
你应该加入Hadoop LinkedIn小组,以保证本身获取最新的消息,并询问你的任何问题。
Hadoop LinkedIn小组
https://www.linkedin.com/groups/988957/profile
Apache Spark
Apache Spark、RDD和Dataframes(使用PySpark)的综合指南:这是一篇让你开始学习Apache Spark的终极文章,属于必读指南。它介绍了Apache Spark的历史以及如何使用Python、RDD/Dataframes/Datasets安装它,而后经过解决机器学习问题,对本身的知识点进行查漏补缺。
Apache Spark、RDD和Dataframes(使用PySpark)的综合指南:
https://www.analyticsvidhya.com/blog/2016/09/comprehensive-introduction-to-apache-spark-rdds-dataframes-using-pyspark/
初学者学习Spark R的详细指南:若是你是R的用户,这个就是为你准备的!固然,你可使用Spark和R,本文能够做为你的指南。
初学者学习Spark R的详细指南:
https://www.analyticsvidhya.com/blog/2016/06/learning-path-step-step-guide-beginners-learn-sparkr/
Spark的基础知识:本课程涵盖Spark的基础知识、组件、使用方法、使用它的交互式示例和各类Spark库,最后了解Spark集群。你还能从这门课程中要求更多的内容吗?
Spark的基础知识:
https://cognitiveclass.ai/courses/what-is-spark/
ApacheSpark和AWS简介:这是一门以实践为中心的课程。你将处理古登堡项目数据,它是世界上最大的电子书开放数据集。你还须要了解Python和Unix命令行,以便从本课程中学到更多。
ApacheSpark和AWS简介:
https://www.coursera.org/learn/bigdata-cluster-apache-spark-and-aws
涵盖Hadoop、Spark、Hive和Spark SQL的综合教程
大数据基础知识-HDF、MapReduce和Spark RDD:本课程采用真实的数据来教你基本的大数据技术-HDFS、MapReduce和Spark。这门课程很是详细,示例丰富,数据集实用,并且教师很优秀,属于经典课程。
大数据基础知识-HDF、MapReduce和Spark RDD:
https://www.coursera.org/learn/big-data-essentials
大数据分析-Hive、Spark SQL、DataFrames 和GraphFrames:MapReduce和Spark解决了处理大数据的部分问题,经过这门直观的课程你能够掌握这些高级工具,从而掌握有关Hive和Spark SQL等方面的知识。
大数据分析-Hive、Spark SQL、DataFrames 和GraphFrames:
https://www.coursera.org/learn/big-data-analysis
大数据应用-实时流:处理大数据的挑战除了要具有处理数据的计算能力,还要具有尽量快的处理速度。像推荐引擎这样的应用程序须要实时地进行大量数据的处理、存储和查询,这就要求你掌握本课程中所提供的诸如Kafka、Cassandra和Redis等系统的知识。但要学习这门课程,你须要了解Hadoop、Hive、Python、Spark和Spark SQL的应用。
大数据应用-实时流:
https://www.coursera.org/learn/real-time-streaming-big-data
Kafka
使用Apache Kafka简化数据管道:了解Apache Kafka及其体系架构和使用方法,你须要对Hadoop、Spark和Python有基本的了解,才能真正从本课程中得到最大的收获。
使用Apache Kafka简化数据管道:
https://cognitiveclass.ai/courses/simplifyingdatapipelines/
Kafka官方文档:这是一个很是直观地介绍Kafka的工做原理及其组件的网页,它还提供了一个关于分布式流媒体平台的解释说明,很是棒!
Kafka官方文档:
https://kafka.apache.org/intro
用Kafka给数据科学家赋能:这自己不是一个很好的学习资源,而是一篇介绍Stitch Fix的数据工程师如何根据数据科学家的要求构建一个平台的文章,很是有趣,并且十分详细。
用Kafka给数据科学家赋能:
https://multithreaded.stitchfix.com/blog/2018/09/05/datahighway/
虽然人们广泛认为机器学习是数据科学家的领域,但数据工程师也须要精通其中的某些技术,缘由在于你须要简化将模型投入生产的过程和用于数据收集、生成的管道。所以,你须要对机器学习算法有一个基本的了解。
学习机器学习基础知识的新手指南:做者Kunal Jain精彩地介绍了机器学习世界,旨在消除你听到或读到地全部行话。指南直截了当地切入问题的核心,最终你会爱上这种写做风格。
学习机器学习基础知识的新手指南:
https://www.analyticsvidhya.com/blog/2015/06/machine-learning-basics/
机器学习算法基本知识:这是一篇优秀的文章,提供了各类对机器学习算法的高层次理解,还提供了在R和python实现这些算法的指南,这是开启你学习旅程的绝佳地点!
机器学习算法基本知识:
https://www.analyticsvidhya.com/blog/2017/09/common-machine-learning-algorithms/
新手必读的机器学习和人工智能书籍:若是你更喜欢看书,那么请阅读本文!这里收藏了最优秀的书,即便你只读了其中的几本,这也会助你朝着梦想中的事业迈进一大步!
新手必读的机器学习和人工智能书籍:
https://www.analyticsvidhya.com/blog/2018/10/read-books-for-beginners-machine-learning-artificial-intelligence/
提高你知识和技能的24个终极数据科学项目:一旦你得到了必定量的知识和技能,请必定要把你的理论知识付诸实践。查看这些数据集,按照易到难的顺序,开始处理吧!
提高你知识和技能的24个终极数据科学项目:
https://www.analyticsvidhya.com/blog/2018/05/24-ultimate-data-science-projects-to-boost-your-knowledge-and-skills/
成为一名数据工程师并不容易,由于你须要从以上全部的资源中获取信息,并且你还要有着将工具、技术和职业道德融为一体的深刻理解。因为如今是数据时代,数据工程师在业内需求巨大,对于任何愿意从事这一工做的人来讲,这依旧是一个收入可观的职业选择!
一旦你走上这条路,就力争成为数据工程师吧!