简介
数据无处不在。近年来,随着互联设备数量的增长及其使用范围的扩大,世界正产生着海量数据,已无法再用传统方法加以处理。
据 Statista 称,截至 2021 年,全球共有 238 亿台设备连接至互联网,其中 58% 为物联网(IoT)设备(智能家居设备、联网自动驾驶汽车、工业设备等),其余 42% 为非物联网设备(笔记本电脑、智能手机等)。这意味着当今数据可来自多种来源,其中包括:
- 用户活动:任何用户操作都会产生数据,甚至我们在使用移动应用时点击的位置与频率等数据也很有价值。包含此类信息的每一条数据都需要被保存并分发至应用的数据中心。
- “物联网”设备:此类设备会产生海量信息,例如在不同地点生成的传感器数据。所有这些数据都需要被获取并发送到数据池以供进一步分析。
- 程序日志:当今的计算机应用由众多组件构成,而这些组件都会产生程序日志。这些日志会被发送到数据工程管道进行后续分析。
全球产生的各种结构化数据需要被传递至软件架构中的其他组件,或由业务分析师和数据科学家进行可视化与解读。然而,数据交付并非易事,其方式存在一些关键要求:
- 数据需以标准化结构交付
- 数据不应存在冲突
- 可能需要去除数据重复
- 数据必须可靠
- 数据交付需尽可能低延迟
因此,信息的交付是一个复杂过程;若处理不当,尤其对中大型公司会造成严重问题。这正是数据工程师大显身手之处。
在本文中,您将了解数据工程的基础,包括:
- 什么是数据工程,以及为何要确保稳健的数据管道
- 数据科学与数据工程的区别
- 数据工程日益流行的原因
- 优秀数据工程师应具备的技能
- DataCamp 如何帮助您成为数据工程师
数据工程师的职责是什么?
简单来说,数据工程师:
- 致力于让数据科学家和商业智能工程师(或任何与数据打交道的人)能够轻松获取与使用数据
- 优化公司的大数据系统架构
- 设计与配置数据库
- 与商业智能工程师、数据科学家和数据分析师团队协作
- 探索并转换数据 为了完成上述所有任务,数据工程师首先需要搭建 ETL 管道。
您可在我们的完整文章中进一步了解数据工程师的具体工作。
ETL 管道
ETL 管道以固定时间间隔接收复杂数据并对其进行处理,旨在将数据存储为可用的形式。建立和维护这些管道是数据工程师的职责。
ETL 管道包括 3 个环节:
- 抽取(Extract) 从数据源收集海量数据,格式各异。
- 转换(Transform) 鉴于数据来源不一致且格式不同,需要对数据进行处理,使其尽可能标准化。这将提高数据在后续步骤中的可发现性与可用性。
- 加载(Load) 数据被转换为可发现、可用的格式后,通常会存入数据仓库,使其随时可用于进一步分析。
数据仓库
数据仓库用于存储标准化数据,并针对大规模数据的筛选与读取进行了优化。在现代数据仓库中,既可存储结构化数据,也可存储非结构化数据,因为诸如照片与视频等难以归类的数据同样需要被保存。
数据工程 vs 数据科学
数据工程师与数据科学家的角色差异非常重要。一方面,数据科学家在公司中扮演着重要角色,因为他们推动数据驱动的决策。然而,数据科学家的成效取决于他们所能获得的数据质量。
另一方面,数据工程师负责设计系统,以有序且一致的方式向数据科学家提供数据。数据工程师让信息可用后,数据科学家再利用其提供的格式,在数据中寻找模式并得出结论。
数据工程师和数据科学家显然需要密切合作。我们可以把它比作一场足球比赛。足球中,教练制定创造进球机会的战术,并安排球员在特定位置。在这个比喻里,教练就是数据工程师;我们可以认为球是数据,而进球的球员是数据科学家。其余队员则是基础设施。
为什么数据工程越来越受欢迎?
根据 Burning Glass Nova 平台上的研究,2019 年关于“数据工程师”的职位发布增长了 88.3%。研究显示,自 2016 年以来,对数据工程师的需求持续上升。另一个有趣的信息是,数据工程师的职位空缺数量几乎是数据科学家的 5 倍。数据工程师的薪资也比数据科学家高出 20–30%。
如上所述,数据科学家是数据处理链条的最终环节。他们需要数据工程师先对数据进行处理,才能开展工作。随着数据来源与类型的倍增,对数据工程师的需求也随之增长。因此,企业近来开始加大在数据抽取与分发方面的投入。
在图 4.1 中,金字塔图展示了数据科学的需求层次。在这一层次结构中,分配给数据工程师的任务位于金字塔的底部,这也说明了数据工程师对企业的重要性。
Figure 4.1: 数据科学的需求层次结构。来源:hackernoon
数据工程师需要哪些技能?
如图 5.1 所示,数据工程师的技能通常与软件工程师和数据科学家的技能相互交织。
Figure 5.1: 数据岗位与技能集来源:RyanSwanstrom
数据工程师的角色更接近软件工程师还是数据科学家?
图 5.2 展示了一组数据工程师此前的职业背景。根据该图,超过 40% 拥有软件工程背景。这不仅意味着数据工程与软件工程的距离比我们最初想象的更近,也表明当今软件工程师转向数据工程的可能性高于转向其他任何领域。
Figure 5.2: 数据工程师的前职背景(前 10)。来源:stitchdata
在 DataCamp,我们认为优秀数据工程师应具备以下技能:
- 软件工程背景 数据工程师需要具备软件工程背景,运用面向对象编程、数据结构和算法的知识来解决数据工程挑战。数据工程师必须熟练掌握 Python、Scala 或 Java。
- 工具 数据工程师需要熟悉 Airflow、Apache、Kafka 等数据工程工具。
- 数据库技术 数据工程师应了解多种类型的数据库。
- 云技术 数据工程师应熟练使用多种云平台,如 Amazon Web Services、Google Cloud Platform 和 Microsoft Azure。他们还需要具备云架构和 DevOps 工具方面的经验,因为他们负责系统中数据流部分的自动化。
如何学习数据工程
如果您想要提升数据工程方面的能力,可以从完成以下推荐的 DataCamp 课程开始。通过学习这些课程并完成相关项目,您将更有可能成为数据工程领域实习或工作岗位的合适人选。
- Python 入门
- Python 进阶
- SQL 关系型数据库入门
- Scala 入门
- 数据工程入门
- 用 Python 介绍 Airflow
- AWS 云概念
- 探索伦敦出行网络(Snowflake、Redshift、BigQuery)项目
- 用 Python 构建数据工程管道
- NoSQL 概念
- Python 中的 ETL
- 流式处理概念
- 使用 AWS Kinesis 和 Lambda 进行数据流处理
此外,我们的数据工程师认证获得行业认可,能够帮助您向雇主证明自身能力。
如果您对这条职业路径感兴趣,欢迎阅读我们的另一篇文章,了解如何成为数据工程师。
简介
数据无处不在。近年来,随着互联设备数量的增长及其使用范围的扩大,世界正产生着海量数据,已无法再用传统方法加以处理。
据 Statista 称,截至 2021 年,全球共有 238 亿台设备连接至互联网,其中 58% 为物联网(IoT)设备(智能家居设备、联网自动驾驶汽车、工业设备等),其余 42% 为非物联网设备(笔记本电脑、智能手机等)。这意味着当今数据可来自多种来源,其中包括:
全球产生的各种结构化数据需要被传递至软件架构中的其他组件,或由业务分析师和数据科学家进行可视化与解读。然而,数据交付并非易事,其方式存在一些关键要求:
因此,信息的交付是一个复杂过程;若处理不当,尤其对中大型公司会造成严重问题。这正是数据工程师大显身手之处。
在本文中,您将了解数据工程的基础,包括:
数据工程师的职责是什么?
简单来说,数据工程师:
您可在我们的完整文章中进一步了解数据工程师的具体工作。
ETL 管道
ETL 管道以固定时间间隔接收复杂数据并对其进行处理,旨在将数据存储为可用的形式。建立和维护这些管道是数据工程师的职责。
ETL 管道包括 3 个环节:
数据仓库
数据仓库用于存储标准化数据,并针对大规模数据的筛选与读取进行了优化。在现代数据仓库中,既可存储结构化数据,也可存储非结构化数据,因为诸如照片与视频等难以归类的数据同样需要被保存。
数据工程 vs 数据科学
数据工程师与数据科学家的角色差异非常重要。一方面,数据科学家在公司中扮演着重要角色,因为他们推动数据驱动的决策。然而,数据科学家的成效取决于他们所能获得的数据质量。
另一方面,数据工程师负责设计系统,以有序且一致的方式向数据科学家提供数据。数据工程师让信息可用后,数据科学家再利用其提供的格式,在数据中寻找模式并得出结论。
数据工程师和数据科学家显然需要密切合作。我们可以把它比作一场足球比赛。足球中,教练制定创造进球机会的战术,并安排球员在特定位置。在这个比喻里,教练就是数据工程师;我们可以认为球是数据,而进球的球员是数据科学家。其余队员则是基础设施。
为什么数据工程越来越受欢迎?
根据 Burning Glass Nova 平台上的研究,2019 年关于“数据工程师”的职位发布增长了 88.3%。研究显示,自 2016 年以来,对数据工程师的需求持续上升。另一个有趣的信息是,数据工程师的职位空缺数量几乎是数据科学家的 5 倍。数据工程师的薪资也比数据科学家高出 20–30%。
如上所述,数据科学家是数据处理链条的最终环节。他们需要数据工程师先对数据进行处理,才能开展工作。随着数据来源与类型的倍增,对数据工程师的需求也随之增长。因此,企业近来开始加大在数据抽取与分发方面的投入。
在图 4.1 中,金字塔图展示了数据科学的需求层次。在这一层次结构中,分配给数据工程师的任务位于金字塔的底部,这也说明了数据工程师对企业的重要性。
数据工程师需要哪些技能?
如图 5.1 所示,数据工程师的技能通常与软件工程师和数据科学家的技能相互交织。
数据工程师的角色更接近软件工程师还是数据科学家?
图 5.2 展示了一组数据工程师此前的职业背景。根据该图,超过 40% 拥有软件工程背景。这不仅意味着数据工程与软件工程的距离比我们最初想象的更近,也表明当今软件工程师转向数据工程的可能性高于转向其他任何领域。
在 DataCamp,我们认为优秀数据工程师应具备以下技能:
如何学习数据工程
如果您想要提升数据工程方面的能力,可以从完成以下推荐的 DataCamp 课程开始。通过学习这些课程并完成相关项目,您将更有可能成为数据工程领域实习或工作岗位的合适人选。
此外,我们的数据工程师认证获得行业认可,能够帮助您向雇主证明自身能力。
如果您对这条职业路径感兴趣,欢迎阅读我们的另一篇文章,了解如何成为数据工程师。