我一直在网上搜索这个问题:
每天从Oracle的Hyperion到SQL Server 2000传输数据和表的方法是什么?
我是一家公司的实习生,并试图找出可能的方法来做到这一点。非常感谢任何帮助或指向正确的方向
答案 0 :(得分:5)
这将取决于具体细节。以下是一些可能的解决方案:
<强> DTS 强>
DTS与SQL 2000打包在一起,是为这种任务而设计的。如果写得正确,您的DTS包可以具有良好的错误处理能力并可重新运行/可重复使用。
<强> SSIS 强>
SSIS实际上与SQL 2005及更高版本打包在一起,但您可以将其连接到其他数据库。它基本上是DTS的更好版本。 (从技术上讲,它与DTS完全不同,但具有许多相同的功能)
关联服务器
从SQL 2000,您应该能够作为链接服务器直接连接到Oracle数据库。在专栏中,如果您没有任何其他技术技能(如DTS或SSIS),这种直接访问可以很容易地使用,但是初始设置正确并且可能存在安全问题可能很复杂/问题。
自己建造
根据您使用的其他技术,您可以构建自己的应用程序来执行ETL(提取/转换/加载,这就是您正在做的事情)。这可能是在.NET,Java等中。在专栏中你可以使用你熟悉的东西,但这里有一个很大的缺点,大多数低级工作已经在DTS /等工具中出现了SSIS,为什么要重新发明轮子?
<强> BCP 强>
您只需将数据从Oracle中提取为.csv文件(或其他某种格式),然后使用SQL Server的批量复制过程将其导入。这可能很快,但没有太多的花里胡哨的东西。如果这是一次只有几张桌子的东西,那么这可能是最简单,最快捷的方式。
第三方应用
已经写出了大量的ETL应用程序(数据导入,数据从属等)。他们通常会提供向导和一键式解决方案(可能只需点击几下),但它们也会花费额外的钱。
修改强>
鉴于您的最新评论,我可能会使用在SQL Agent中安排的DTS包每天运行。如果出现问题,您可以添加错误处理并让系统发送电子邮件/文本/致电某人(或者进行积极的案例报告 - 即在成功时发送消息,以便有人知道如果他们有问题不要每天收到一条消息。
答案 1 :(得分:1)
在我们公司,我们使用ADO.Net执行相同的任务。 我们为Oracle创建了一个源,获取所有数据,然后在SQL server中创建它
答案 2 :(得分:1)
您可以编写DTS包来复制数据,并安排它们在Sql Server Agent中运行。
有关DTS包的信息,请参阅DTS Overview。
以下是有关创建DTS包的教程:Creating DTS Packages With SQL Server 2000
答案 3 :(得分:1)
Oracle Hyperion是一套产品,与Oracle的数据库产品基本无关。我希望您指的是Hyperion Financial Management或Hyperion Strategic Finance等产品。这些产品具有可以使用COM Interop或Web服务使用的API。可以通过分析数据库元数据,创建维度树,然后使用信息创建选择来从内部多维数据库中提取数据,这些选择表示数据库中的子多维数据集;允许您获取或设置单元格数据。 我不知道您对多维数据库的知识水平是多少,但除非它很大,否则您可能会发现这项任务非常困难。您还需要了解特定的产品API。
我公司专门从事这类活动,我们有这类活动的组件。如果您需要进一步的建议,请在我的博客上留言。
danielvaughan.org
干杯, 丹尼尔
答案 4 :(得分:-1)
我对Hyperion一无所知,但SQL Server 2000已经很老了,可能没有驱动程序可以从Hyperion中提取数据,如果它的版本比2000年更新。你可能需要看看看看是否有办法从Hyperion推送数据而不是将其拉入SQL Server 2000.我这样做的一种方法是过去是从数据库中创建管道分隔的文本文件,该文件可以是orginally有数据并且可以使用它在处理目录中。我知道DTS将处理一个以管道分隔的文本文件。因此,如果您无法找到直接处理此数据的驱动程序,请考虑是否可以将其推送到文件然后进行处理。您必须在创建文件的Hyperion上的作业和DTS包作业之间安排时间间隔。但如果你每天只做一次,那可能不是一个问题。