是否有人成功使用 Amazon Redshift 作为 SQL Server Data Tools 2012 中的源或目标 ODBC 组件?
我已经安装了 Amazon 提供的 PostgreSQL 驱动程序,并在 Windows ODBC 驱动程序管理员中成功测试了连接,但是当我选择我保存的 DSN 并尝试提取表列表时,我仍然遇到神秘的错误消息。
是否有人成功使用 Amazon Redshift 作为 SQL Server Data Tools 2012 中的源或目标 ODBC 组件?
我已经安装了 Amazon 提供的 PostgreSQL 驱动程序,并在 Windows ODBC 驱动程序管理员中成功测试了连接,但是当我选择我保存的 DSN 并尝试提取表列表时,我仍然遇到神秘的错误消息。
Redshift 基于相当老的 Postgres (8.0) 版本。从那时起,Postgres 发生了很大变化,Postgres 工具也随之发生了变化。在下载任何与 Redshift 一起使用的工具时,您可能需要使用几年前的旧版本。
表列表问题特别烦人,但我还没有找到psql
可以正确列出 Redshift 表的版本。作为替代方案,您可以使用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 作为“节点”。
我已经成功了。尝试安装 32 位和 64 位版本的 PostgreSQL ODBC 驱动程序。
此外,在“配置属性”>“调试”下的项目属性中,将“Run64BitRuntime”设置为 False。
您也可以尝试在连接管理器中指定连接字符串。例如:驱动程序={PostgreSQL ANSI};服务器=redshiftdb.d113klxjd4ac.us-west-2.redshift.amazonaws.com;uid=;数据库=;端口=5432