什么是数据工程,数据工程师是做什么的?

数据工程概论

2021年11月2日
8分钟读数
数据工程定义

数据工程通常被认为是数据科学的近亲。然而,很多人都想知道:数据工程到底是什么,数据工程师是做什么的?

事实是数据工程是我们这个数据驱动的世界的重要组成部分,没有它,组织几乎不可能成功。这是因为该字段使复杂的数据集可用,从而允许数据科学家、分析师和其他数据消费者发挥他们的魔力。

在这个有用的指南中,您将了解什么是数据工程,数据工程师做什么,包括数据工程师必须掌握的技能才能在他们的职位上取得成功。

数据工程101

1.什么是数据工程?

无论大小公司都有大量的数据需要整理,以揭示有关其业务的重要答案。这就是数据工程发挥作用的地方。数据工程是设计和构建用于收集、存储、处理和分析大量原始数据的系统的实践,以帮助数据科学家和其他分析人员了解其业务的当前状态,并做出数据明智的决策。

数据工程是一个不断发展的领域对合格数据工程师的需求在不断增加这可以归结为五个关键原因:

  • 数据的增长速度比以往任何时候都要快.数据量每年都呈指数级增长。事实上,今天大多数可用的数据(90%)是在过去两年中创建的。

  • 数据被认为对公司更有价值.它现在被用于商业的许多领域,包括销售、市场营销和金融,并以使企业更创新、更有效的方式运作。

  • 用于数据的技术正变得越来越复杂.因为数据是跨许多不同的系统创建的——比如关系数据库、Hadoop和nosql——公司需要能够跨这些更复杂的技术工作的专家。

  • 企业正在发现更多利用数据的方法.数据可以帮助他们了解业务的当前状态,预测未来,更多地了解客户,降低风险,并创造新产品。数据工程是所有这些场景中的关键角色。

  • 数据工程师的增长和需求持续上升,从而产生了滚雪球效应.随着数据变得越来越复杂,这个角色变得更加重要。此外,随着对数据需求的增加,数据工程师将比以往任何时候都更加重要。

2.为什么数据工程很重要?

公司已经产生了大量新类型的数据,包括更复杂的数据。虽然公司知道需要数据科学家来理解这些信息,但许多公司忘记了数据工程师是组织和管理这些数据的必要条件。

当数据科学家被迫做数据工程师的工作时,问题就出现了。当这种情况发生时,他们通常无法优化项目使用的数据管道。数据工程师很重要,因为他们的职责使数据科学家能够更有效地完成工作。

3.数据工程师是做什么的?

数据工程师的主要职责是检索、存储、管理原始数据,并将其转换为易于分析的格式,供数据科学家和其他业务分析师解释和有效使用。

因此,数据工程师将在组织内的多个部门工作,因为他们需要了解业务希望从这些大型数据集中获得什么。换句话说,他们必须首先了解与该数据相关的公司或客户的目标。这反过来又使他们能够构建有效的流程来发现和使用数据。

除了优化数据检索,数据工程师还为公司的利益相关者开发仪表板、报告和其他可视化资产。此外,他们的任务可能是传达数据趋势。然而,总而言之,数据工程师的角色和职责在大型或小型组织中略有不同。大公司可能有几个数据分析师或科学家来协助理解数据,而小公司可能依赖一个数据工程师来履行所有职责。

为了履行这些职责,数据工程师必须承担许多任务。这些包括:

  • 收购:从不同的系统中获取数据

  • 清洗:识别和修复错误

  • 转换:将数据从一种格式转换为另一种格式

  • 消歧:解释具有不同含义的数据

  • 重复数据删除:消除重复的数据副本

4.数据工程师需要哪些技能?

数据工程师必须具备许多专业技能才能履行其职责。让我们看看下面的每一个。

通用技能

数据工程师需要具备通用技能,以便创建涉及数据的软件解决方案。数据工程师可能需要使用10到30种不同的工具,这些工具因行业而异。

然而,有些技能无论在哪个行业都是必要的。例如,数据工程师必须始终精通SQL。其他必要技能包括:

  • 软件工程背景

  • 熟悉分布式系统,如工程师和软件架构师技能

  • 使用开放框架的经验

  • 熟练使用SQL

  • 编程,特别是Python(尽管不同行业可能使用其他编程语言)

  • 使用Pandas(一个用于清理和操作数据的Python库)

  • 使用云平台

  • 统计分析技能

  • 数据建模知识

  • 能够使用可视化和仪表板

虽然不同行业可能有不同的需求,但上述技能对于数据工程师来说是一个很好的起点。

技术技能

除了上一节列出的技能外,数据工程师还需要一些技术技能。以下是数据工程师使用的不同技术类型:

  • 使用Oracle、IBM DB2和Microsoft SQL Server为人力资源、财务规划和CRM创建关系数据库

  • 使用Vertica、Teradata、Amazon Redshift和Sybase IQ为数据仓库和数据集市创建分析关系数据库

  • 使用MongoDB为web、社交和移动创建JSON数据库

  • 使用Redis和Memcached为web、社交和移动创建键值系统

  • 使用Apache HBase和Apache Cassandra为物联网和机器数据创建列式数据库

  • 使用HDFS (Hadoop Distributed File System)创建用于存储数据的文件系统

  • 使用Azure Blob Store和Amazon S3为数据存储创建对象存储

  • 使用Microsoft Excel创建桌面数据分析的电子表格

然而,所使用的确切应用程序因行业和公司而异。

5.数据工程师和数据科学家有什么不同?

对于一些人来说,数据科学家和数据工程师的角色可能看起来很混乱,特别是因为这两个领域都涉及从数据中获得有价值的见解。了解这些角色之间的明显差异非常重要,因为数据工程师和数据科学家在许多方面存在差异。

这些差异体现在他们的关注点、职责、语言、工具、软件和教育背景上。下面让我们逐一分析。

焦点

数据工程师的主要关注点是构建用于生成数据的基础设施和体系结构。另一方面,数据科学家的主要关注点是执行统计分析,并对生成的数据使用高级数学。

你看,虽然数据科学家只是与数据工程师构建和维护的数据基础设施和体系结构进行交互;他们并不负责实际创造和管理它。相反,数据科学家可以被视为内部客户,他们必须执行高级研究以识别数据之间的趋势和关系。他们使用各种各样的机器和方法来做这件事。

因此,我们可以说数据工程师的工作是支持数据科学家和数据分析师,因为他们提供用于交付复杂业务问题解决方案的基础设施和工具。因此,数据科学家严重依赖数据工程师。

责任

我们还可以看看数据工程和数据科学职责之间的关键区别。我们在第2章中讨论了数据工程师的职责。简而言之,数据工程师负责管理、增强、监督和监视整个业务中数据的检索、存储和交付。通常,他们将处理包含不一致的原始数据。因此,推荐和实施提高数据可靠性、效率和质量的方法也是他们工作的一部分,以便数据科学家可以“使用”这些数据。

另外,数据科学家的职责包括获得对数据工程团队处理过的数据的访问权。通常,这些数据经过一轮清理和操作,然后由数据科学家进一步分析。他们将进行行业研究,并确定企业的问题,以确定他们需要用这些数据实现什么。数据科学家还将利用来自内部和外部的大量数据来回答这些问题,甚至可能进一步检查这些数据以发现模式。

当我们检查数据工程师和数据科学家职责之间的关键差异时,可以归结为:数据科学家需要了解统计学、数学和机器学习来构建预测模型,而数据工程师将使用数据库系统、数据API和用于ETL目的的工具。此外,他们还将参与建立数据仓库解决方案和数据建模。

语言、工具和软件

数据工程师和数据科学家在执行职责时使用的语言、工具和软件方面也存在很大差异。

数据科学家主要使用高级分析工具,包括R、SPSS、Hadoop和高级统计建模软件,而数据工程师则专注于支持这些工具的产品。因此,数据工程师的军械库包括Spark、Hadoop、MongoDB和其他数据组织服务,如第4章所述。

这里的主要区别在于,数据科学家经常使用的工具和软件反映了这个角色对讲故事和数据可视化的强调。然而,对于数据工程师来说,他们的工具包反映了他们设计和构建数据系统和体系结构的责任。

数据工程师和数据科学家使用的语言也有很多不同之处。数据科学家经常使用SPSS、R、Python、SAS、Stata和Julia等语言来完成他们的工作。另一方面,数据工程师使用一些不同的语言,包括SQL和Scala。

教育背景

虽然数据工程师和数据科学家都有计算机科学的教育背景,但每个人都有自己独特的特定研究领域。

例如,数据科学家经常学习计量经济学、数学、统计学和运筹学。这意味着他们比数据工程师拥有更多的业务专业知识,数据工程师的背景通常是工程或计算机工程。

数据工程师帮助您的企业利用数据做出更好的决策

阅读本指南后,您现在确切地了解了什么是数据工程,以及数据工程师的工作。正如您所了解到的,数据工程比我们看到的要复杂得多。数据工程师的角色曾经被归为数据科学的保护伞,现在它是一个独特的领域,其重要性每年都在迅速增长。

随着数据量的持续显著增加,数据工程预计只会对小型和大型企业产生重要影响,这一点也不奇怪。毕竟,数据工程师在管理、增强、监督和监视整个业务中数据的检索、存储和交付方面发挥着至关重要的作用。在这样做的过程中,它们使重要数据对一些关键利益相关者更有用。如果没有数据工程,企业根本无法像今天这样利用复杂的数据。