स्तंभ परिवारों का क्या कहना है?


9

मैंने देखा है कि RocksDB जैसे NoSQL डेटाबेस सिस्टम एक सुविधा प्रदान करते हैं जिसे कॉलम परिवार कहा जाता है । मेरा मानना ​​है कि मैं समझता हूं कि अवधारणा क्या संदर्भित करती है, लेकिन उनका उपयोग करने के वास्तविक (व्यावहारिक) लाभ क्या हैं? मुझे लगता है कि वे कुछ मामलों में लुक-अप प्रदर्शन में सुधार कर सकते हैं, या बहुत कम से कम महत्वपूर्ण मूल्य के अंतरिक्ष इलाके में प्रवेश कर सकते हैं? यह डेटाबेस एक्सेस के वास्तविक शब्दार्थ को प्रभावित नहीं करेगा, हालाँकि, जहाँ तक मैं समझता हूँ। क्या ये सही है? क्या मुझे कुछ याद आ रहा है?

जवाबों:


3

मैंने अभी हाल ही में RocksDB FAQ से कुछ रोचक जानकारी को उजागर किया है । (RocksDB एक KV स्टोर है।)

यहाँ कुछ प्रासंगिक अर्क हैं।

प्रश्न: स्तंभ परिवारों के लिए क्या उपयोग किया जाता है?

ए: कॉलम परिवारों का उपयोग करने के सबसे आम कारण: (1) डेटा के विभिन्न भागों में विभिन्न संघनन सेटिंग, तुलना, संपीड़न प्रकार, मर्ज ऑपरेटर या संघनन फ़िल्टर का उपयोग करते हैं; (2) अपने डेटा को हटाने के लिए एक कॉलम परिवार को छोड़ दें; (3) मेटाडाटा स्टोर करने के लिए एक कॉलम परिवार और डेटा स्टोर करने के लिए एक और एक।

प्रश्न: कई कॉलम परिवार में डेटा और कई चट्टानों डेटाबेस में भंडारण के बीच अंतर क्या है?

A: मुख्य अंतर बैकअप, परमाणु लेखन और लेखन का प्रदर्शन होगा। कई डेटाबेस का उपयोग करने का लाभ: डेटाबेस बैकअप या चेकपॉइंट की इकाई है। कॉलम परिवार की तुलना में किसी अन्य होस्ट के लिए डेटाबेस को कॉपी करना आसान है। कई कॉलम परिवारों का उपयोग करने के लाभ: (1) एक डेटाबेस पर कई कॉलम परिवारों में लिखने के बैच परमाणु होते हैं। आप कई RocksDB डेटाबेस का उपयोग करके इसे प्राप्त नहीं कर सकते। (2) यदि आप समन्वयन जारी करते हैं तो वाल को लिखते हैं, बहुत से डेटाबेस प्रदर्शन को चोट पहुँचा सकते हैं।

प्रश्न: मेरे पास अलग-अलग प्रमुख स्थान हैं। क्या मुझे उन्हें उपसर्गों द्वारा अलग करना चाहिए, या विभिन्न स्तंभ परिवारों का उपयोग करना चाहिए?

A: यदि प्रत्येक प्रमुख स्थान यथोचित रूप से बड़ा है, तो उन्हें विभिन्न स्तंभ परिवारों में रखना एक अच्छा विचार है। यदि यह छोटा हो सकता है, तो आपको कई स्तंभ परिवारों को बनाए रखने की परेशानी से बचने के लिए, एक कॉलम परिवार में कई प्रमुख स्थानों को पैक करने पर विचार करना चाहिए।


2

मुझे पता है कि आप एसक्यूएल के साथ समानांतर की तलाश नहीं कर रहे हैं, लेकिन यह लेख बताते हैं कि कॉलम परिवारों के उद्देश्य और व्यावहारिक लाभ की योजना है।

से किसी SQL परिप्रेक्ष्य से कैसेंड्रा डेटा मॉडल को समझना RubyScale पर:

तब के लिए एक कॉलम परिवार क्या है? बस एक तालिका उपसर्ग? एक कॉलम परिवार में कई सेटिंग्स होती हैं जो इसके साथ चलती हैं जो इसे व्यवहार में परिवर्तन करती हैं। कुंजी (इस उदाहरण में यूयूआईडी) के लिए कैश सेटिंग्स हैं, संपूर्ण पंक्तियों (इस उदाहरण में संपूर्ण तालिका) के लिए कैश सेटिंग्स, और सबसे महत्वपूर्ण बात, सॉर्टिंग। कैसंड्रा में कोई OFFSET नहीं है, केवल LIMIT और BETWEEN के बराबर है । इस उदाहरण में, स्तंभ नाम सिर्फ तार हैं, लेकिन वे पूर्णांक या टाइमस्टैम्प भी हो सकते हैं और उन्हें हमेशा क्रमबद्ध रूप में संग्रहीत किया जाता है। एक कॉलम फ़ैमिली में टाइमस्टैम्प-सॉर्ट किए गए डेटा हो सकते हैं जहाँ आप समय के हिसाब से चीजों को क्वेरी करते हैं और दूसरा एड्रेस बुक डेटा हो सकता है जहाँ आप वर्णमाला के क्रम में चीजों को क्वेरी करते हैं। इस तथ्य के बाद आपको केवल छँटाई करने के लिए एक विशेष स्लाइस बदल रहा है।


दिलचस्प। जैसा कि आप कहते हैं, यह पूरी तरह से सवाल का जवाब नहीं देता है, लेकिन यह एक संकेत प्रदान करता है। धन्यवाद।
नोल्डोरिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.