2013-06-26 5 views
5

Hat es jemand geschafft, Amazon Redshift als Quell- oder Ziel-ODBC-Komponente in SQL Server Data Tools 2012 zu verwenden?Redshift mit SSIS/SSDT

Ich habe die von Amazon bereitgestellten PostgreSQL-Treiber installiert und eine Verbindung im Windows-ODBC-Treiberadministrator erfolgreich getestet, stolpere aber weiterhin über arkane Fehlermeldungen, wenn ich meine gespeicherte DSN auswähle und versuche, eine Tabelle aufzulisten.

Antwort

3

Redshift basiert auf einer ziemlich alten Version von Postgres (8.0). Postgres hat sich seitdem sehr verändert und die Postgres-Tools haben sich verändert. Beim Herunterladen von Tools, die mit Redshift verwendet werden, müssen Sie wahrscheinlich frühere Versionen von mehreren Jahren verwenden.

Die Tabelle Auflistung Problem ist besonders ärgerlich, aber ich habe noch eine Version von psql finden, die Redshift-Tabellen richtig auflisten kann. Als Alternative können Sie die INFORMATION_SCHEMA Tabellen verwenden, um diese Art von Informationen zu finden, und meiner Meinung nach sollte das SSIS/SSDT standardmäßig tun.

Ich würde nicht erwarten, dass SSIS Daten zuverlässig in Redshift laden kann, d. H. Ein Redshift-Ziel erstellen. Dies ist, weil Redshift nicht wirklich Unterstützung INSERT INTO als eine Möglichkeit, Daten zu laden. Wenn Sie INSERT INTO verwenden, können Sie nur ~ 10 Zeilen pro Sekunde laden. Redshift kann Daten nur schnell aus S3 oder DynamoDB mit dem Befehl COPY laden.

Es ist eine ähnliche Geschichte für alle anderen ETL-Tools, die ich ausprobiert habe, insbesondere die Open-Source-Tools Pentaho PDI (alias Kettle) und Talend Open Studio. Das ist in Talends Fall besonders ärgerlich, da sie Redshift-Komponenten haben, aber sie versuchen tatsächlich INSERT INTO zum Laden zu verwenden. Sogar Amazons eigenes ETL-Tool Data Pipeline hat Rotshift noch nicht als 'Knoten' unterstützt.

0

Ich war erfolgreich. Versuchen Sie, sowohl die 32-Bit- als auch die 64-Bit-Version der PostgreSQL-ODBC-Treiber zu installieren.

Legen Sie in den Projekteigenschaften unter 'Konfigurationseigenschaften'> 'Debugging' 'Run64BitRuntime' auf False fest.

Sie können auch versuchen, die Verbindungszeichenfolge im Verbindungsmanager anzugeben. Zum Beispiel: Treiber = {PostgreSQL ANSI}; server = redshiftdb.d113klxjd4ac.us-west-2.redshift.amazonaws.com; uid =; datenbank =; port = 5432