2013-06-26 31 views
5

Có ai đã thành công khi sử dụng Amazon Redshift làm thành phần ODBC nguồn hoặc đích trong Công cụ dữ liệu SQL Server 2012 không?Redshift với SSIS/SSDT

Tôi đã cài đặt trình điều khiển PostgreSQL do Amazon cung cấp và đã thử nghiệm thành công kết nối trong trình quản lý trình điều khiển ODBC của Windows nhưng tiếp tục chạy vào thông báo lỗi phức tạp khi tôi chọn DSN đã lưu của mình và thử kéo bảng liệt kê.

Trả lời

3

Redshift dựa trên phiên bản cũ của Postgres (8.0). Postgres đã thay đổi một chút kể từ đó và các công cụ Postgres đã thay đổi với nó. Khi tải xuống bất kỳ công cụ nào để sử dụng với Redshift, bạn có thể sẽ cần sử dụng các phiên bản trước đó từ vài năm trước.

Vấn đề liệt kê bảng đặc biệt khó chịu nhưng tôi chưa tìm thấy phiên bản psql có thể liệt kê danh sách các bảng Redshift đúng cách. Thay vào đó, bạn có thể sử dụng các bảng INFORMATION_SCHEMA để tìm loại thông tin này và theo ý kiến ​​của tôi, đây là những gì SSIS/SSDT sẽ hoạt động theo mặc định.

Tôi không mong đợi SSIS có thể tải dữ liệu vào Redshift một cách đáng tin cậy, tức là tạo một điểm đến Chuyển hướng. Điều này là do Redshift không thực sự hỗ trợ INSERT INTO làm cách tải dữ liệu. Nếu bạn sử dụng INSERT INTO, bạn sẽ chỉ có thể tải ~ 10 hàng mỗi giây. Redshift chỉ có thể tải dữ liệu nhanh chóng từ S3 hoặc DynamoDB bằng cách sử dụng lệnh COPY.

Đó là một câu chuyện tương tự cho tất cả các công cụ ETL khác mà tôi đã thử, đáng chú ý là các công cụ nguồn mở Pentaho PDI (aka Kettle) và Talend Open Studio. Điều này đặc biệt gây phiền nhiễu trong trường hợp của Talend vì chúng có các thành phần Redshift nhưng chúng thực sự cố gắng sử dụng INSERT INTO để tải. Ngay cả công cụ ETL riêng của Amazon, Data Pipeline vẫn chưa hỗ trợ cho Redshift là 'nút'.

0

Tôi đã thành công. Thử cài đặt cả phiên bản 32 bit và 64 bit của trình điều khiển ODBC PostgreSQL.

Ngoài ra, trong Thuộc tính dự án của bạn trong 'Thuộc tính cấu hình'> 'Gỡ lỗi', hãy đặt 'Run64BitRuntime' thành Sai.

Bạn cũng có thể thử chỉ định chuỗi kết nối trong Trình quản lý kết nối. Ví dụ: Trình điều khiển = {PostgreSQL ANSI}; server = redshiftdb.d113klxjd4ac.us-west-2.redshift.amazonaws.com; uid =; database =; port = 5432

Các vấn đề liên quan