4

我一直在网上搜索这个问题:

每天将数据和表从 Oracle 的 Hyperion 传输到 SQL Server 2000 的方法有哪些?

我是一家公司的实习生,并试图找出可能的方法来做到这一点。非常感谢任何帮助或指向正确方向

4

5 回答 5

5

这在很大程度上取决于具体情况。这里只是一些可能的解决方案:

DTS

DTS 与 SQL 2000 打包在一起,专为此类任务而设计。如果编写正确,您的 DTS 包可以具有良好的错误处理能力并且可以重新运行/可重用。

SSIS

SSIS实际上是与SQL 2005及以上版本打包在一起的,但你可以将它连接到其他数据库。它基本上是一个更好的 DTS 版本。(从技术上讲,它与 DTS 完全不同,但有很多相同的功能)

链接服务器

从 SQL 2000 起,您应该能够直接连接到您的 Oracle 数据库作为链接服务器。在专业人士专栏中,如果您没有任何其他技术技能(例如 DTS 或 SSIS),这种直接访问可能很容易使用,但要正确进行初始设置可能会很复杂,并且可能存在安全问题/问题。

建立你自己的

根据您使用的其他技术,您可以构建自己的应用程序来执行 ETL(提取/转换/加载,这就是您正在做的事情)。这可能是在 .NET、Java 等中。在 pro 专栏中,您可以使用您熟悉的东西,但这里有一个很大的缺点,因为大多数低级工作类型已经存在于 DTS/ 等工具中SSIS,那么为什么要重新发明轮子呢?

BCP

您可以简单地将 Oracle 中的数据提取为 .csv 文件(或其他格式),然后使用 SQL Server 的批量复制过程将它们重新导入。这可能很快,但没有太多花里胡哨的东西。如果这是一次只有几张桌子的事情,那么这可能是最简单和最快的方法。

第三方应用程序

那里已经编写了大量的 ETL 应用程序(数据导入、数据从站等)。他们通常会提供向导和一键式解决方案(可能不止一键),但它们也会花费一些额外的钱。


编辑:

鉴于您的最新评论,我可能会选择在 SQL 代理中安排为每天运行的 DTS 包。如果出现问题,您可以添加错误处理并让系统发送电子邮件/文本/打电话给某人(或进行积极的案例报告 - 即,在成功时发送消息,以便有人知道如果他们没有出现问题每天收到一条消息。

于 2011-09-20T19:57:21.063 回答
1

在我们公司,我们使用 ADO.Net 来完成相同的任务。我们为 Oracle 创建了一个源,获取所有数据,然后在 SQL Server 中创建它

于 2011-09-20T19:24:43.563 回答
1

您可以编写 DTS 包来复制数据,并安排它们在 Sql Server 代理中运行。

有关 DTS 包的信息,请参阅DTS 概述

下面是创建 DTS 包的教程:使用 SQL Server 2000 创建 DTS 包

于 2011-09-20T19:26:58.017 回答
1

Oracle Hyperion 是一套产品,很大程度上与 Oracle 的数据库产品无关。我希望您指的是 Hyperion Financial Management 或 Hyperion Strategic Finance 等产品。这些产品具有可使用 COM Interop 或 Web 服务使用的 API。可以通过分析数据库元数据,创建维度树,然后使用该信息创建代表数据库中的子立方体的选择,从内部多维数据库中提取数据;允许您获取或设置单元格数据。我不知道您对多维数据库的了解程度如何,但除非知识丰富,否则您可能会发现这项任务非常困难。您还需要掌握特定产品 API。

我的公司专门从事这类活动,我们有这类活动的组件。如果您需要进一步的建议,请在我的博客上给我留言。

danielvaughan.org

干杯,丹尼尔

于 2011-09-21T16:23:05.877 回答
-1

我对 Hyperion 一无所知,但 SQL Server 2000 非常旧,如果版本比 2000 年更新,可能没有驱动程序能够从 Hyperion 中提取数据。您可能需要查看是否有一种方法可以从 Hyperion 推送数据,而不是将其拉入 SQL Server 2000。我过去做过的一种方法是从最初拥有数据的数据库中创建管道分隔的文本文件并将其放入处理中目录。我知道 DTS 将处理一个以竖线分隔的文本文件。因此,如果您找不到驱动程序来直接处理此数据,请考虑是否可以将其推送到文件中然后进行处理。您必须在 Hyperion 上创建文件的作业和 DTS 包作业之间安排时间间隔。但如果你每天只做一次,那可能不是问题。

于 2011-09-20T20:46:55.653 回答