AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 135
Accepted
Spredzy
Spredzy
Asked: 2011-01-05 00:30:15 +0800 CST2011-01-05 00:30:15 +0800 CST 2011-01-05 00:30:15 +0800 CST

如何使用 ETL?

  • 772

我知道这些字母表示提取、转换和加载。

但是,当我一开始使用它时,我认为在转换阶段我可以对从数据源中提取的数据进行大量不同的连接,后来我意识到在不同的 ETL 上进行连接并不是那么方便.

  • 那么我们在Transform阶段做什么呢?
  • 计算并输出结果 ?
  • 字符串转换?
  • 输入数据源应该只是 csv、xml 还是纯文件?
  • 如果连接不是那么方便,我们是否应该只在 ETL 中进行高级转换?

谢谢

etl
  • 3 3 个回答
  • 1448 Views

3 个回答

  • Voted
  1. Best Answer
    Brian Ballsun-Stanton
    2011-01-05T00:57:22+08:002011-01-05T00:57:22+08:00

    提取转换和加载是准备要插入数据库或数据仓库的外部数据

    查看 ETL 的基础知识,数据仓库设计师 Bill Inmon指出:

    曾几何时,在不远的过去,没有 ETL(提取、转换和加载)软件。如果您想构建一个数据仓库,您必须编写代码以便将数据从一个源获取到适当的目标。有很多代码——很多重复的代码。

    编写代码后,您必须对其进行维护。每次遗留系统发生变化时,您都会对代码进行手动维护。每次目标定义更改时,您都必须对代码进行手动维护。每次最终用户想要新的东西时,您都必须对代码进行维护。

    正如 Inmon 在他的 ETL 产品简史中所描述的那样,从这里开始,大量的 ETL 产品激增。它们很受欢迎,因为它们是软件工具,旨在从不断变化的系统中提取数据,根据特定规则对其进行转换,并将其加载到数据仓库中。这个软件过程意味着人类只参与了循环的关键元素:解开加载的数据错误。通过最大限度地自动化,ETL 流程为公司提供了一种无缝方式,不仅可以将当前数据库加载到数据仓库中,还可以将相同数据库的未来数据集加载到其中,以便数据仓库可以持续提供未来的结果。

    为了具体回答您的问题,不同的数据库提供了不同的摘录。应用转换来规范化数据。规范化既是在特定于数据库的意义上,改变数据的模式以匹配接收数据仓库,也是在人类意义上,确保不同系统中的相同数据对传入系统显示相同。

    数据源可以是任何您可以编写转换代码的东西,因为转换的目的是将规则应用于传入数据,以使其适合您的数据模型。只有在必要时才应加入不同的数据集。而是依靠您的收件人数据库来同步结果。

    • 11
  2. Bob Blackburn
    2011-01-05T10:54:43+08:002011-01-05T10:54:43+08:00

    这里有几个用途:

    • 数据清理(旧系统中的日期没有日期时间,您必须验证整数日期字段。
    • 检查孤儿
    • 规范化数据(我们采用了 17 个贷款表并输出 5 个)
    • 合并来自多个源系统的数据
    • 创建聚合表
    • 4
  3. Joe
    2011-01-05T11:53:03+08:002011-01-05T11:53:03+08:00

    除了上面提到的,我的大部分“转换”都是在进行单位转换时完成的,因为我的大多数数据库都跟踪来自不同来源的科学数据。所以当我“规范化”数据时,这就是我们领域所说的“数据协调”(将事物放在相似的尺度/参考框架上,以便可以直接比较),不一定是“数据库规范化”,尽管我可能需要做一些额外的事情按摩以围绕不同的概念组织数据以适应我们的系统。

    我的常见问题是:

    • time:由于不同的时期而加/减,可能必须处理闰秒(例如,postgres 总是假设 12 月 31 日是相同的秒数,所以我必须减去几秒钟,以便显示时间准确)
    • 光谱范围:纳米与埃,波长与频率与电子伏特
    • 坐标系:(这个真的很烂,因为在一个参考系中静止的东西可能在另一个参考系中移动)
    • 2

相关问题

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    您如何显示在 Oracle 数据库上执行的 SQL?

    • 2 个回答
  • Marko Smith

    如何选择每组的第一行?

    • 6 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    我可以查看在 SQL Server 数据库上运行的历史查询吗?

    • 6 个回答
  • Marko Smith

    如何在 PostgreSQL 中使用 currval() 来获取最后插入的 id?

    • 10 个回答
  • Marko Smith

    如何在 Mac OS X 上运行 psql?

    • 11 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Marko Smith

    将数组参数传递给存储过程

    • 12 个回答
  • Martin Hope
    Manuel Leduc PostgreSQL 多列唯一约束和 NULL 值 2011-12-28 01:10:21 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Stuart Blackler 什么时候应该将主键声明为非聚集的? 2011-11-11 13:31:59 +0800 CST
  • Martin Hope
    pedrosanta 使用 psql 列出数据库权限 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    BrunoLM Guid vs INT - 哪个更好作为主键? 2011-01-05 23:46:34 +0800 CST
  • Martin Hope
    bernd_k 什么时候应该使用唯一约束而不是唯一索引? 2011-01-05 02:32:27 +0800 CST
  • Martin Hope
    Patrick 如何优化大型数据库的 mysqldump? 2011-01-04 13:13:48 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve