数据处理通常涉及三个主要步骤:提取、转换和加载。提取数据是指从源头获取数据。转换数据涉及清理和重塑数据。加载数据是指将数据放入目标系统。当这些阶段被连接成一个自动化序列时,它们的真正效用便显现出来。这个连接起来的序列就是我们所说的 ETL 流水线。可以将 ETL 流水线想象成一条为数据服务的自动化装配线。原始材料(您的初始数据)从一端进入,经过各种处理站(提取、转换),并在另一端以成品(干净、结构化且可供使用的数据)的形式出现,然后被存储起来(加载)。因此,ETL 流水线是一系列按特定顺序执行的数据处理步骤:提取: 从一个或多个源系统获取数据。转换: 提取的数据根据预设规则进行清理、验证、结构化和丰富。加载: 转换后的数据写入目标系统,例如数据库、数据仓库或数据湖。流水线的显著特点是这些步骤是相互连接且通常是自动化的。提取阶段的输出作为转换阶段的输入,而转换的输出则成为加载阶段的输入。这就形成了从源头到目标的数据连续流动。下面是一个说明此流程的简单图示:digraph G { rankdir=LR; node [shape=box, style=filled, fontname="sans-serif", fillcolor="#e9ecef", color="#adb5bd"]; edge [fontname="sans-serif", color="#495057"]; Source [label="数据源\n(例如:数据库、文件、API)", shape=cylinder, fillcolor="#a5d8ff", color="#1c7ed6"]; Target [label="目标系统\n(例如:数据仓库)", shape=cylinder, fillcolor="#96f2d7", color="#0ca678"]; Extract [label="提取\n(获取数据)", fillcolor="#bac8ff", color="#4263eb"]; Transform [label="转换\n(清理、重塑)", fillcolor="#ffec99", color="#f59f00"]; Load [label="加载\n(存储数据)", fillcolor="#b2f2bb", color="#37b24d"]; Source -> Extract; Extract -> Transform; Transform -> Load; Load -> Target; }一个典型的 ETL 流水线,显示了从数据源,经过提取、转换和加载阶段,到目标系统的顺序。流水线被设计为可重复且可靠。无需在每次需要处理新数据时手动运行每个步骤,您可以定义一次流水线,然后它可以根据日程(例如:每天、每小时)自动执行,或由特定事件(例如:新文件到达)触发。构建 ETL 流水线的主要目的是创建一致、自动化且可管理的数据移动和准备流程。这确保数据以正确的格式和质量抵达目标系统,可用于分析、报告或应用程序。在本章的后续部分中,我们将更仔细地研究这些流水线的结构、用于构建和管理它们的工具类型,以及如何处理调度和监控等方面。