我一直在网上搜索这个问题:
每天将数据和表从Oracle Hyperion传输到SQL Server 2000的方法有哪些?
我是一家公司的实习生,正在努力想办法做到这一点。任何帮助或指向正确的方向都是非常感谢的。
发布于 2011-09-20 19:57:21
这在很大程度上取决于具体细节。这里只有几个可能的解决方案:
DTS
DTS是与SQL2000打包在一起的,是为这类任务而设计的。如果编写正确,您的DTS包可以具有良好的错误处理能力,并且可以重新运行/重用。
SSIS
SSIS实际上与SQL2005及更高版本打包在一起,但您可以将其连接到其他数据库。它基本上是DTS的一个更好的版本。(从技术上讲,它与DTS完全不同,但具有许多相同的功能)
链接服务器
从SQL 2000中,您应该能够作为链接服务器直接连接到Oracle数据库。在pros专栏中,如果您没有任何其他技术技能(如DTS或SSIS ),这种直接访问可能很容易使用,但要获得正确的初始设置可能很复杂,并且可能存在安全问题/问题。
构建您自己的
根据您使用的其他技术,您可以构建自己的应用程序来执行ETL (提取/转换/加载,这就是您正在做的事情)。在pros专栏中,你可以使用一些你熟悉的东西,但这里有一个很大的缺点,因为大多数低级类型的工作已经存在于像DTS/SSIS这样的工具中,所以为什么要重新发明轮子呢?
BCP
您可以简单地以.csv文件(或其他一些格式)的形式从Oracle提取数据,然后使用SQL Server的批量复制过程将它们重新导入。这可能会很快,但没有多少花哨的东西可以与之配套。但是,如果这是只有几个表的一次性操作,那么这可能是最简单、最快的方法。
第三方应用程序
已经有很多ETL应用程序(Data Import、Data Slave等)已经写出来了。他们通常会提供向导和一键解决方案(可能不止一次点击),但它们也会花费一些额外的钱。
编辑:
考虑到您的最新评论,我可能会选择SQL代理中计划每天运行的DTS包。你可以添加错误处理功能,如果出现问题,系统会发邮件/发短信/打电话给别人(或者做积极的案例报告--例如。成功时发送一条消息,让别人知道如果他们每天没有收到消息,就会有问题。
发布于 2011-09-20 19:24:44
在我们公司,我们使用ADO.Net来完成同样的任务。我们创建了一个Oracle源,获取所有数据,然后在SQL server中创建它。
发布于 2011-09-20 19:26:58
您可以编写DTS包来复制数据,并安排它们在Sql Server代理中运行。
有关DTS Overview包的信息,请参阅DTS。
这里有一个关于创建DTS包的教程:Creating DTS Packages With SQL Server 2000
https://stackoverflow.com/questions/7490576
复制相似问题