tl; dr: वे स्पष्ट रूप से कई पहलुओं में भिन्न हैं और मुझे नहीं लगता कि Redshift Hadoop की जगह लेगा।
-फंक्शन
आप Redshift पर SQL के अलावा और कुछ नहीं चला सकते हैं। शायद सबसे महत्वपूर्ण बात, आप Redshift पर किसी भी प्रकार के कस्टम फ़ंक्शन नहीं चला सकते। Hadoop में आप कई भाषाओं (Java, Python, Ruby .. you name it) का उपयोग कर सकते हैं। उदाहरण के लिए, Hadoop में NLP आसान है, जबकि Redshift में यह कम या ज्यादा असंभव है। यानी ऐसी बहुत सी चीजें हैं जो आप होडोप में कर सकते हैं लेकिन रेडशिफ्ट पर नहीं। यह शायद सबसे महत्वपूर्ण अंतर है।
-परिवर्तन प्रोफ़ाइल
Redshift पर क्वेरी निष्पादन ज्यादातर मामलों में Hadoop की तुलना में काफी अधिक कुशल है। हालाँकि, यह दक्षता उस अनुक्रमण से आती है, जब डेटा को Redshift में लोड किया जाता है (मैं indexing
यहाँ बहुत ही ढीले शब्द का उपयोग कर रहा हूँ )। इसलिए, यदि आप अपना डेटा एक बार लोड करते हैं और कई क्वेरी निष्पादित करते हैं, तो यह बहुत अच्छा है, लेकिन यदि आप उदाहरण के लिए केवल एक क्वेरी निष्पादित करना चाहते हैं, तो आप वास्तव में समग्र प्रदर्शन में खो सकते हैं।
-कॉस्ट प्रोफ़ाइल
लागत में कौन सा समाधान जीतता है यह स्थिति (प्रदर्शन की तरह) पर निर्भर करता है, लेकिन होडोप से सस्ता (अधिक विशेष रूप से अमेज़ॅन का इलास्टिक मैप रिड्यूस) बनाने के लिए आपको काफी प्रश्नों की आवश्यकता है। उदाहरण के लिए, यदि आप OLAP कर रहे हैं, तो यह बहुत संभावना है कि Redshift सस्ता हो। यदि आप दैनिक बैच ETL करते हैं, तो Hadoop के सस्ते होने की संभावना है।
यह कहने के बाद, हमने अपने ईटीएल के हिस्से को बदल दिया है जो हाइव टू रेडशिफ्ट में किया गया था, और यह एक बहुत अच्छा अनुभव था; ज्यादातर विकास में आसानी के लिए। Redshift का क्वेरी इंजन PostgreSQL पर आधारित है और हाइव की तुलना में बहुत परिपक्व है। इसकी ACID विशेषताएं इसके बारे में तर्क करना आसान बनाती हैं, और त्वरित प्रतिक्रिया समय अधिक परीक्षण करने की अनुमति देता है। यह एक महान उपकरण है, लेकिन यह Hadoop को प्रतिस्थापित नहीं करेगा।
संपादित करें : सेटअप जटिलता के रूप में, यदि आप AWS के EMR का उपयोग करते हैं, तो मैं यह भी कह सकता हूं कि यह Hadoop के साथ आसान है। उनके उपकरण इतने परिपक्व होते हैं कि आपका हडोप नौकरी चलाना हास्यास्पद है। Redshift के संचालन के आसपास के उपकरण और तंत्र अभी तक परिपक्व नहीं हैं। उदाहरण के लिए, Redshift ट्रिकल लोडिंग को संभाल नहीं सकता है और इस प्रकार आपको कुछ ऐसा करना होगा जो कि एक बैच लोड में बदल जाए, जो आपके ETL में कुछ जटिलता जोड़ सकता है।