我最近接触过一些ETL工具,如Talend和Apatar,我想知道这些工具的目的/主要目标到底是什么。谁主要使用它们,如果你使用它们,它们(根据我的理解)比仅仅编写某种类型的脚本更好。
答案 0 :(得分:14)
ETL代表“提取/转换/加载”。这些工具从一个来源获取数据并将其移动到另一个来源。您可以以独特的方式将模式从源映射到目标,在数据移动到目标之前转换和清理数据,并以有效的方式加载目标。您可以将ETL作业计划为批处理。
这些数据源可以是关系数据库,电子表格,XML文件等。
谁“使用”他们?取决于“使用”的含义。它们只是代码而且大部分时间都被安排为常规操作的一部分。没有最终用户功能。它们完全适合程序员创建和操作。
优于脚本?没有。它们是用特定于域的语言(DSL)编写的脚本,完全集中在从源“提取”,“转换”和“加载”到目标。脚本的大多数有趣部分是每个阶段的逐字段映射。
答案 1 :(得分:4)
ETL只是获取数据,对其做一些事情,将数据粘贴到某处。
提取 - 从某处获取数据(该位置称为源)。源可以是文件,数据库表,管道等。
转换 - 对源数据执行某些操作。例如。你的来源包含人和生日,所以你可以"转换"确定此人年龄的数据。
加载 - 获取转换后的数据并将其放在某处,例如不同的数据库或同一数据库。这被称为目标。几乎任何可以作为源的数据存储类型也可以用作目标。
一些例子:
从DB2中的数据仓库中提取数据。使用过滤器转换数据,仅发送与特定日期范围匹配的数据。将过滤后的数据加载到SQL Server数据集市中。
从XML文件中提取数据。转换数据,使数据变得平坦"成行。将数据加载到逗号分隔文件中。
提取管道或队列(例如IBM MQ)上的数据。通过解析排队消息中的关键字段来转换数据。将解析后的数据加载到大型机中。
一些工具:
大笔资金,企业级:Ab Initio,Informatica,IBM的数据存储
价格较低:Jitterbit,Talend
中间的某个地方:SQL Server的SSIS
谁使用它们? 主要是需要构建和维护复杂数据仓库的公司将投资ETL工具。 ETL工具通常是可视化设计工具,允许您直观地构建ETL程序,而不是仅使用编程技术。
答案 2 :(得分:2)
ETL通常用于数据仓库应用程序。
例如,您可能拥有Oracle或Sql Server订单处理系统。这可能会保留所有数据,直到订单发货,但您不希望多年的旧订单堵塞系统。
此外,您公司可能有多个这样的系统,它们都是相互独立开发的。
因此,为了整合历史数据,您可以设置一个数据仓库,其中来自所有这些不同系统的数据最终结束,这为您提供了报告,规划,数据挖掘等的好地方。
由于所有数据源都不同,并且您希望长期存储的数据类型可能与较小数据库中的数据不同,因此您需要设置ETL系统来转换和管理数据流。 / p>