पाठ 22 / 32
निर्णय ढाँचा: SQL या NoSQL
हाइप से आगे बढ़कर हर वर्कलोड के लिए सही स्टोर चुनना।
लेबल नहीं, आकार पूछें
'SQL या NoSQL' के बजाय पूछें: डेटा कितना संबंधित है (कई जॉइन बनाम स्व-निहित डॉक्यूमेंट)? क्या ट्रांज़ैक्शन को कई एंटिटी में फैलना है? स्कीमा स्थिर है या तेज़ी से बदल रही है? क्या स्केल एक नोड की राइट क्षमता से आगे जाएगा?
एक त्वरित मिलान
भुगतान, इन्वेंटरी, बहु-रो ACID चाहने वाली कोई भी चीज़ → रिलेशनल। की से एक्सेस होने वाला यूज़र का सेशन/प्रोफ़ाइल ब्लॉब → की-वैल्यू। कनेक्शन का सोशल ग्राफ़ → ग्राफ़ DB। विशाल राइट मात्रा पर टाइम-सीरीज़ मेट्रिक्स → वाइड-कॉलम (Cassandra) या विशेष टाइम-सीरीज़ स्टोर।
पॉलीग्लॉट पर्सिस्टेंस सामान्य है
बड़े सिस्टम कई स्टोर मिलाते हैं: ऑर्डर के लिए Postgres, सेशन के लिए Redis, सर्च के लिए Elasticsearch, ब्लॉब के लिए S3। एक डेटाबेस से सब कुछ करवाने के बजाय एक्सेस पैटर्न के अनुसार चुनें।