2013-07-17 58 views
5

Vì vậy, hạn chế của tôi hiểu về Redshift đây là kế hoạch của tôi cho vấn đề của tôi ...Làm thế nào để sử dụng đầu ra của truy vấn RedShift làm đầu vào của một công việc EMR?

Tôi muốn lấy kết quả truy vấn và sử dụng chúng làm đầu vào cho công việc EMR. Cách tốt nhất để đi về chương trình này là gì.

Hiện tại công việc EMR của tôi lấy một tệp phẳng từ S3 làm đầu vào và tôi sử dụng Amazon Java SDK, để thiết lập công việc này và mọi thứ.

Tôi có nên viết đầu ra của truy vấn RedShift vào S3, và trỏ công việc EMR của tôi ở đó, sau đó xóa tệp sau khi công việc EMR đã hoàn thành?

Hoặc RedShift và AWS SKD cung cấp một cách tháo vát hơn để trực tiếp truy vấn đường ống từ RedShift sang EMR, cắt ra bước S3?

Cảm ơn

Gần đây đã nói với các memebers của Nhóm Redshift Amazon, họ cho biết giải pháp cho điều này là trong công trình.

Trả lời

4

Điều này khá dễ dàng - không cần Sqoop. Thêm một bước Cascading Lingual ở phía trước của công việc của bạn mà thực hiện một lệnh chuyển đỏ UNLOAD để S3:

UNLOAD ('select_statement') 
TO 's3://object_path_prefix' 
[ WITH ] CREDENTIALS [AS] 'aws_access_credentials' 
[ option [ ... ] ] 

Sau đó, bạn có thể xử lý việc xuất khẩu trực tiếp trên S3, hoặc thêm một bước S3DistCp để đưa dữ liệu lên HDFS đầu tiên.

Điều này sẽ có hiệu suất cao hơn nhiều so với thêm Sqoop và đơn giản hơn rất nhiều để duy trì.

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