只是想知道什么是最佳实践:
我们有在SQL Server中运行的存储过程,需要使用一个巨大的事实表进行一些计算,以存储在Netezza上。
流程:
有哪些方法可以将临时表从SQL Server传递到Netezza?
由于
答案 0 :(得分:1)
我知道将数据输入和输出Netezza的唯一方法是通过平面文件,或使用ODBC驱动程序直接使用Netezza并在记忆中保存记录集并通过odbc连接写入Netezza。 / p>
无论您使用的是Windows还是Unix,Netezza都提供了可用于连接Netezza的客户端工具。 Fyi,不要在互联网上寻找它们。您必须直接从Netezza或管理该关系的人那里获取它们。
我建议我研究如何在SSIS中使用ODBC驱动器为您完成工作。我不是SSIS的专业人员,所以我不能说我会知道怎么做,但我会先调查一下。
如果我必须完成任务,我会用C#写一些东西来执行以下任务。
现在我考虑一下你也可以尝试以下方法,但是它未经测试。我想知道你是否可以在sql server中创建一个链表,在Netezza中创建一个使用相同平面文件的外表。如果可以,可以使用文件锁,可以从sql server创建到netezza的准链接。
要了解有关netezza中外部表的更多信息。请查看第5章中的文档Netezza用户指南。
此外,如果您对编码方面感兴趣,下面有一个非常好的链接,如何通过c#连接到netezza。
我最终使用了一些帖子来构建下面的方法来执行针对Netezza的命令。
OdbcDataReader GetReaderForCommand(string strCmd, string dbname)
{
var conn = new OdbcConnection();
conn.ConnectionString = "Driver={NetezzaSQL};servername=<servername>;port=5480;database="+dbname+"; username=<username>;password=<pwd>;";
OdbcDataReader rdr = null;
conn.Open();
System.Data.Odbc.OdbcCommand cmd = new System.Data.Odbc.OdbcCommand(strCmd, conn);
rdr = cmd.ExecuteReader();
return rdr;
}
最后,这里有几个我会跟进的链接。
enzeecommunity.com - 用户群搜索和提问。
与Netezza一起使用的免费管理工作室。
http://www.aginity.com/ProductivityTools/WorkbenchOverview.aspx -