6

我最近接触了一些 ETL 工具,例如 Talend 和 Apatar,我想知道这些工具的目的/主要目标到底是什么。谁主要使用它们,如果你使用它们,它们(根据我的理解)如何比仅仅编写某种类型的脚本更好。

4

3 回答 3

15

ETL 代表“提取/转换/加载”。这些工具从一个来源获取数据并将其转移到另一个来源。您可以以独特的方式将模式从源映射到目标,在数据移动到目标之前转换和清理数据,并以有效的方式加载目标。您可以将 ETL 作业安排为批处理。

这些数据源可以是关系数据库、电子表格、XML 文件等。


谁“使用”它们?取决于您所说的“用途”。它们只是代码,大多数时候,它们被安排为常规操作的一部分。没有最终用户功能。它们完全是由程序员创建和操作来操作的。

优于脚本?没有任何。它们是用特定领域语言 (DSL) 编写的脚本,完全专注于从源“提取”、“转换”和“加载”到目标。脚本中最有趣的部分是每个阶段的逐个字段映射。

于 2009-07-29T01:03:11.493 回答
4

ETL 只是简单地获取数据,对其进行处理,然后将数据粘贴到某处。

  1. 提取 - 从某处获取数据(该位置称为源)。Source 可以是文件、数据库表、管道等。

  2. 转换 - 对源数据做一些事情。例如,您的源包含人员和出生日期,因此您可以“转换”数据以确定人员的年龄。

  3. 加载 - 获取转换后的数据并将其放在某个地方,例如不同的数据库或相同的数据库。这称为目标。几乎任何可以作为源的类型的数据存储也可以用作目标。


一些例子:

  1. 从 DB2 中的数据仓库中提取数据。使用过滤器转换数据以仅发送与特定日期范围匹配的数据。将过滤后的数据加载到 SQL Server 数据集市中。

  2. 从 XML 文件中提取数据。转换数据,使数据“扁平化”成行。将数据加载到逗号分隔的文件中。

  3. 提取来自管道或队列的数据,例如 IBM MQ。通过解析排队消息中的关键字段来转换数据。将解析后的数据加载到大型机中。


一些工具:

  1. 大手笔,企业级:Ab Initio、Informatica、IBM 的 Datastage

  2. 更便宜: Jitterbit,Talend

  3. 中间的某个地方:用于 SQL Server 的 SSIS


谁使用它们?主要是需要构建和维护复杂数据仓库的公司将投资于 ETL 工具。ETL 工具通常是可视化设计工具,允许您可视化地构建 ETL 程序,而不是仅使用编程技术。

于 2014-07-30T22:07:53.327 回答
2

ETL 常用于数据仓库应用程序中。

例如,您可能有一个 Oracle 或 Sql Server 订单处理系统。这可能会保留所有数据,直到订单发货,但您不希望多年的旧订单堵塞系统。

此外,您的公司中可能有多个这样的系统,它们都是相互独立开发的。

因此,为了整合历史数据,您可能会建立一个数据仓库,最终将来自所有这些不同系统的数据存放在其中,从而为您提供一个进行报告、计划、数据挖掘等的好地方。

由于所有数据源都不同,并且您想要长期存储的数据类型可能与您在较小数据库中的数据不同,因此您设置了一个 ETL 系统来转换和管理数据流。

于 2009-07-29T01:13:32.490 回答