Module 02 · The Data Engineering Ecosystem数据工程生态系统
ETL, ELT, and Data PipelinesETL、ELT 与数据管道
本视频将介绍一些用于将数据从源系统移动到目标系统的不同工具和流程,包括:
- ETL(抽取、转换、加载)
- ELT(抽取、加载、转换)
- 数据管道 (Data Pipelines)
一、ETL 过程 (Extract, Transform, Load)
ETL 过程是从数据中获取价值的核心。它是将原始数据转化为分析就绪数据的自动化过程。
ETL 的步骤
| 步骤 | 英文 | 描述 |
|---|---|---|
| 1. 抽取 | Extract | 从源位置收集数据以进行转换。 |
| 2. 转换 | Transform | 执行规则和函数,将原始数据转换为可用于分析的数据。 |
| 3. 加载 | Load | 将处理后的数据传输到目标系统或数据存储库。 |
1. 抽取 (Extract)
数据提取方法包括:
- 批量处理 (Batch Processing):源数据以大块的形式,在预定的时间间隔从源系统移动到目标系统。
- 工具示例:Stitch、Blendo。

- 工具示例:Stitch、Blendo。
- 流式处理 (Stream Processing):源数据实时从源头拉取,并在传输过程中(加载到存储库之前)进行转换。
- 工具示例:Apache Samza、Apache Storm、Apache Kafka。

- 工具示例:Apache Samza、Apache Storm、Apache Kafka。
2. 转换 (Transform)
转换涉及将原始数据转化为可用数据,例如:
- 标准化:使所有源数据的日期格式和计量单位保持一致。
- 清洗:删除重复数据;过滤掉不需要的数据。
- 数据增强:丰富数据,例如将全名拆分为姓、中间名和名。
- 建立关系:建立跨表关键关系。
- 业务规则:应用业务规则和数据验证。
3. 加载 (Load)
加载是将处理后的数据传输到目标系统或数据存储库的步骤:
- 初始加载 (Initial Loading):填充存储库中的所有数据。
- 增量加载 (Incremental Loading):根据需要定期应用持续的更新和修改。
- 完全刷新 (Full Refresh):擦除一个或多个表格的内容,并用新数据重新加载。
⚠️ 加载验证
加载验证是此步骤的重要组成部分,包括检查数据是否存在缺失或空值、服务器性能以及监控加载失败。必须密切关注加载失败,并确保有适当的恢复机制。

ETL 的应用
- ETL 历史上主要用于大规模批量工作负载。
- 随着流式 ETL 工具的出现,它们也越来越多地用于实时流式事件数据。
- 流行工具示例:IBM Infosphere Information Server、AWS Glue、Improvado、Skyvia、HEVO、Informatica PowerCenter。

二、ELT 过程 (Extract, Load, and Transform)
ELT 过程是 ETL 过程的一个变体。在 ELT 中,抽取的数据首先被加载到目标系统,转换随后在目标系统中应用。

目标系统
ELT 管道的目标系统最有可能是一个数据湖,尽管它也可以是数据仓库。
ELT 的需求与优势
ELT 是一种相对较新的技术,由云计算技术提供支持。
| 需求/用途 | 优势 |
|---|---|
| 处理大数据:适用于处理大型非结构化和非关系型数据集。 | 周期缩短:原始数据直接交付到目标系统,而非暂存环境,缩短了提取与交付之间的周期。 |
| 数据湖理想选择:适用于数据湖,在原始数据加载到数据湖后才应用转换。 | 即时摄取:ELT 与数据湖配合使用,允许数据可用时立即摄取大量原始数据。 |
| 数据探索:与 ETL 相比,ELT 为分析师和数据科学家进行探索性数据分析提供了更大的灵活性。 | 多用例支持:ELT 仅转换特定分析所需的数据,因此可用于多个使用案例。 |
| 避免结构修改:在 ETL 中,如果数据仓库的整个结构不适合新的使用案例,可能需要修改。ELT 则避免了此问题。 | 更适合大数据:ELT 更适合处理大数据。 |
三、数据管道 (Data Pipelines)
数据管道是一个更广泛的术语,它涵盖了数据从一个系统移动到另一个系统的整个旅程,ETL 和 ELT 可能是其中的子集。
⚠️ 术语互换:尽管 ETL 或 ELT 与数据管道这两个术语经常互换使用,但数据管道的含义更广。
特点
- 架构:数据管道可以设计用于批量处理、流式数据以及批量和流式数据的组合。
- 流式数据:在流式数据的情况下,数据处理或转换以连续流的方式进行。
- 应用:这对于需要持续更新的数据(例如监测交通的传感器数据)特别有用。
- 高性能系统:数据管道是高性能系统,支持长时间运行的批量查询和较小的交互式查询。
- 目标系统:数据管道的目标通常是数据湖,尽管数据也可能加载到不同的目标目的地,例如另一个应用程序或可视化工具。
流行的数据管道解决方案
- Apache Beam
- AirFlow
- DataFlow
在本视频中,我们了解了不同的数据移动方法——ETL(抽取、转换、加载) 和 ELT(抽取、加载、转换)。我们还了解了数据管道,它包含了数据从一个系统到另一个系统的完整旅程。