Sql server SQL Server传递表Netezza

Sql server SQL Server传递表Netezza,sql-server,netezza,linked-server,Sql Server,Netezza,Linked Server,只是想知道要实现的最佳实践是什么: 我们有一个在SQL Server中运行的存储过程,需要使用要存储在Netezza上的巨大事实表进行一些计算 流程: 存储过程将在SQL Server上创建临时表 这些将被发送到Netezza,与事实表连接 将在Netezza中进行计算 结果将传回SQL Server 将临时表从SQL Server传递到Netezza的方法有哪些? 谢谢我所知道的进出Netezza的唯一方法是通过平面文件,或者使用ODBC驱动程序直接与Netezza一起工作,在memerory

只是想知道要实现的最佳实践是什么:

我们有一个在SQL Server中运行的存储过程,需要使用要存储在Netezza上的巨大事实表进行一些计算

流程:

  • 存储过程将在SQL Server上创建临时表
  • 这些将被发送到Netezza,与事实表连接
  • 将在Netezza中进行计算
  • 结果将传回SQL Server
  • 将临时表从SQL Server传递到Netezza的方法有哪些?


    谢谢

    我所知道的进出Netezza的唯一方法是通过平面文件,或者使用ODBC驱动程序直接与Netezza一起工作,在memerory中保存记录集,并通过ODBC连接写入Netezza

    无论您是在Windows还是Unix上,Netezza都提供了可用于连接Netezza的客户端工具。仅供参考,不要在网上找它们。您必须直接从Netezza或管理该关系的人员处获取这些信息

    我建议研究如何使用SSIS中的ODBC驱动器为您完成这项工作。我不是SSIS的专业人士,所以我不能说我知道如何做到这一点,但我会先研究一下

    如果我必须完成任务,我会用C#写一些东西来执行以下任务

    • 从sql server创建平面文件
    • 连接到Netezza创建链接到平面文件的外部表
    • 调用Netezza中的过程来完成这项工作,并生成要在临时表中导出的数据
    • 将新数据导出到平面文件,并将其重新导入sql server
    现在我考虑一下,你也可以尝试下面的方法,但是它没有经过测试。我想知道您是否可以在sql server中创建一个链接表,在Netezza中创建一个使用相同平面文件的外部表。打开文件锁,如果可以,您可以从sql server创建到netezza的准链接

    了解有关netezza中外部表的更多信息。请参阅第5章中的doc 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;
    
    
    }
    
    OdbcDataReader GetReaderForCommand(字符串strCmd,字符串dbname)
    {
    var conn=新的OdbcConnection();
    conn.ConnectionString=“Driver={NetezzaSQL};servername=;port=5480;database=“+dbname+”;username=;password=;”;
    OdbcDataReader rdr=null;
    conn.Open();
    System.Data.Odbc.OdbcCommand cmd=新的System.Data.Odbc.OdbcCommand(strCmd,conn);
    rdr=cmd.ExecuteReader();
    返回rdr;
    }
    
    最后,这里有几个链接,我将跟进

    enzeecommunity.com-搜索和提问的用户群

    与Netezza一起使用的免费管理工作室

    -