Coursera 笔记

Module 04 · Data literacy for Data Science (Optional)

Data Marts, Data Lakes, ETL, and Data Pipelines数据存储与流程总结

Coursera ↗

1. 数据存储库的类型

数据仓库、数据集市和数据湖是组织用于存储和分析数据的三种主要存储库,各有其特定用途。

存储库 结构与格式 目的 关键特点
数据仓库 (Data Warehouse) 结构化,已建模(分析就绪) 多用途存储,用于报告和分析(OLAP)。 存储当前和历史数据,是数据的“单一事实来源”(Single Source of Truth),经过清洗、整合和分类。
数据集市 (Data Mart) 结构化(数据仓库的子集) 为特定业务职能、目的或用户群体提供相关数据。 提供了隔离的安全性和性能,专注于业务特定报告和分析。
数据湖 (Data Lake) 原生格式(结构化、半结构化、非结构化) 存储所有原始数据,不受限于预定义用例。 每个元素都有唯一标识符和元标签。主要用于预测性和高级分析。

2. ETL 流程:数据转换的核心

ETL (Extract, Transform, and Load) 是将原始数据转换为分析就绪数据的自动化过程,是数据获取价值的核心。

流程步骤

  1. 提取 (Extract): 从源位置收集数据。
    • 批量处理 (Batch Processing): 在预定时间间隔内,以大块形式移动数据(工具:Stitch, Blendo)。
    • 流式处理 (Stream Processing): 实时从源头拉取数据,并在传输过程中进行转换(工具:Apache Samza, Apache Storm, Apache Kafka)。
  2. 转换 (Transform): 执行规则和功能,将原始数据转换为可用于分析的状态。
    • 操作示例: 统一格式(日期、单位)、删除重复数据、过滤不需要的数据、数据丰富(如拆分姓名)、建立关键关系、应用业务规则和验证。
  3. 加载 (Load): 将处理后的数据传输到目标系统或数据存储库。
    • 方式: 初始加载(填充所有数据)、增量加载(定期应用更新)、完全刷新(擦除并重新加载)。
    • 验证: 包括对缺失值、服务器性能和加载失败的检查,确保有正确的恢复机制。

应用场景

ETL 历史上主要用于大规模批量工作负载,但随着流式 ETL 工具的出现,它们越来越多地用于实时流式事件数据。


3. 数据管道 (Data Pipelines)

数据管道是一个更广泛的术语,涵盖了将数据从一个系统移动到另一个系统的整个旅程。ETL 只是数据管道的一个子集。

  • 架构: 数据管道可为批量处理、流式数据或两者的组合进行架构。
  • 流式处理: 在连续流中进行数据处理或转换,适用于需要持续更新的数据(如传感器监控)。
  • 性能: 是一种高性能系统,支持长时间运行的批量查询和较小的交互式查询。
  • 目标: 目的地通常是数据湖,但也可能是其他目标,如应用程序或可视化工具。
  • 流行解决方案: Apache Beam, DataFlow。