【问题标题】:Redshift with SSIS/SSDT使用 SSIS/SSDT 进行红移
【发布时间】:2013-06-26 14:57:00
【问题描述】:

是否有人成功使用 Amazon Redshift 作为 SQL Server Data Tools 2012 中的源或目标 ODBC 组件?

我已经安装了 Amazon 提供的 PostgreSQL 驱动程序,并在 Windows ODBC 驱动程序管理器中成功测试了连接,但是当我选择我保存的 DSN 并尝试提取表列表时,仍然遇到神秘的错误消息。

【问题讨论】:

    标签: sql-server amazon-web-services amazon-redshift


    【解决方案1】:

    Redshift 基于相当老的 Postgres (8.0) 版本。从那时起,Postgres 发生了很大变化,Postgres 工具也随之发生了变化。在下载任何与 Redshift 一起使用的工具时,您可能需要使用几年前的旧版本。

    表列出问题特别烦人,但我还没有找到可以正确列出 Redshift 表的psql 版本。作为替代方案,您可以使用INFORMATION_SCHEMA 表来查找此类信息,在我看来,这是 SSIS/SSDT 默认应该做的。

    我不希望 SSIS 能够可靠地将数据加载到 Redshift,即创建一个 Redshift 目标。这是因为 Redshift 并不真正支持 INSERT INTO 作为一种加载数据的方式。如果您使用INSERT INTO,您将只能每秒加载约 10 行。 Redshift 只能使用COPY 命令从 S3 或 DynamoDB 快速加载数据。

    我尝试过的所有其他 ETL 工具都是类似的情况,尤其是开源工具 Pentaho PDI(又名 Kettle)和 Talend Open Studio。这在 Talend 的案例中尤其烦人,因为他们有 Redshift 组件,但他们实际上尝试使用 INSERT INTO 进行加载。即使是亚马逊自己的 ETL 工具 Data Pipeline 也不支持将 Redshift 作为“节点”。

    【讨论】:

    • 这是旧消息,但仅用于搜索谁的信息 - 即使在 2017 年(以及我记得的 2016 年)Talend 已经使用 COPY 从 S3 加载 Redshift
    【解决方案2】:

    我已经成功了。尝试安装 32 位和 64 位版本的 PostgreSQL ODBC 驱动程序。

    另外,在“配置属性”>“调试”下的项目属性中,将“Run64BitRuntime”设置为 False。

    您也可以尝试在连接管理器中指定连接字符串。例如: 驱动程序={PostgreSQL ANSI}; server=redshiftdb.d113klxjd4ac.us-west-2.redshift.amazonaws.com;uid=;database=;port=5432

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多