【问题标题】:SQL Server passing tables NetezzaSQL Server 传递表 Netezza
【发布时间】:2012-04-04 06:35:44
【问题描述】:

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

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

流程:

  1. 存储过程将在 SQL Server 上创建临时表
  2. 这些将被发送到 Netezza 以加入事实表
  3. 将在 Netezza 中进行计算
  4. 结果将传回 SQL Server

将临时表从 SQL Server 传递到 Netezza 的方法有哪些?

谢谢

【问题讨论】:

    标签: sql-server netezza linked-server


    【解决方案1】:

    我所知道的将数据输入和输出 Netezza 的唯一方法是通过平面文件,或者使用 ODBC 驱动程序直接与 Netezza 一起工作,并在内存中保存一个记录集并通过 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 章中的文档 Netezza 用户指南。

    Netezza User Guide

    另外,如果您对编码方面感兴趣,下面有一个很好的链接,说明如何通过 c# 连接到 netezza。

    Stack Post

    我最终使用该帖子中的一些内容构建了以下方法来针对 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 -

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-08
      • 2017-03-07
      • 1970-01-01
      • 1970-01-01
      • 2010-12-09
      • 1970-01-01
      相关资源
      最近更新 更多