2013-06-26 64 views
5

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

我已经安装了亚马逊提供的PostgreSQL驱动程序,并且已经成功地在Windows ODBC驱动程序管理员中测试了一个连接,但是当我选择保存的DSN并尝试拉出一个表格列表时,仍然遇到了不可思议的错误消息。

回答

3

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(aka Kettle)和Talend Open Studio,这是一个类似的故事。这在Talend的情况下特别恼人,因为他们有Redshift组件,但他们实际上试图使用INSERT INTO进行加载。即使亚马逊自己的ETL工具Data Pipeline也不支持Redshift作为“节点”。

0

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

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

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