2011-06-01 31 views
10

मैं क्ली से बाहर निकलने के बाद कैसंद्रा से डेटा पुनर्प्राप्त नहीं कर सकता।कैसंद्रा से डेटा पुनर्प्राप्त करने में असमर्थ

org.apache.cassandra.db.marshal.MarshalException: जब मैं वापस एक और सत्र में डेटा प्राप्त करने के लिए जाना है, मैं इस त्रुटि मिलती है हेक्स बाइट के रूप में पार्स नहीं कर सकता 'jsmith'

यह स्तंभ परिवार लगता है रहता है और चाबियाँ भी।

मैंने एएससीआई के लिए कुंजी प्रारूप भी बदल दिया (उपयोगकर्ता कुंजी को ascii के रूप में मानें;) ... और यह या तो सेट नहीं रहता है।

क्या कोई कारण है? क्या हो रहा है?

उत्तर

16

सभी "मान लें" आदेश अस्थायी हैं और एक ही क्लाई सत्र तक ही सीमित हैं। के लिए उन CLI के सामने अभी बैठे नहीं, हम इन की चर्चा करते हुए कर रहे हैं:

assume <cf> comparator as <type>; 
assume <cf> sub_comparator as <type>; 
assume <cf> validator as <type>; 
assume <cf> keys as <type>; 

Assume one of the attributes (comparator, sub_comparator, validator or keys) 
of the given column family match specified type. The specified type will 
be used when displaying data returned from the column family. 

ये विशुद्ध रूप से ग्राहक के पक्ष हैं।

इसके बजाय आप क्या करना चाहते हैं कि कॉलमफैमिली परिभाषा में मेटाडेटा स्थायी रूप से रिकॉर्ड करना है, उदा।

  1. यह स्थायी रूप से कैसेंड्रा में दर्ज की गई है
  2. कैसेंड्रा डेटा के खिलाफ निर्दिष्ट प्रकार डाला
  3. सभी लागू करेंगे: रीडमी से,

    create column family Users with comparator=UTF8Type and default_validation_class=UTF8Type and key_validation_class=UTF8Type; 
    

    यह "मान" 3 तरीके में से अलग है ग्राहक इस मेटाडेटा को क्वेरी कर सकते हैं और इसके साथ बुद्धिमान चीजें करने के लिए उपयोग कर सकते हैं, न केवल क्ली

मान लीजिए मुख्य रूप से पुराने डेटा सेट के लिए वर्कअराउंड के रूप में है जिसे "असली" सर्वर-साइड प्रकार का उपयोग करने के लिए अपडेट नहीं किया जा सकता है।

+2

उस उत्तर के लिए धन्यवाद! – strauberry

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