Skip to content

Latest commit

 

History

History
203 lines (102 loc) · 11.1 KB

1227.md

File metadata and controls

203 lines (102 loc) · 11.1 KB

什么是 ETL?

原文:www.kdnuggets.com/2021/04/whats-etl.html

评论

Omer Mahmood,Google 云客户工程、CPG 和旅游部门负责人

在我上一篇文章中,我讨论了将机器学习(ML)模型投入生产的意义,并介绍了 MLOps 的概念。这次我们将探讨数据科学步骤的另一端,即 数据提取和集成


我们的前三大课程推荐

1. Google 网络安全证书 - 快速进入网络安全职业生涯

2. Google 数据分析专业证书 - 提升你的数据分析技能

3. Google IT 支持专业证书 - 支持你的组织的 IT


TL;DR

ETL 代表 提取-转换-加载,它通常涉及从一个或多个来源移动数据,进行一些更改,然后将其加载到新的单一目标中。

  • 在大多数公司中,数据往往是孤立的,以各种格式存储,通常是不准确或不一致的

  • 如果我们希望能够轻松分析并从数据中获得洞察,或者 使用它 进行数据科学,这种情况远非理想。

???????? 我们如何走到这里

大多数 ML 算法需要大量的训练数据,以生成能够做出准确预测的模型。它们还需要良好的训练数据,代表我们试图解决的问题。

为了强化这一点,我遇到一个很好的例子,类似于 ‘马斯洛需求层次’,突显了数据收集和存储在数据科学中的重要性:

数据科学需求层次

图 1: 数据科学需求层次金字塔,来源:“AI 需求层次” MONICA ROGATI[1]

金字塔底部是收集正确的数据的基本需求,包括正确的格式、系统和数量。

任何 AI 和 ML 的应用效果都将取决于所收集数据的质量。

所以,假设你已经 框定了问题并确定它适合 ML。你知道你需要什么数据,至少在开始实验时需要的数据。但不幸的是,它们分散在不同的系统中,遍布整个组织。

下一步是弄清楚如何将数据汇总、按需转换,然后将其作为单一的集成数据集放置到某个地方。只有当数据可访问时,你才能开始探索数据、进行特征工程和模型训练——这就是我们友好的缩写 ETL 的用武之地!

???? 这怎么运作?

为了让它更具体一些,我们用一个现代的实际 ETL 示例。

想象你是一个使用销售力量(SalesForce)这样的客户关系管理(CRM)系统来跟踪注册客户的在线零售商。

你还使用了像 Stripe 这样的支付处理器来处理并存储通过你的网站完成的销售交易的详细信息。

假设你的目标是通过使用客户历史购买数据来提高转化率,从而在客户浏览你的网站时提供更好的产品推荐。

你当然可以使用机器学习模型来驱动推荐引擎实现这个目标。但问题是,你需要的数据存在于两个不同的系统中。我们案例中的解决方案是使用 ETL 过程来提取、转换并将它们合并到数据仓库中:

说明 ETL 过程的图示

图 2:使用 ETL 将数据从不同来源移动到数据仓库的过程。图示作者提供。

让我们分析一下上面的图示:

1. 提取 — 这个过程涉及从我们的两个来源(SalesForce 和 Stripe)中检索数据。一旦数据被检索,ETL 工具将把它加载到一个准备进行下一步的暂存区。

2. 转换 — 这是一个关键步骤,因为它处理数据如何被集成的具体细节。任何数据的清理、重新格式化、去重和混合都在这里进行,然后才能继续向下处理。

在我们的例子中,假设在一个系统中,客户记录以“凯文·里夫斯”存储,而在另一个系统中,这个客户记录以“基努·里维斯”存储。

假设我们知道这是同一个客户(基于他们的送货地址),但系统仍需对这两个记录进行对账,以避免重复记录的出现。

➡️ ETL 框架和工具为我们提供了自动化这种转化所需的逻辑,并且可以应对许多其他场景。

3. 加载 — 涉及将传入的数据成功插入到目标数据库、数据存储,或者在我们的例子中是数据仓库中。

所以,我们已经收集了数据,通过 ETL 管道整合了它,并将其加载到一个可供数据科学使用的地方。

???? **附注 **????

ETL 与 ELT

你可能还遇到过“ELT”这个术语。提取、加载和转换(ELT)与 ETL 的区别仅在于转换发生的位置。在 ELT 过程中,数据转换发生在目标数据存储中。

这可以通过去除有时作为独立或中间阶段系统的数据转换来简化架构。另一个优势是,你可以从通常存在于云数据仓库等目的地的额外规模和计算性能中受益。

???? 附注????

???? 常见挑战

好的,这些 ETL 的内容听起来很简单,对吧?这里有一些需要注意的‘陷阱’:

☄️ 扩展

根据 IDC 的报告,到 2025 年企业产生的数据量预计将增长至 175 泽字节[2]。因此,你应该确保选择的 ETL 工具能够满足当前及未来的需求。你现在可能以批量方式移动数据,但这会一直是这样吗?你可以并行运行多少作业?

迁移到云端是未来保障 ETL 过程的一个相当安全的选择——通过访问理论上无限的存储和计算能力,同时减少 IT 资本支出。

???? 数据准确性

另一个大的 ETL 挑战是确保你转换的数据是准确和完整的。手动编码和更改或未计划和测试 ETL 作业可能会引入错误,包括加载重复数据、丢失数据和其他问题。

ETL 工具确实会减少手动编码的需要,并帮助减少错误。数据准确性测试可以帮助发现不一致和重复,监控功能可以帮助识别处理不兼容数据类型和其他数据管理问题的情况。

???? 数据源的多样性

数据的体量在增长。但更重要的是,数据的复杂性也在增加。一家企业可能需要处理来自数百甚至数千个数据源的多样化数据。这些数据源可以包括结构化和半结构化源、实时源、平面文件、CSV、对象桶、流数据源以及未来可能出现的新数据源。

一些数据最好批量转换,而对于其他数据,流式、持续的数据转换效果更佳。

制定应对不同数据源的策略是关键。一些现代 ETL 工具可以在一个地方支持多种数据源,包括批处理和流处理。

????????‍♀️ 那么我该如何开始?

到这一步,你应该对为什么以及何时需要在数据科学工作流中使用 ETL 有一个清晰的了解。我们还涵盖了在开始考虑 ETL 过程时需要注意的常见挑战。

我将结束于一个简单的 ETL 工具选择方法,以及一些其他有用的资源。

????????‍♀️ 我应该使用哪个 ETL 工具,何时使用?

所以我们理解 ETL 过程中的情况,但在更实际的层面上这意味着什么?

你需要设计一个明确描述的 ETL 管道:

  • 从哪些数据源中提取数据以及如何连接到这些数据源

  • 在获取数据后需要进行哪些转换,最后

  • 管道完成后数据的加载位置

ETL 管道可以通过基于代码的框架来表达,或者现在更流行的选择是使用提供“拖放”用户界面的 ETL 工具,以视觉方式定义管道中的步骤。

一旦你实现了 ETL 管道,它通常需要在某个地方运行,即使用一个 ETL 工具来执行你的管道,并且一个提供临时存储和转换数据所需资源的环境。

我尝试在下面的图表中简化决策步骤(点击放大):

决定使用哪个 ETL 工具和何时使用的决策树

图 3: 选择哪个 ETL 工具以及何时使用。作者插图。

注意: 这张决策树绝不是详尽无遗的列表; 你需要做出的决策、框架或可用产品。

确实,对于每一个中间 ETL 步骤,都有数十种开源和专有的解决方案。从编排到调度——我们无法在这里涵盖所有内容。

这篇文章的目的是作为进入 ETL 世界的跳板!祝你在数据集成的旅程中好运!????

???? 有用的资源和进一步阅读

链接

书籍

  • 数据仓库 ETL 工具包: 提取、清理、整理和交付数据的实用技术, Wiley, 作者: Ralph Kimball, Joe Caserta

  • 流处理系统: 大规模数据处理的什么、哪里、何时和如何, O’Reilly, 作者: Tyler Akidau, Slava Chernyak, Reuven Lax

数据无关的 ETL 工具

???? 参考文献

[1] 人工智能需求层次结构, Monica Rogati

hackernoon.com/the-ai-hierarchy-of-needs-18f111fcc007

[2] 175 Zettabytes By 2025, Forbes, Tom Coughlin

www.forbes.com/sites/tomcoughlin/2018/11/27/175-zettabytes-by-2025/?sh=6a5d2e7a5459

简介: Omer Mahmood 是 Google 的云客户工程、消费品和旅游部门负责人。

原文. 经许可转载。

相关:

  • 介绍 dbt,ETL 和 ELT 的颠覆者

  • 数据工程师的角色正在变化

  • 为什么 ETL 的未来不是 ELT,而是 EL(T)

更多相关话题