tl; dr:พวกเขามีความแตกต่างอย่างชัดเจนในหลาย ๆ ด้านและฉันไม่คิดว่า Redshift จะมาแทนที่ Hadoop
ฟังก์ชั่น
คุณไม่สามารถเรียกใช้สิ่งอื่นนอกเหนือจาก SQL ใน Redshift บางทีที่สำคัญที่สุดคือคุณไม่สามารถเรียกใช้ฟังก์ชั่นที่กำหนดเองใด ๆ บน Redshift ใน Hadoop คุณสามารถทำได้โดยใช้หลายภาษา (Java, Python, Ruby .. คุณตั้งชื่อมัน) ตัวอย่างเช่น NLP ใน Hadoop นั้นง่ายในขณะที่ Redshift ไม่มากก็น้อย คือมีหลายสิ่งที่คุณสามารถทำได้ใน Hadoop แต่ไม่ใช่ใน Redshift นี่อาจเป็นความแตกต่างที่สำคัญที่สุด
- ประสิทธิภาพการทำงานโปรไฟล์
แบบสอบถามใน Redshift เป็นกรณีส่วนใหญ่มีประสิทธิภาพมากขึ้นกว่าใน Hadoop อย่างไรก็ตามประสิทธิภาพนี้มาจากการทำดัชนีที่ทำเมื่อข้อมูลถูกโหลดลงใน Redshift (ฉันใช้คำindexing
ที่หลวมมากที่นี่) ดังนั้นจึงเป็นการดีถ้าคุณโหลดข้อมูลของคุณหนึ่งครั้งและดำเนินการหลายแบบสอบถาม แต่ถ้าคุณต้องการดำเนินการแบบสอบถามเดียวเท่านั้นคุณอาจสูญเสียประสิทธิภาพโดยรวม
-Cost Profile
ค่าใช้จ่ายโซลูชันใดที่ชนะในราคาขึ้นอยู่กับสถานการณ์ (เช่นประสิทธิภาพ) แต่คุณอาจต้องใช้แบบสอบถามจำนวนมากเพื่อที่จะทำให้ถูกกว่า Hadoop (โดยเฉพาะแผนที่ยืดหยุ่นของ Amazon ลดลง) ตัวอย่างเช่นถ้าคุณทำ OLAP เป็นไปได้มากที่ Redshift จะถูกกว่า หากคุณทำ ETL แบบรายวัน Hadoop มีแนวโน้มที่จะถูกกว่า
ต้องบอกว่าเราได้แทนที่ส่วนหนึ่งของ ETL ของเราที่ทำใน Hive เป็น Redshift และมันเป็นประสบการณ์ที่ยอดเยี่ยมมาก ส่วนใหญ่เพื่อความสะดวกในการพัฒนา Query Engine ของ Redshift นั้นใช้ PostgreSQL และมีความเป็นผู้ใหญ่มากเมื่อเทียบกับ Hive's คุณสมบัติของกรดทำให้ง่ายต่อการให้เหตุผลและเวลาตอบสนองที่รวดเร็วช่วยให้สามารถทำการทดสอบได้มากขึ้น มันเป็นเครื่องมือที่ยอดเยี่ยมที่มี แต่มันจะไม่แทนที่ Hadoop
แก้ไข : สำหรับความซับซ้อนในการตั้งค่าฉันจะบอกว่า Hadoop ง่ายขึ้นถ้าคุณใช้ EMR ของ AWS เครื่องมือของพวกเขาเป็นผู้ใหญ่มากจนเป็นเรื่องง่ายที่จะทำงาน Hadoop ของคุณให้ขัน เครื่องมือและกลไกการทำงานของ Redshift นั้นยังไม่เต็มที่ ตัวอย่างเช่น Redshift ไม่สามารถจัดการกับการโหลดแบบหยดดังนั้นคุณต้องหาสิ่งที่เปลี่ยนให้เป็นการโหลดแบบแบตช์ซึ่งสามารถเพิ่มความซับซ้อนบางอย่างให้กับ ETL ของคุณ