2013-10-24 5 views
8

मैंने बस this youtube video of Patrick McFadin को कैसंड्रा डेटामैडलिंग पर देखा।कैसंड्रा समग्र कुंजी को समझना

create table user_activity_history { 
    username varchar, 
    interaction_date varchar, 
    activity_code varchar, 
    detail varchar, 
    PRIMARY KEY((username,interaction_date),interaction_time) 
); 

प्राथमिक कुंजी ((username,interaction_date),interaction_time) क्यों है:

वहाँ एक मेज, इस प्रकार थी। (username,interaction_date,interaction_time) से अलग कैसे है।

+0

क्या आप पैट्रिक मैकफैडिन के वीडियो के लिए एक लिंक जोड़ सकते हैं? – lorcan

+0

जोड़ा गया http://www.youtube.com/watch?v=HdJlsOZVGwM&feature=share&list=PLqcm6qE9lgKJzVvwHprow9h7KMpb5hcUU –

उत्तर

13

अंतर तालिका के partition_key से संबंधित है। स्थित

PRIMARY KEY(username,interaction_date,interaction_time) 

डेटा तालिका में सम्मिलित विभाजित किया जाएगा (: इस क्लस्टर में डेटा की भौतिक स्थिति को परिभाषित करता है, उदाहरण के लिए, निम्नलिखित का उपयोग करके - आमतौर पर प्राथमिक कुंजी में पहला तत्व भी विभाजन की कुंजी है शारीरिक रूप से) username के अनुसार, जबकि निम्न का उपयोग करके:

PRIMARY KEY((username,interaction_date),interaction_time) 

यह username,interaction_date संयोजन के अनुसार विभाजित किया जाएगा। बाद की योजना का लाभ यह है कि एक username से संबंधित डेटा क्लस्टर में नोड्स में संग्रहीत किया जा सकता है।

वहाँ CREATE TABLE पर datastax के CQL दस्तावेज में partition_keys बारे में अधिक जानकारी है:

आप एक यौगिक प्राथमिक कुंजी कैसेंड्रा पहले कॉलम विभाजन कुंजी और दुकानों पंक्ति के सभी स्तंभों के रूप में एक परिभाषा घोषित व्यवहार करता है का उपयोग करते हैं एक ही भौतिक नोड पर। जब आप एक समग्र विभाजन कुंजी का उपयोग करते हैं, तो कैसंड्रा नेस्टेड कोष्ठक में कॉलम को विभाजन कुंजी के रूप में मानता है और एक से अधिक नोड पर पंक्ति के कॉलम संग्रहीत करता है। डेटा को विभाजित करने वाले कॉलम को परिभाषित करने के लिए आप कोष्ठक के एक अतिरिक्त सेट का उपयोग करके एक समग्र विभाजन कुंजी घोषित करें।

संबंधित मुद्दे