数据工程设计模式——理解数据工程

92 阅读8分钟

翻译

引言(Introduction)

本章将回顾数据工程在构建与管理数据管道中的基础概念、流程与角色。我们将贯穿数据生命周期——从采集与转换存储与分析——并突出实现可扩展、高效数据管理的关键技术、工具与最佳实践。此外,本章还将介绍数据工程在现代数据驱动系统中的重要性,为后续章节对模式与技术的深入探讨铺垫基础。

结构(Structure)

本章将涵盖以下主题:

  • 现代数据系统中数据工程的角色
  • 数据工程的核心概念
  • 数据的生命周期

目标(Objectives)

读完本章,你将理解为何数据工程对现代数据系统至关重要,并认识数据工程的各个阶段及其相关角色。本章将为进一步理解数据工程模式打下基础。

现代数据系统中数据工程的角色(Data engineering’s role in modern data systems)

英国数学家 Clive Humby 曾提出:数据是新的石油
现代数据系统让企业能够用这种“新燃料”为业务赋能。组织倚赖采集、处理、分析海量数据的能力来获得竞争优势。数据成为有效决策的关键,使业务决策更加稳健。数据工程正是构建和管理这些复杂数据系统的学科。

数据工程师通过设计与实施数据管道来收集与整备数据以供进一步分析,在创建现代数据系统中发挥关键作用。他们还会构建适配多样数据访问模式的数据存储系统,帮助 ML/数据科学等用例消费这些整备好的数据资产。随着企业数据化成熟度提升,数据工程实践对公司成功愈发关键。一切数据驱动的决策都需要数据工程团队的支持,确保决策建立在可信、优质的数据之上。

提供此类可靠数据资产是数据工程团队的职责所在。除保障数据质量稳定供给外,数据工程团队还需确保数据安全,避免泄露;并确保符合全球数据存储与使用相关法规,如 GDPRHIPAA 等。

数据工程的核心概念(Core concepts of data engineering)

数据工程的核心在于创建、管理、优化数据管道,以采集、处理、整备数据供分析与机器学习(ML)使用。数据管道是连接整个数据系统的通道,保证系统间的数据不间断流动。管道从一组数据源读取数据,按目标应用需要进行移动与转换/整形

要深入理解数据工程,不仅要会构建数据管道,还应了解这些管道读写的各类数据存储与服务系统。同时需对管道进行编排与治理,以确保组织的数据策略得到执行,并产出可靠的数据资产

在后续章节,我们将详细学习转换、摄取、存储、服务、编排与治理——这些共同构成数据工程的核心。

数据处理与摄取(Data processing and ingestion)

源系统产生的数据需要被处理并摄取到下游系统,供分析或进一步处理。依据下游业务对时延的可接受程度,数据摄取可以是实时批处理。此外,数据还需根据目标应用需求进行处理/转换:可以在摄取前处理(即 ETL),或在摄取后处理(即 ELT)。常见的转换步骤包括清洗、标准化、丰富以及业务逻辑的应用,以便于业务分析。

为支持更复杂与小众的用例,现代架构常将实时与批处理摄取结合在一起。随着诸如Medallion 等现代架构的兴起,不同类型的数据处理与摄取的界限正在模糊,多种技术被组合进一个数据系统。AI 也在推动数据的实时消费,从而冲击传统数据管道,后者常难以满足现代生成式 AI 应用的高要求。

数据存储与服务(Data storage and serving)

企业数据形态、规模、类型各异,选择合适的数据存储与服务方案对数据工程项目的成功至关重要。存储系统类型多样:用于长期存储与分析的数据湖、数据仓库,以及用于低时延事务处理的关系型与 NoSQL 数据库数据湖存放原始/未处理数据;数据仓库存放结构化/已整备的数据以便分析。

不同存储系统在成本与性能上特性各异。为满足应用需求,必须为特定用例选择合适的存储。通常,服务(Serving)特性也直接依赖存储技术的选择。例如,数据湖适合存放大规模数据并进行批处理,却不适合构建低时延事务应用;此类场景更适合选用关系型或 NoSQL 数据库。当然,选型时还需综合考量成本、存储效率、可维护性等因素。

同时,需以合适的硬件基础设施来匹配存储技术。SSD 具备快速随机访问,适合超低时延的存储系统;而大容量机械盘可支撑PB 级的大规模存储,SSD 成本过高时可选。主存容量的合理规划也很重要,以实现正确的内存缓存,满足服务侧性能目标。

数据编排与治理(Data orchestration and governance)

数据编排数据治理是数据工程的横向支柱,确保数据系统符合组织的运营、安全与质量要求。

  • 数据编排:管理在源与目标系统间移动数据的管道,确保作业调度依赖顺序正确;同时覆盖监控与日志,并对错误进行处理与重试
  • 数据治理:确保组织的数据质量与安全流程应用到数据管道与系统。治理既确保数据达到应用设定的质量门槛,使洞见可信;也确保满足 PCI DSS、SOX、GDPR合规与安全标准。治理还涵盖数据所有权与血缘:为数据资产指定数据管理员,打上正确的标签与元数据;通过血缘追踪让使用者了解数据的来源与其在生命周期中经历的变更,提升对管道产出数据的信任

数据的生命周期(Lifecycle of data)

数据生命周期描述数据从创建处置的旅程。数据通常在支撑全球商业运行的事务系统中产生:如POS 收银系统、网银/电商门户、ATM、医院接诊台、航空订票、工业传感器、监控系统等。每个事务都需要记录以便后续处理。数据处理与摄取阶段确保从各类事务系统汇集、转换数据,并存入下游系统以供后续使用。数据在下游被用于计费、洞察(如促销/推荐)、合规留存、数据共享、构建数据产品等多种目的。

当数据被采集、转换并使用之后,它会进入生命周期的下一个阶段,如归档、清理(purge)、选择性删除等。数据在存储与处理后,通常需要进入归档系统进行长期保留使用场景决定活跃处理的数据保留期限;一旦数据完成利用,应出于监管与合规目的转入归档存储。除业务规则外,诸如 GDPR 等法规也会规定数据可保存时长以及何时必须删除。每个组织都需要数据保留与清理策略,确保数据在生命周期末端得到恰当处置。在某些例外情况(如法务保全)下,数据可能需暂不按常规保留/清理策略处理。长期存储通常使用低成本冷存储,如磁带或基于 Hadoop/S3 Glacier 的方案。数据血缘一般能清晰展示数据从创建到清理的全程及经历的各类加工。数据工程团队需与数据治理的托管方紧密合作,以在组织内定义数据生命周期。

结论(Conclusion)

本章介绍了数据工程在组织中的角色及其对成功的关键性;讨论了数据从创建到清理的生命周期与其中的关键步骤(采集、转换、摄取);并对数据存储、服务、编排与治理做了概览——这些都是构建任何数据工程项目所必需的组成部分。

在下一章,我们将探讨数据工程模式、其术语体系以及实现这些模式所使用的技术栈