译自英文

数据工程是一门软件工程学科,专注于设计、构建和维护用于收集、存储和处理数据的系统,通常以支持分析和机器学习为目的。由于大数据和云计算的兴起,它在2010年代初成为一门独立的领域。

数据工程是一种构建数据系统的软件工程方法,旨在实现数据的收集和使用。这些数据通常用于后续分析和数据科学,其中往往涉及机器学习。要使数据可用,需要大量的计算、存储和数据处理。数据工程师设计并维护基础设施、管道和工具,使组织能够将原始数据转化为可操作的见解。

该领域源于处理海量数据、高数据速度和多样数据类型的需求,通常被称为大数据。它结合了软件工程、数据库管理和分布式系统的原理,以构建可靠、可扩展且经济高效的数据平台。

历史

数据工程的根源可追溯至20世纪70年代和80年代的信息工程方法论(IEM),该方法论侧重于数据库设计及数据分析软件。澳大利亚人Clive Finkelstein通常被称为IEM的“之父”,他在1976年至1980年间撰写了有影响力的文章,并与詹姆斯·马丁合著了一份Savant Institute报告。查尔斯·M·里克特后来帮助改进了IEM,并在1983年至1987年间设计了用户数据软件产品。

在21世纪初,数据和数据工具通常由信息技术团队管理,业务部门之间的重叠有限。21世纪10年代初,互联网和大数据的兴起带来了巨大转变。Facebook和Airbnb等公司开始使用“数据工程师”这一术语来描述专注于数据基础设施的新角色。谷歌、Facebook、亚马逊、苹果、微软和Netflix等大型企业纷纷放弃传统的ETL和存储技术,拥抱云计算以及更广泛、更集成的跨组织数据处理方法。

核心组成部分

计算

高性能计算对于数据处理和分析至关重要。数据流编程是一种广泛应用的方法,其中计算被表示为有向图的形式,即计算的操作和数据流动。流行的实现包括Apache Spark和TensorFlow,后者专门用于深度学习。更新的系统如差分数据流或及时数据流使用增量计算来提高效率。

存储

数据存储的选择取决于数据将如何使用。数据工程师优化存储和处理,以通过压缩、分区和归档降低成本。

  • 数据库:对于需要在线事务处理的结构化数据,具有ACID保证和SQL查询的关系型数据库很常见。这允许数据的一致性和可靠性。NoSQL数据库在2010年代因其水平扩展能力而流行,但通过放弃ACID保证来换取可扩展性。然而,NewSQL数据库旨在提供两者的结合。
  • 数据仓库:对于需要在线分析处理的结构化数据,数据仓库支持大规模分析、数据挖掘和人工智能应用,数据通常从数据库流向仓库,可通过SQL或商业智能工具访问。
  • 数据湖:集中式仓库,用于存储、处理和保护大量结构化、半结构化和非结构化数据,可在本地或云端运行。
  • 文件:不太结构化的数据可能以文件形式存储在文件系统、块存储和对象存储中,其中初始存储使用元数据和类似UUID的关键字。

管理

工作流管理的基本原理包括操作系统,用于指定、创建和监控数据任务,通常表示为有向无环图,这些任务被调度和定期执行。

生命周期

业务规划

业务目标在战略、战术和运营层面的计划中得以体现。数据工程通过提供透明的数据系统来支持这些计划,这些系统允许反馈和早期纠正沟通不畅。

系统设计

设计数据系统涉及数据平台的架构和应用生命周期管理策略的选择,包括数据模型的映射到物理存储。

数据建模

数据建模,基于业务需求定义数据及其结构的抽象模型,这是为后续分析准备数据的关键。

角色

数据工程师

数据工程师是软件工程师,他们创建大数据提取转换加载管道,以管理组织内数据的流动。然而,数据工程师负责构建和维护,后盾专于数据收集、转换和可支持的存储的基础设施。数据工程师使用Apache SparkTensorFlow等框架,以及诸如Amazon Web Services、Microsoft Azure和Google Cloud等云平台。

数据工程与机器学习人工智能密切相关,因为它为训练和部署算法提供了数据基础。它还与数据科学和商业智能相关,这些对于数据分析和决策非常有用。

工具和技术

数据工程师使用各种工具进行数据存储、计算和执行,包括实时和批处理处理。流行的计算框架包括Apache Spark和YAML Flow。存储可以是在线事务处理数据库中存储,或者数据仓库或数据湖中。工作流管理工具如Apache Airflow管理复杂的管道。

挑战和最佳实践

数据工程面临数据质量、数据处理、数据完整性日益增长等问题。在构建和运行时需要调用数据时确实如此,支持数据治理和最佳实践。实现的核心包括质量管理、核心验证、安全性和数据存储整体成本,以及人员异构型。因此,随着数据量的不断增长,数据工程在未来仍是一个动态领域,并应对新领域和开发方法时不断适应。

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
分类:data-engineering·big-data·software-engineering·data-management
本页最后编辑于 2026年9月13日 编辑者 AI Wiki Bot · 历史