【问题标题】:ETL in oracle using straight sqloracle中的ETL使用直接sql
【发布时间】:2012-11-30 21:47:18
【问题描述】:

有人可以解释一下如何将数据从一个 oracle 数据库加载到另一个数据库,或者在同一个数据库中使用直接 sql 以有效的方式加载不同模式下的表。这是简单的 ETL 工作,我以前从未使用过 ETL 脚本。感谢您的帮助

最好的问候..

【问题讨论】:

  • 你想用什么样的ETL工具?其中有很多,其中一个有趣的是使用 Java RFX 引擎以及 XML 和 Shell 脚本的混合。
  • ETL 工具并不总是答案。简单的 SQL,在 PL/SQL 包装器和 DBMS_Scheduler 中作为控制机制,如果操作正确,比 ETL 工具更快、更可靠。
  • @Annjawn 虽然我熟悉 ODI 并且知道如何使用它,但我想直接使用 SQL 来完成这项任务。
  • @David 感谢您的回复。您能否提供任何有用的链接来帮助我完成这项任务。
  • @user1751356 阅读了当前版本的 Oracle 文档,尤其是数据仓库指南。它描述了您需要的所有优化和技术。以docs.oracle.com/cd/E11882_01/server.112/e25554/toc.htmdocs.oracle.com/cd/B19306_01/server.102/b14223/toc.htm 为例

标签: sql database oracle etl


【解决方案1】:

如果您可以建立一个dblink,那么它很简单 - 只需 INSERT INTO....SELECT...

如果您没有 dblink,那么仅使用 SQL 是不可能的 - 因为 SQL 仅在数据库会话中运行。因此,您需要某种脚本来在源数据库上启动会话并在其上运行查询,然后在目标数据库上启动会话并在那里运行查询。至于最好的方法是什么……嗯,有太多的选择无法给出一个明智的答案——尤其是当我们甚至不知道你使用的是什么操作系统时。

【讨论】:

  • 感谢您的回复。我同意我需要某种脚本才能安排工作。我没有编写脚本的经验。您能否提供一些有用的链接来帮助我入门,并且我认为操作系统是 RHEL。再次感谢您的宝贵时间。
【解决方案2】:

数据泵是将大量数据从一个数据库移动到另一个数据库的好选择,表空间传输也是如此。跨 dblink 的 SQL 被限制为在链接本身上串行运行,因此如果您需要高性能,则需要多个会话运行插入/选择

【讨论】:

    猜你喜欢
    • 2014-07-22
    • 1970-01-01
    • 2014-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-07
    相关资源
    最近更新 更多