2013-06-26 15 views
5

Qualcuno ha avuto successo utilizzando Amazon Redshift come componente ODBC di origine o destinazione in SQL Server Data Tools 2012?Redshift con SSIS/SSDT

Ho installato i driver PostgreSQL forniti da Amazon e ho verificato con successo una connessione nell'amministratore dei driver ODBC di Windows, ma continuo a incorrere in messaggi di errore arcano quando scelgo il mio DSN salvato e provo a richiamare un elenco di tabelle.

risposta

3

Redshift si basa su una versione piuttosto vecchia di Postgres (8.0). Postgres è cambiato un po 'da allora e gli strumenti Postgres sono cambiati. Quando si scaricano strumenti da utilizzare con Redshift, probabilmente sarà necessario utilizzare versioni precedenti di diversi anni fa.

Il problema di elencazione della tabella è particolarmente fastidioso ma non ho ancora trovato una versione di psql che possa elencare correttamente le tabelle di Redshift. In alternativa è possibile utilizzare le tabelle INFORMATION_SCHEMA per trovare questo tipo di informazioni e, a mio parere, è ciò che SSIS/SSDT dovrebbe eseguire per impostazione predefinita.

Non mi aspetto che SSIS sia in grado di caricare i dati in Redshift in modo affidabile, ovvero creare una destinazione Redshift. Questo perché Redshift non ha il supporto INSERT INTO come un modo per caricare i dati. Se usi INSERT INTO, potrai caricare solo ~ 10 file al secondo. Redshift può solo caricare rapidamente i dati da S3 o DynamoDB usando il comando COPY.

È una storia simile per tutti gli altri strumenti ETL che ho provato, in particolare gli strumenti open source Pentaho PDI (aka Kettle) e Talend Open Studio. Questo è particolarmente fastidioso nel caso di Talend in quanto hanno componenti Redshift ma in realtà provano a usare INSERT INTO per il caricamento. Anche lo strumento ETL di Amazon Data Pipeline non ha ancora il supporto per Redshift come 'nodo'.

0

Ho avuto successo. Prova ad installare entrambe le versioni a 32 e 64 bit dei driver ODBC PostgreSQL.

Inoltre, nelle proprietà del progetto in "Proprietà di configurazione"> "Debug", impostare "Run64BitRuntime" su False.

Si può anche provare a specificare la stringa di connessione in Connection Manager. Ad esempio: Driver = {PostgreSQL ANSI}; server = redshiftdb.d113klxjd4ac.us-west-2.redshift.amazonaws.com; uid =; database =; port = 5432

Problemi correlati