tl; dr: Chúng khác nhau rõ rệt về nhiều mặt và tôi không thể nghĩ Redshift sẽ thay thế Hadoop.
-Chức năng
Bạn không thể chạy bất cứ thứ gì ngoài SQL trên Redshift. Có lẽ quan trọng nhất, bạn không thể chạy bất kỳ loại chức năng tùy chỉnh nào trên Redshift. Trong Hadoop bạn có thể, sử dụng nhiều ngôn ngữ (Java, Python, Ruby .. bạn đặt tên cho nó). Ví dụ, NLP trong Hadoop rất dễ, trong khi điều đó ít nhiều không thể xảy ra trong Redshift. Tức là có rất nhiều thứ bạn có thể làm trong Hadoop nhưng không phải trên Redshift. Đây có lẽ là sự khác biệt quan trọng nhất.
Thực
thi truy vấn hồ sơ -Performance trên Redshift trong hầu hết các trường hợp hiệu quả hơn đáng kể so với trên Hadoop. Tuy nhiên, hiệu quả này đến từ việc lập chỉ mục được thực hiện khi dữ liệu được tải vào Redshift (Tôi đang sử dụng thuật ngữ indexing
rất lỏng lẻo ở đây). Do đó, thật tuyệt nếu bạn tải dữ liệu của mình một lần và thực hiện nhiều truy vấn, nhưng nếu bạn chỉ muốn thực hiện một truy vấn, thì thực tế bạn có thể mất hiệu suất tổng thể.
-Cost Hồ sơ
Giải pháp nào thắng chi phí phụ thuộc vào tình huống (như hiệu suất), nhưng bạn có thể cần khá nhiều truy vấn để làm cho nó rẻ hơn Hadoop (cụ thể hơn là Bản đồ đàn hồi của Amazon). Ví dụ: nếu bạn đang thực hiện OLAP, rất có thể Redshift sẽ rẻ hơn. Nếu bạn thực hiện các đợt ETL hàng ngày, Hadoop có nhiều khả năng ra giá rẻ hơn.
Phải nói rằng, chúng tôi đã thay thế một phần ETL của chúng tôi đã được thực hiện trong Hive to Redshift, và đó là một trải nghiệm khá tuyệt vời; Chủ yếu là để dễ phát triển. Công cụ truy vấn của Redshift dựa trên PostgreSQL và rất chín chắn, so với Hive. Các đặc tính ACID của nó giúp dễ dàng suy luận về nó hơn và thời gian phản hồi nhanh hơn cho phép thực hiện nhiều thử nghiệm hơn. Đó là một công cụ tuyệt vời để có, nhưng nó sẽ không thay thế Hadoop.
EDIT : Đối với độ phức tạp của thiết lập, tôi thậm chí sẽ nói rằng nó dễ dàng hơn với Hadoop nếu bạn sử dụng EMR của AWS. Các công cụ của họ rất thành thục đến nỗi thật dễ dàng để công việc Hadoop của bạn hoạt động. Các công cụ và cơ chế xung quanh hoạt động của Redshift chưa trưởng thành. Ví dụ, Redshift không thể xử lý tải nhỏ giọt và do đó bạn phải tìm ra thứ gì đó biến nó thành tải theo đợt, điều này có thể gây thêm một số phức tạp cho ETL của bạn.