跳转到内容
搜索文档

无服务器 ETL 管道

最后更新 查看 MarkdownAgent 设置

简介

提取、转换、加载 (ETL) 管道是数据工程领域的基石,有助于数据从原始状态到结构化、可用格式的无缝流转。ETL 管道在数据处理过程中发挥着重要作用,尤其适用于在将数据加载到目标位置之前需要对数据进行收集、清洗和转换的场景。

该过程从提取开始,即从数据库、文件或流等各种来源收集数据。这些原始数据通常是分散且非结构化的,因此需要进行下一步:转换。在转换过程中,数据会经历一系列操作,以标准化格式、清除不一致性,并通过额外的上下文或计算进行丰富。这一阶段对于确保数据质量和一致性,以及使其与下游应用程序和分析的要求保持一致至关重要。

最后,转换后的数据被加载到目标位置,可以是数据仓库、数据库或任何其他存储解决方案。加载阶段涉及将处理后的数据高效地移动到其预定目标位置,在那里可以轻松访问并用于各种目的,例如报告、分析或供机器学习模型使用。

ETL 管道在各行业的数据驱动决策过程中发挥着举足轻重的作用,使组织能够从其数据资产中获取洞察和价值。通过自动化和简化从原始数据到可行洞察的过程,ETL 管道使企业能够做出明智决策、优化流程,并在当今数据驱动的环境中获得竞争优势。

ETL 管道的实际应用示例包括:从多个零售店提取销售数据,将其转换为标准化格式,然后加载到集中式数据仓库中进行分析和报告。同样,ETL 管道也用于数据迁移项目,在确保整个过程中数据完整性和一致性的同时,将旧数据迁移到现代系统。

Cloudflare 支持部署完全无服务器的 ETL 管道,可降低复杂性、缩短投产时间并降低总体成本。以下图表展示了 Cloudflare 在常见 ETL 管道部署中的不同使用方式。

基于 HTTP 摄取的 ETL 管道

图 1:无服务器:基于 HTTP 的摄取
图 1:基于 HTTP 摄取的 ETL 管道

此架构展示了一个以 API 端点作为摄取入口的完全无服务器 ETL 管道。客户端通过 HTTP 请求发送数据以进行处理。常见示例包括点击流数据或分析数据。

  1. 客户端请求:发送包含待摄取数据的 POST 请求。示例包括点击流数据、分析端点。
  2. 输入处理:使用 Workers 处理传入请求,并向 Queues 发送消息以添加到处理积压队列。
  3. 数据处理:使用 Queues 触发消费者以批量处理输入数据,防止下游过载并提高效率。消费者执行所有数据清洗、转换和标准化操作。
  4. 对象存储:将处理后的数据上传到 R2 进行持久化存储。
  5. 确认/重试机制:在消费者中使用队列运行时 API 对每个文档发出成功/错误信号。Queues 将在需要时安排重试。
  6. 数据查询:从外部服务访问处理后的数据以进一步使用。

基于对象存储摄取的 ETL 管道

图 2:无服务器:对象存储摄取
图 2:基于对象存储摄取的 ETL 管道

此架构展示了一个以对象存储作为摄取入口的完全无服务器 ETL 管道。常见示例包括日志和非结构化文档处理。

  1. 客户端请求:通过 S3 兼容 API 将原始数据上传到 R2。常见示例包括日志和分析数据。
  2. 输入处理:在对象上传时使用 R2 事件通知Queues 发送消息。
  3. 数据处理:使用 Queues 触发消费者以批量处理输入数据,防止下游过载并提高效率。消费者执行所有数据清洗、转换和标准化操作。
  4. 对象存储:将处理后的数据上传到 R2 进行持久化存储。
  5. 确认/重试机制:在消费者中使用队列运行时 API 对每个文档发出成功/错误信号。Queues 将在需要时安排重试。
  6. 数据查询:从外部服务访问处理后的数据以进一步使用。

相关资源

这篇文档对您有帮助吗?