2013-06-26 20 views
5

Czy ktoś z powodzeniem używa Amazon Redshift jako źródłowego lub docelowego komponentu ODBC w SQL Server Data Tools 2012?Redshift z SSIS/SSDT

Zainstalowałem sterowniki PostgreSQL dostarczone przez Amazon i pomyślnie przetestowałem połączenie w administratorze sterownika ODBC systemu Windows, ale nadal próbuję wyświetlać komunikaty o błędach, kiedy wybieram zapisaną DSN i próbuję pobrać listing tabeli.

Odpowiedz

3

Redshift oparty jest na dość starej wersji PostgreSQL (8.0). Postgres zmienił się całkiem sporo od tego czasu, a narzędzia PostgreS zmieniły się wraz z nim. Podczas pobierania jakichkolwiek narzędzi do użycia z Redshift prawdopodobnie będziesz musiał użyć poprzednich wersji sprzed kilku lat.

Problem z tabelą jest szczególnie irytujący, ale muszę jeszcze znaleźć wersję psql, która może poprawnie wyświetlić tabele Redshift. Alternatywnie możesz użyć tabel INFORMATION_SCHEMA, aby znaleźć tego rodzaju informacje, i moim zdaniem właśnie to powinno być robione SSIS/SSDT domyślnie.

Nie oczekuję, że SSIS będzie w stanie niezawodnie ładować dane do Redshift, tj. Utworzyć cel Redshift. Dzieje się tak dlatego, że Redshift nie obsługuje jako sposobu ładowania danych. Jeśli użyjesz INSERT INTO, będziesz mógł załadować tylko ~ 10 wierszy na sekundę. Redshift może tylko ładować dane szybko z S3 lub DynamoDB za pomocą polecenia COPY.

To podobna historia dla wszystkich innych narzędzi ETL, które wypróbowałem, w szczególności narzędzia Open Source Pentaho PDI (aka Kettle) i Talend Open Studio. Jest to szczególnie denerwujące w przypadku Talenda, ponieważ mają one komponenty Redshift, ale w rzeczywistości próbują ładować się za pomocą INSERT INTO. Nawet własne narzędzie ETL do przesyłania danych ETL nie obsługuje jeszcze Redshift jako "węzła".

0

Udało mi się. Spróbuj zainstalować zarówno wersje 32-bitowe, jak i 64-bitowe sterowników PostgreSQL ODBC.

Ponadto w oknie Właściwości projektu w obszarze "Właściwości konfiguracji"> "Debugowanie" ustaw "Run64BitRuntime" na False.

Możesz również spróbować określić ciąg połączenia w Menedżerze połączeń. Na przykład: Driver = {PostgreSQL ANSI}; serwer = redshiftdb.d113klxjd4ac.us-west-2.redshift.amazonaws.com; uid =; database =; port = 5432

Powiązane problemy