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


什么是 ETL?

提取、转换、加载(ETL)过程将多个来源的数据组合到称为数据仓库的大型中央存储库中。ETL 使用一组业务规则来清理和组织原始数据,并为存储数据分析机器学习(ML)做好准备。您可以通过数据分析满足特定的商业智能需求(例如预测业务决策的结果、生成报告和控制面板、减少无效运营等)。

为什么 ETL 很重要?

今天的组织拥有来自各种来源的结构化和非结构化数据,包括:

  • 来自在线支付和客户关系管理(CRM)系统的客户数据
  • 来自供应商系统的库存和运营数据
  • 来自物联网(IoT)设备的传感器数据
  • 来自社交媒体和客户反馈的营销数据
  • 来自内部人力资源系统的员工数据

通过应用提取、转换、加载(ETL)过程,可以以更易于分析的格式和结构准备单个原始数据集,从而产生更有意义的见解。例如,在线零售商可以分析来自销售点的数据来预测需求和管理库存。营销团队可以将 CRM 数据与社交媒体上的客户反馈相结合,以研究使用器行为。

ETL 如何使商业智能受益?

提取、转换、加载(ETL)通过使流程更加可靠、准确、详细和高效来改进商业智能和分析。

历史背景

ETL 为组织的数据提供了深刻的历史背景。企业可以将遗留数据与来自新平台和应用程序的数据相结合。您可以查看较旧的数据集以及较新的信息,从而为您提供长期的数据视图。

合并数据视图

ETL 提供统一的数据视图,以便进行深入分析和报告。管理多个数据集需要时间和协调,并可能导致效率低下和延迟。ETL 会将数据库和各种形式的数据整合到一个统一的视图中。数据集成过程提高了数据质量并节省了移动、分类或标准化数据所需的时间。这使得分析、可视化和理解大型数据集变得更加容易。

准确的数据分析

ETL 提供更准确的数据分析,以满足合规性和监管标准。您可以将 ETL 工具与数据质量工具集成,对数据进行剖析、审计和清理,确保数据可信。

任务自动化

ETL 会自动执行可重复的数据处理任务以进行高效分析。ETL 工具会自动执行数据迁移过程,您可以将它们设置为定期,甚至在运行时集成数据更改。因此,数据工程师可以将更多时间用于创新,并减少在管理繁琐的任务(例如移动和格式化数据)上花费的时间。

ETL 是如何演变的?

提取、转换、加载(ETL)起源于关系数据库的出现,该数据库以表格的形式存储数据以供分析。早期的 ETL 工具试图将数据从事务数据格式转换为关系数据格式以进行分析。

传统 ETL

原始数据通常存储在支持许多读写请求但不能很好地用于分析的交易数据库中。您可以将其视为电子表格中的一行。例如,在电子商务系统中,交易数据库将购买的商品、客户详细信息和订单详细信息存储在一次交易中。在这一年中,它包含了一个长长的交易清单,其中包含同一客户在一年中购买了多件商品的重复条目。由于数据重复,分析当年最受欢迎的商品或购买趋势变得很麻烦。

为了克服这个问题,ETL 工具自动将此交易数据转换为具有互连表格的关系数据。除了模式和趋势之外,分析师还可以使用查询来识别表之间的关系。

现代 ETL

随着 ETL 技术的发展,数据类型和数据来源都呈指数级增长。云技术的出现是为了创建庞大的数据库(也称为数据接收器)。此类数据接收器可以从多个来源接收数据,并具有可以随时间扩展的底层硬件资源。ETL 工具也变得更加复杂,可以与现代数据接收器一起使用。他们可以将数据从传统数据格式转换为现代数据格式。现代数据库的示例如下。

数据仓库

数据仓库是可以存储多个数据库的中央存储库。在每个数据库中,您可以将数据组织成表和描述表中数据类型的列。数据仓库软件适用于多种类型的存储硬件,例如固态驱动器(SSD)、硬盘驱动器和其他云存储,以优化您的数据处理。

数据湖

借助数据湖,您可以将结构化和非结构化数据以任意规模存储在一个集中式存储库中。您可以按原样存储数据,而不必首先根据您将来可能遇到的问题对其进行结构化。数据湖还让您可以对数据运行不同类型的分析(如 SQL 查询、大数据分析、全文搜索、实时分析和机器学习(ML)等)来获得更深入的见解。

ETL 的工作原理?

提取、转换、加载(ETL)的工作是定期将数据从源系统移动到目标系统。ETL 过程分三个步骤:

  1. 从源数据库中提取相关数据
  2. 转换数据,使其更适合分析
  3. 将数据加载到目标数据库

什么是数据提取?

在数据提取中,提取、转换、加载(ETL)工具从多个来源提取或复制原始数据并将其存储在暂存区域中。暂存区(或登录区)是用于临时存储提取数据的中间存储区。数据暂存区通常是暂时的,这意味着它们的内容在数据提取完成后会被删除。但是,暂存区也可能会出于故障排除的目的而保留数据存档。

系统将数据从数据来源发送到目标数据存储的频率取决于底层变更数据捕获机制。数据提取通常通过以下三种方式之一进行。

更新通知

在更新通知中,源系统会在数据记录发生更改时通知您。然后,您可以针对该更改运行提取过程。大多数数据库和 Web 应用程序都提供更新机制来支持这种数据集成方法。

增量提取

某些数据来源无法提供更新通知,但可以识别和提取在给定时间段内经过修改的数据。在这种情况下,系统会定期检查更改,例如每周一次、每月一次或活动结束时。您只需要提取已更改的数据。

完全提取

某些系统无法识别数据更改或发出通知,因此重新加载所有数据是唯一的选择。这种提取方法要求您保留上次提取的副本以检查哪些记录是新的。由于此方法涉及大量数据传输,因此我们建议您仅将其用于小型表格。

什么是数据转换?

在数据转换中,提取、转换、加载(ETL)工具将转换和整合暂存区域中的原始数据,为目标数据仓库做好准备。数据转换阶段可能涉及以下类型的数据更改。

基本数据转换

基本转换通过消除错误、清空数据字段或简化数据来提高数据质量。这些转换的示例如下。

数据清理

数据清理可消除错误并将源数据映射到目标数据格式。例如,您可以将空数据字段映射到数字 0,将数据值“Parent”映射到“P”,或将“Child”映射到“C”。

数据去重复

数据清理中的去重复将识别并删除重复记录。

数据格式修订

格式修订会将字符集、测量单位和日期/时间值等数据转换为一致的格式。例如,一家食品公司可能有不同的配方数据库,其成分以千克和磅为单位。ETL 会将所有单位转换为磅。

高级数据转换

高级转换使用业务规则来优化数据以便于分析。这些转换的示例如下。

推导

推导将业务规则应用于您的数据,以根据现有值计算新值。例如,您可以通过减去费用或通过将每件商品的价格乘以订购的商品数量来计算购买的总成本来将收入转换为利润。

联结

在数据准备中,联结将链接来自不同数据来源的相同数据。例如,您可以通过将不同供应商的采购价值相加,并仅将最终总计存储在目标系统中来找出某件物品的总采购成本。

拆分

您可以在目标系统中将列或数据属性划分为多个列。例如,如果数据来源将客户名称保存为“Jane John Doe”,您可以将其拆分为名字、中间名和姓氏。

汇总

汇总通过将大量数据值减少到较小的数据集中来提高数据质量。例如,客户订单发票值可以有许多不同的小金额。您可以通过将给定时间段内的数据相加来汇总数据,以构建客户生命周期价值(CLV)指标。

加密

您可以通过在数据流到目标数据库之前添加加密来保护敏感数据,以遵守数据法律或数据隐私。

什么是数据加载?

在数据加载中,提取、转换、加载(ETL)工具会将转换后的数据从暂存区移动到目标数据仓库。对于大多数使用 ETL 的组织来说,该过程是自动化的、定义明确的、连续的和批处理驱动的。下面是两种加载数据的方法。

完全加载

在完全加载时,来自源的全部数据被转换并移动到数据仓库。完全加载通常发生在您第一次将数据从源系统加载到数据仓库中时。

增量加载 

在增量加载中,ETL 工具会定期加载目标系统和源系统之间的增量(或差异)。它会存储最后提取日期,以便仅加载在此日期之后添加的记录。有两种方法可以实现增量加载。

流式增量加载

如果您的数据量较小,您可以通过数据管道将持续更改流式传输到目标数据仓库。当数据速度增加到每秒数百万个事件时,您可以使用事件流处理来监控和处理数据流,从而更及时地做出决策。

批量增量加载

如果您的数据量很大,您可以定期分批收集将负载数据更改。在此设定的时间段内,由于数据同步,源系统或目标系统都不会发生任何操作。

什么是 ELT?

提取、加载、转换(ELT)是提取、转换、加载(ETL)的扩展,它颠倒了操作的顺序。您可以在处理数据之前将数据直接加载到目标系统中。不需要中间暂存区,因为目标数据仓库中具有数据映射功能。随着云基础设施的采用,ELT 变得越来越流行,这为目标数据库提供了转换所需的处理能力。

ETL 与 ELT 的比较

ELT 适用于需要频繁加载的大容量、非结构化数据集。它也是大数据的理想选择,因为可以在数据提取和存储之后进行分析规划。它将大部分转换留给分析阶段,并专注于将经过最少处理的原始数据加载到数据仓库中。

ETL 过程在开始时需要更多的定义。分析需要从一开始就参与定义目标数据类型、结构和关系。数据科学家主要使用 ETL 将遗留数据库加载到仓库中,而 ELT 已成为当今的常态。

什么是数据虚拟化?

数据虚拟化使用软件抽象层来创建集成数据视图,而无需物理提取、转换或加载数据。组织将此功能用作虚拟统一数据存储库,无需为源和目标构建和管理单独平台的费用和复杂性。虽然您可以将数据虚拟化与提取、转换、加载(ETL)一起使用,但它越来越被视为 ETL 和其他物理数据集成方法的替代方法。例如,您可以使用 AWS Glue Elastic Views 从多个不同的源数据存储中快速创建虚拟表(物化视图)。

什么是 AWS Glue?

AWS Glue 是一项无服务器数据集成服务,它使分析用户可以更轻松地发现、准备、移动和集成来自多个来源的数据以进行分析、机器学习(ML)和应用程序开发的工作。

  • 您可以发现和连接 80 多个不同的数据存储。
  • 您可以在集中的数据目录中管理数据。
  • 数据工程师、ETL 开发人员、数据分析师和商业用户可以使用 AWS Glue Studio 创建、运行和监控 ETL 管道,以便将数据加载到数据湖中。
  • AWS Glue Studio 提供有可视化 ETL、笔记本和代码编辑器界面,使用户拥有与其技能相对应的工具。
  • 借助交互式会话,数据工程师可以使用其首选的 IDE 或笔记本探索数据以及撰写和测试任务。
  • AWS Glue 是一项无服务器服务,可按需自动扩缩,因此,您可以更专注于从 PB 级数据中获取见解,无需管理基础设施。

通过创建 AWS 账户开始使用 AWS Glue。

AWS ETL 后续步骤

查看其他与产品相关的资源
了解有关 AWS Glue 的更多信息 
注册免费账户

立即享受 AWS 免费套餐。 

注册 
开始在控制台中构建

在 AWS 管理控制台中,使用 AWS 开始构建。

登录