什么是 ELT(提取、加载和转换)?

在当今数据驱动的环境中,组织不断寻求更高效的方式来管理和分析大量信息。ELT(提取、加载、转换)流程代表了一种现代数据集成方法,特别适合云环境。对于任何从事数据架构、数据工程或分析工作的人员来说,了解 ELT 至关重要,因为在处理各种数据集时,ELT 在速度、灵活性和可伸缩性方面具有明显的优势。这种方法改变了数据转换发生的时间和位置,为数据利用发掘了新的可能性。

ELT 的定义

ELT 代表提取、加载和转换。这是一种数据流水线模型,首先从各种源系统提取数据。然后,原始数据不会在单独的暂存区中进行转换,而是直接加载到目标数据存储区(例如数据湖或云数据仓库)中。只有在数据加载到目标系统后,才会应用转换。

这种顺序使 ELT 与其前身 ETL(提取、转换、加载)区分开来,也是其在云原生架构中日益普及的一个关键原因。

ELT 的工作原理是什么?

ELT 流程利用了现代数据存储和处理平台的强大功能和可伸缩性。我们来逐一分析每个组成部分:

  • 提取:此初始步骤涉及从原始来源收集原始数据。这些来源可能非常多样化,包括数据库(SQL 和 NoSQL)、企业应用(如 CRM 和 ERP)、SaaS 平台、API 和日志文件。提取过程的重点是高效地从这些系统中获取数据。
  • 加载:在第二步中,提取的原始数据通常以原始格式或经过最少处理后直接加载到大容量存储系统中。这种原始数据的常见目标是云数据湖或现代云数据仓库,它们可以处理大量结构化、半结构化和非结构化数据。
  • 转换:最后一步是在数据安全地存储在目标系统中之后进行。利用数据仓库或数据湖的计算能力,对原始数据进行清理、结构化、丰富化,并转换为适合分析、报告和机器学习的格式。转换可能包括过滤、联接、聚合、格式标准化和推导新的数据点。

ELT 流程具有灵活性,因为转换在加载之前不是固定的。例如,数据科学家可以访问原始数据来探索意想不到的模式或进行临时分析,而商业智能团队可以构建精选的转换后数据集以用于报告。

ELT 的优势

ELT 方法具有多种潜在优势,尤其是在处理大量数据和多种数据类型的环境中:

  • 更快的数据注入速度:将原始数据加载到目标系统通常比等待在暂存区完成转换要快。这意味着,数据可以更快地用于初始探索或特定应用场景。
  • 灵活性和敏捷性:由于原始数据保留在目标系统中,因此可以随着业务需求的变化迭代开发、修改或添加转换。如果转换逻辑发生变化,无需重新从源系统中注入数据;只需对已加载的原始数据重新运行转换即可。
  • 可伸缩性:现代云数据仓库和数据湖在设计时就考虑了超强可伸缩性。ELT 利用了这种固有能力,通过这些目标系统的强大处理引擎执行转换。这让组织能够高效地处理不断增长的数据量和复杂的转换。
  • 保留原始数据:存储原始数据可以获得更完整的历史记录。这对于数据审核、在之前的转换中发现错误时重新处理数据,或满足尚未预见的未来分析需求来说非常重要。数据科学家通常会受益于访问最精细、未经转换的数据。
  • 某些工作负载的费用效益 :与维护单独的基础设施或为转换使用专门的 ETL 工具相比,使用云数据仓库的计算能力来执行转换有时更具成本效益,尤其是当数据仓库提供优化处理功能时。
  • 支持多种数据类型:ELT 非常适合处理结构化数据、半结构化数据(如 JSON 或 XML)和非结构化数据(如文本或图片)。数据可以原生格式加载,并根据需要进行转换,这在大数据场景中可能是一项重大优势。这种“读时架构”方法是 ELT 的标志性特征,即在处理过程中应用结构,而不是在加载之前应用。

ELT 面临的挑战

虽然 ELT 有诸多优势,但它也存在一些组织应设法解决的考虑因素:

  • 数据治理和安全:将可能包含敏感信息或个人身份信息 (PII) 的原始数据加载到数据湖或数据仓库中,需要采取稳健的数据治理、安全性和合规性措施。访问权限控制、加密和数据遮盖技术对于在目标环境中保护这些数据至关重要。
  • 目标系统内的转换复杂性:虽然功能强大,但直接在数据仓库(例如使用 SQL)或数据湖中管理复杂的转换逻辑可能会变得具有挑战性。它需要熟练掌握这些工具的高技能人员,以及规范的代码管理和优化方法。
  • 工具和编排:有效的 ELT 实现依赖于适当的工具来编排提取和加载步骤,以及在目标系统中管理和执行转换。虽然许多云平台都提供工具,但集成这些工具并管理整体工作流需要仔细规划。
  • 可能变成“数据沼泽”:如果加载到数据湖中的原始数据未得到妥善编目、管理和治理,数据湖可能会变成“数据沼泽”,导致数据难以查找、信任或有效使用。制定强有力的数据管理策略至关重要。
  • 数据质量责任:由于转换发生在该流程的后期,因此可能需要在加载后执行专门的步骤来确保数据质量。监控和验证目标系统中的数据变得非常重要。

主动应对这些挑战有助于组织充分利用 ELT 范式的优势。

ELT 与 ETL

了解 ELT 与更传统的 ETL(提取、转换、加载)流程之间的区别,对于选择正确的数据集成策略至关重要。主要区别在于转换步骤发生的时间和执行位置。

功能

ELT(提取、加载、转换)

ETL(提前、转换、加载)

操作顺序

先提取,再加载,然后转换

先提取,再转换,然后加载

转换位置

在目标数据存储区(数据仓库/数据湖)内

在单独的暂存区或 ETL 工具环境中

数据已加载到目标

未经转换的原始数据

经过清理、结构化和转换的数据

处理能力


利用目标数据存储区的强大功能

依赖于专用 ETL 引擎或暂存服务器


数据注入速度


通常初始加载数据速度更快

由于需要预先进行转换处理,速度可能会较慢


灵活适应新用途


高,因为原始数据可用于重新转换

较低,因为转换是预定义的

架构处理

非常适合读时架构

通常依赖于写时架构

数据类型适用性


非常适合处理结构化、半结构化和非结构化数据

最适合结构化数据和部分半结构化数据

资源利用率

优化可伸缩云数据仓库的使用

可能需要单独的基础设施来进行转换


功能

ELT(提取、加载、转换)

ETL(提前、转换、加载)

操作顺序

先提取,再加载,然后转换

先提取,再转换,然后加载

转换位置

在目标数据存储区(数据仓库/数据湖)内

在单独的暂存区或 ETL 工具环境中

数据已加载到目标

未经转换的原始数据

经过清理、结构化和转换的数据

处理能力


利用目标数据存储区的强大功能

依赖于专用 ETL 引擎或暂存服务器


数据注入速度


通常初始加载数据速度更快

由于需要预先进行转换处理,速度可能会较慢


灵活适应新用途


高,因为原始数据可用于重新转换

较低,因为转换是预定义的

架构处理

非常适合读时架构

通常依赖于写时架构

数据类型适用性


非常适合处理结构化、半结构化和非结构化数据

最适合结构化数据和部分半结构化数据

资源利用率

优化可伸缩云数据仓库的使用

可能需要单独的基础设施来进行转换


ELT 是 Google Cloud 推荐的数据集成模式。ELT 涉及从源系统提取数据,将其加载到 BigQuery 中,然后将其转换为所需的格式以进行分析。ETL(提取、转换、加载)在将数据加载到数据仓库之前会对数据进行转换,而 ELT 方法与 ETL 不同,它让您可以充分利用 BigQuery 的强大功能来执行数据转换,并让任何 SQL 用户都能有效地开发数据集成流水线。

在 ELT 和 ETL 之间做出选择通常取决于特定的使用场景、现有基础设施、数据量以及组织的分析需求。在许多现代数据架构中,也可以采用混合方法,即对流水线的不同部分同时使用 ELT 和 ETL。

ELT 的应用场景

ELT 模式在各种现代数据场景中特别有效:

云数据仓储

ELT 非常适合 Google Cloud 的 BigQuery 等云数据平台,这些平台提供强大的处理能力和可伸缩性,可高效处理大型数据集的转换。

大数据分析

在处理海量、高速和多样化数据时,ELT 可以快速将数据注入数据湖或可扩容的存储空间。然后,可以使用分布式处理框架根据需要应用转换。

数据湖实现

数据湖旨在以原生格式存储大量原始数据。ELT 流程会加载这些原始数据,然后各种分析和处理引擎可以转换和使用这些数据。

实时或近乎实时的数据处理

对于需要快速访问最新数据的应用场景,ELT 可以加快加载阶段的速度。然后,可以对这些数据的子集执行转换,以用于特定的近乎实时信息中心或应用。

探索性数据分析和数据科学

数据科学家通常倾向于访问未经转换的原始数据,以便进行特征工程、构建机器学习模型和发掘分析洞见,而不会受到预定义转换的限制。ELT 让这些原始数据随时可用。

整合各种数据源

在集成来自多个结构各异的不同系统的数据时,ELT 会先将所有数据加载到中心位置,然后通过转换来协调数据,从而简化初始注入过程。

利用 Google Cloud 解决业务难题

新客户可获得 $300 赠金,用于抵扣 Google Cloud 的费用。

Google Cloud 如何使用 ELT

Google Cloud 提供了一整套服务,可帮助优化 ELT 架构,让组织能够构建强大且可伸缩的数据流水线。重点是利用 BigQuery 等服务的强大功能进行数据库内转换。

Google Cloud 服务在 ELT 模式中的典型应用如下:

  • 提取:可以使用 Dataflow(用于批量和流式数据处理)、Managed Service for Apache Spark(用于 Spark 和 Hadoop 工作负载)等服务从多个来源提取数据,也可以直接通过连接器和 API 将数据提取到 Google Cloud 服务中。Pub/Sub 可用于注入实时流式数据。
  • 加载:提取的原始数据通常会加载到 Cloud Storage 中,后者充当高度可伸缩且持久的数据湖。数据可以从 Cloud Storage 高效加载到 BigQuery 中,BigQuery 是 Google Cloud 的无服务器、高度可伸缩且经济实惠的多云数据仓库。数据也可以直接流式传输到 BigQuery 中。
  • 转换:这是 ELT 中的“T”在 Google Cloud 上发挥作用的地方。BigQuery 旨在使用标准 SQL 执行 PB 级复杂转换。其强大的处理引擎可直接对存储在其中的数据执行联接、聚合、窗口函数和其他转换。用户还可以使用 JavaScript 开发用户定义的函数 (UDF),或利用 BigQuery ML 进行数据库内机器学习。原始数据通常保留在 Cloud Storage 或单独的 BigQuery 表中,以便进行灵活的重新转换。

Google Cloud 的基础设施支持 ELT 的核心原则,为原始数据提供可扩缩的存储空间、快速加载功能,并在 BigQuery 中提供强大的引擎来高效执行转换。这让数据工程师能够构建流水线,在其中快速存储数据,然后根据特定的分析要求对数据进行优化,所有这些操作都在托管式无服务器环境中完成。

迈出下一步

获享 $300 赠金以及 20 多种提供“始终免费”用量的产品,开始在 Google Cloud 上构建项目。

Google Cloud