何为 ETL(提取、转换、加载)?

提取、转换、加载 (ETL) 是指从不限数量的来源收集数据,将其组织在一起,并集中于单个存储库中的过程。

etl diagram

在大多数企业中,潜在有用的数据都难以被访问。一项研究发现,三分之二的企业要么从他们的数据中所获甚微,要么一无所获。这些数据通常被锁在隔离的孤岛、旧有的系统或鲜有使用的应用程序中。ETL 流程可通过提取来自多个来源(如上图所示)的数据并将其用于清洗、转换以及获得业务见解,使其变得可以利用。

一些人利用 SQL 或 Java 进行手动编码来执行 ETL,但其实有一些工具可简化该过程。本文将详细探讨 ETL 的使用案例、相比手动编码使用 ETL 工具的优势,以及使用者可利用 ETL 工具的哪些特性

ETL 有何用途?

数据在几乎所有企业经营活动中都扮演着重要的角色,而数据要发挥价值,就必须可以移动并且可随时投入使用,这意味着您需要 ETL 流程。ETL 用例包括:

  • 将数据从一个应用程序迁移到另一个应用程序
  • 数据复制,用于备份或冗余分析
  • 操作流程,例如将数据从 CRM 中迁移到 ODS(操作数据存储),以改善或丰富数据,然后再将其回推到 CRM
  • 将数据置于数据仓库中,以进行摄取、排序和转换,从而提供商业智能
  • 将应用程序从本地部署迁移至云、混合云或多云基础架构
  • 同步关键系统

Ready For More? Download 何为 ETL(提取、转换、加载)? User Guide now.

View Now

ETL 和 ELT 流程如何运作

通常而言,ETL 是一个三步流程。一个越来越常见的做法是,从源位置提取数据然后加载到目标数据仓库,或者加载后对数据进行转换。此流程称为 ELT 而非 ETL。进一步了解ETL 与 ELT

以下是 ETL 流程的三个步骤:

第 1 步:提取

ETL 旨在生产经过清洗并可用于分析或企业经营活动的可访问数据。原始数据必须从各种各样的来源中提取出来,这些来源包括:

  • 现有数据库
  • 活动日志,比如网络流量、错误报告等等
  • 应用程序性能和异常
  • 安全事件
  • 其他出于合规要求必须予以报告的交易活动

提取出的数据随后存放于诸如数据湖或数据仓库等目标位置。

第 2 步:转换

ETL 转换阶段是进行最关键工作的一个阶段。转换最大的用途是向数据应用任何业务规则,以满足报告要求。转换会将原始数据更改为正确的报告格式。如果数据未经过清洗,则应用业务规则生成报告的操作将变得更具挑战性。

转换是通过您列出的一系列规则和规定来完成。在此阶段确保数据质量和可访问性的标准应包括:

  • 标准化:定义转换哪些数据,如何对其进行格式化和存储,以及其他用于定义随后每一步骤的基准考量因素。
  • 重复删除:将重复报告给数据专员;排除和/或丢弃冗余数据
  • 验证:运行自动检查,比较诸如交易时间和访问记录等类似信息。验证任务将进一步删减不可用的数据,并对您系统、应用程序或数据中存在的异常情况发出报警信号。
  • 排序:通过按照类别对原始数据、音频、多媒体和其他对象等项目进行分组和存储,最大限度地提高数据仓库中的效率。转换规则将确定如何对每一数据片进行分类,以及接下来将其放置在哪里。通常,ETL 流程用于构建概要报告所需的聚合表。这将需要进行排序以及聚合。
  • 您定义和设置自动执行的其他任务

这些转换步骤可将之前的大量不可用材料缩减为您可在 ETL 最后一即加载阶段)中显示的数据产品。

第 3 步:加载

典型 ETL 流程中的最后一步是将这一提取并转换过的数据加载到它的“新家”。通常有两种方式可以将数据加载到数据仓库:满载和增量加载。

执行一个独立的 ETL 周期或者一系列计划的周期可以通过从命令行或 GUI 界面执行任务来完成。但需要注意某些方面。比如,管理异常情况可能就是一个非常繁琐的流程。通常如果一个或多个系统发生故障,数据提取可能失败。一个系统中的不良数据可能影响正从另一系统提取的数据,因此监控和错误处理是非常关键的活动。

三分钟视频 - 何为 ETL 

 

现代数据实践:ETL 与 ELT

ELT 是一经过检验而可靠的流程,旨在管理从来源到可供用于商业智能之就绪状态的整个数据旅程。但是得益于基于云的现代化基础架构技术,系统现在能够以更低成本支持大型数据存储以及可扩展计算能力。因此,将数据保存在不断扩展的大型数据池中变得优势倍显,并且可以提供无尽的快速处理能力,让您轻松维护提取的原始数据。

在某种程度上,ELT 可谓是一款首选的数据管理方法,因为它可以保留所有原始数据,直到其可供使用。因此,只聚焦于数据提取和加载变得很简单。但是,决不能忽视数据转换。数据转换具有许多优势,其中包括:

  • 准备数据以进行机器学习,这将大幅提高算法的准确性
  • 清洗数据以改善数据质量
  • 数据重复删除和匹配
  • 标准化数据值

即使在以数据湖为中心的领域,数据转换对于从企业数据中提取全部价值也至关重要。

ETL 工具与手动编码 ETL 流程

许多 IT 专业人员在思考投资另一工具是否是比手动编码更好的选择。大多数 ETL 功能可通过手动编码完成,但在多数情况下,使用 ETL 流程工具从长期来看可扩展性更高、成本更低。

手动编码存在诸多挑战。管理、支持和重用手动编码很复杂。让一个发人员学习另一个发人员的代码本身就非常困难,更不用说重用了。ETL 工具可以创建一个更易于理解的可视化数据流表示。就手动编码来说,我们经常看到开发人员重新编写其他开发人员的代码,因为相比学习他人已完成的代码来说重新编写更为容易。这便是为何手动编码的维护成本常常高出 2 倍。而这一问题也使得一个开发人员不太可能去使用另一开发人员的代码。

此外,借助数据集成工具,您将可以自动将诸如并行化、监控和故障切换等高级功能全部内置其中。如果您在进行手动编码时想获得这些功能,您将需要有技能娴熟的程序员学习所有这些技能。最后,自定义编码数据集成方法将会限制扩展和创新,因为能够使用您的自定义编码集成的开发人员少之又少。如果放弃 ETL 工具,您可能享受的前期节省会被大幅增加的维护成本所吞没。

ETL 和迁移到云端

事实证明,云兼容性对于许多企业而言至为关键。随着企业向云端迁移,他们通常需要重新评估现有的数据集成 ETL 工具,因为许多传统工具在云端运行的并不理想。不仅如此,大多数企业还具有多个云,或者发现他们希望从一家云供应商(例如 AWS、Azure 或 Google Cloud Platform)迁移到另一家

ETL 工具应能适合任何云供应商,并随着企业更换提供商轻松进行迁移。在更换云平台时您肯定不想重新编写数据管道,相反您希望您的数据管道可以移植,以便您能够随意选用和弃用不同的云、存储技术、数据处理技术和云数据库。

对 ETL 工具的期望

ETL 工具可大幅精简 ETL 流程。ETL 工具具备的特性包括:

  • 大量连接器:世界上有许多系统和应用程序;您的 ETL 工具具备的预建连接器越多,您的团队可以节省的时间将越多。
  • 源:源架构通常可以提供更大的灵活性,同时帮助避免供应商锁定。
  • 可移植性:这点非常重要,因为越来越多的企业为了能一次性构建好数据集成方案然后在任何地方运行,转向了混合云模式
  • 易用性:ETL 工具应配备一个 GUI 界面,易于学习和使用,让您可以轻松实现数据管道的可视化。
  • 透明定价模型:您的 ETL 工具提供商不应反复劝说您增加连接器数量或数据量。
  • 云兼容性:您的 ETL 工具应可在单云、多云或混合云环境中源生运行。

Talend 提供的 ETL:Talend Data Integration 与 Talend Open Source Data Integration

Talend 针对 ETL 流程提供强大的数据集成工具。借助 Talend 数据集成解决方案,用户将能够以比手动编码快 10 倍的速度,以竞争对手五分之一的成本完成集成工作。

Talend 数据集成软件有两个版本:Talend Open Source Data IntegrationTalend Data Management Platform。我们来看一下两者之间有何不同。Talend Open Source Data Integration 产品功能强大,适用于许多使用案例,也是开发人员独立构建和运行数据管道的不错工具。

当前,客户正不断壮大团队规模,力求增进协作,并希望获得企业级支持以提高效率,因而需要安装使用商业版。Talend Data Management Platform 可以提供额外的功能,例如管理和监控能力、内置于平台之中的数据质量功能,以及对 Web、电子邮件和电话的附加支持。两款产品均提供源生多云功能,可针对任何类型的项目进行扩展,并且内置 900 个连接器。

ETL 是在企业中充分利用数据的一个关键流程。Talend 打造的工具让执行 ETL 流程变得易如反掌。尝试一下 Talend Open Source Data Integration,看看在不牺牲速度和效率的情况下,您可以将多少数据纳为您的业务所用。

 

| Last Updated: January 22nd, 2019