【问题标题】:ETL tools... what do they do exactly? In laymans terms please [closed]ETL 工具……它们到底是做什么的?请用外行的话[关闭]
【发布时间】:2009-07-29 00:47:43
【问题描述】:

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

【问题讨论】:

  • “使用”它们? “用途”是什么意思?人们写它们。然后他们跑了。当不涉及任何“最终用户”时,“使用”可能意味着任何东西。
  • 由于链接的SO线程被删除,here is a definition of ETL

标签: etl


【解决方案1】:

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

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


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

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

【讨论】:

  • @duffymo:我只需要加入并打下良好的基础。
  • @S.Lott:我很高兴你这样的人会认为我写的任何东西都是“优秀的”。感谢您的改进和继续教育。一直在读你的博客——非常棒。如果我能以足够快的速度攀登 Python 学习曲线,我很乐意与像你这样的人一起工作。
【解决方案2】:

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

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

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

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


一些例子:

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

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

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


一些工具:

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

  2. 更便宜:Jitterbit、Talend

  3. 中间位置:SSIS for SQL Server


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

【讨论】:

    【解决方案3】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-11-05
      • 2015-11-04
      • 1970-01-01
      • 2018-02-23
      • 2018-02-14
      • 1970-01-01
      • 2019-06-10
      • 1970-01-01
      • 2017-12-08
      相关资源
      最近更新 更多