AI 基础
什么是 ETL?(提取、转换、加载)方法论和用例

ETL 代表“提取、转换、加载”。它是一个将来自不同来源的数据集成到一个仓库中,以便于处理和分析的过程,从而可以从中推断出有用的信息。这种有用的信息帮助企业做出数据驱动的决策并发展。
“数据是新的石油。”
克莱夫·哈姆比,数学家
全球数据创造已经指数级增加,以至于根据福布斯的说法,人类每两年就能将数据创造量加倍。因此,现代数据栈已经演变。数据集市已经被转换为数据仓库,当这种方法不够用时,数据湖已经被创建。然而,在所有这些不同的基础设施中,一个过程仍然保持不变,即 ETL 过程。
在本文中,我们将研究 ETL 的方法论、其用例、其优点以及该过程如何帮助形成现代数据景观。
ETL 的方法论
ETL 使得能够将来自不同来源的数据集成到一个地方,以便于处理、分析和与企业的利益相关者共享。它确保了用于报告、分析和机器学习模型预测的数据的完整性。它是一个三步骤的过程,提取来自多个来源的数据,转换数据,然后将其加载到商业智能工具中。这些商业智能工具随后被企业用于做出数据驱动的决策。
提取阶段
在此阶段,使用 SQL 查询、Python 代码、DBMS(数据库管理系统)或 ETL 工具从多个来源提取数据。最常见的来源是:
- CRM(客户关系管理)软件
- 分析工具
- 数据仓库
- 数据库
- 云存储平台
- 销售和营销工具
- 移动应用
这些来源可以是结构化或非结构化的,这就是为什么在此阶段数据格式不统一。
转换阶段
在转换阶段,提取的原始数据被转换和编译成适合目标系统的格式。为此,原始数据经过几个转换子过程,例如:
- 清理——处理不一致和缺失的数据。
- 标准化——在整个过程中应用统一的格式。
- 去重——删除冗余的数据。
- 识别异常值——识别异常值并将其归一化。
- 排序——以提高效率的方式组织数据。
除了重新格式化数据外,还有其他原因需要转换数据。数据中的空值应被删除;此外,数据中经常存在影响分析的异常值;这些异常值应在转换阶段处理。我们经常遇到对业务没有价值的冗余数据;此类数据在转换阶段被删除以节省系统的存储空间。这些是转换阶段解决的问题。
加载阶段
一旦原始数据被提取并通过转换过程进行格式化,就将其加载到目标系统中,通常是数据仓库或数据湖。有两种不同的方法来执行加载阶段。
- 完全加载:所有数据一次性加载到目标系统中。技术上较为简单,但需要更多时间。适用于数据量不太大的情况。
- 增量加载:增量加载按照名称的含义进行,即分批加载。它有两个子类别。
- 流式增量加载:数据以间隔(通常为每日)加载。这种加载方式适用于数据量较小的情况。
- 批量增量加载:在批量增量加载中,数据以批量的方式加载,并在两个批量之间有间隔。适用于数据量较大的情况。这种方式速度快,但技术上更复杂。
ETL 工具类型
ETL 可以通过两种方式执行:手动 ETL 或无代码 ETL。在手动 ETL 中,几乎没有自动化。所有内容都由数据科学家、数据分析师和数据工程师组成的团队编码。所有提取、转换和加载管道都为所有数据集手动设计。这种做法会导致巨大的生产力和资源损失。
替代方案是无代码 ETL;这些工具通常具有拖放功能。这些工具完全消除了编码的需要,因此即使非技术工作者也可以执行 ETL。由于其交互式设计和包容性方法,大多数企业使用 Informatica、Integrate.io、IBM Storage、Hadoop、Azure、Google Cloud Dataflow 和 Oracle Data Integrator 进行 ETL 操作。
数据行业中存在四种无代码 ETL 工具。
- 商业 ETL 工具
- 开源 ETL 工具
- 自定义 ETL 工具
- 基于云的 ETL 工具
ETL 最佳实践
为了确保优化的 ETL 管道,需要遵循一些实践和协议。最佳实践如下:
- 理解数据的背景:如何收集数据以及指标的含义应该被正确理解。这将有助于确定哪些属性是冗余的并应被删除。
- 恢复检查点:如果管道中断并发生数据泄露,必须有协议来恢复泄露的数据。
- ETL 日志:必须维护一个 ETL 日志,记录在 ETL 周期之前、期间和之后执行的每个过程。
- 审计:定期检查数据,以确保数据处于所需的状态。
- 小型数据:数据库和表的大小应保持小,以便数据更水平地分布。这一实践可以提高处理速度,并从而加快 ETL 过程。
- 创建缓存层:缓存层是一层高速数据存储层,存储最近使用的数据,以便快速访问。这一实践可以节省时间,当系统请求缓存的数据时。
- 并行处理:将 ETL 视为一个串行过程会消耗大量企业的时间和资源,使整个过程极其低效。解决方案是进行并行处理和同时执行多个 ETL 集成。
ETL 用例
ETL 使企业的运营变得流畅和高效,以下是三种最流行的用例。
上传到云端:
在本地存储数据是一种昂贵的选择,企业需要在购买、维护和运行服务器上投入资源。为了避免所有这些麻烦,企业可以直接将数据上传到云端。这可以节省宝贵的资源和时间,这些资源和时间可以投资于其他方面的 ETL 过程。
合并来自不同来源的数据:
数据通常分散在组织的不同系统中。使用 ETL 过程将来自不同来源的数据合并到一个地方,以便于处理和分析,然后与利益相关者共享。
预测建模:
数据驱动的决策是成功的商业战略的基石。ETL 通过提取数据、转换数据并将其加载到与机器学习模型链接的数据库中来帮助企业。这些机器学习模型在数据经过 ETL 过程后进行分析,并根据该数据进行预测。
ETL 在数据景观中的未来
ETL 无疑是数据架构的骨干,但它是否会保持这种状态尚待观察,因为随着 Zero ETL 的引入,数据技术领域即将发生重大变化。使用 Zero ETL,传统的提取、转换和加载过程将不再需要,数据将几乎实时地传输到目标系统。
数据生态系统中存在许多新兴趋势。请访问 unite.ai 以了解更多关于技术趋势的信息。












