2013-02-22 37 views
5

में लाने के अब & user_codeरैंडम स्तंभ कैसेंड्रा

Keyspace keyspace = HFactory.createKeyspace("test", cluster); 
CqlQuery<String,String,ByteBuffer> cqlQuery = new CqlQuery<String,String,ByteBuffer>(keyspace, stringSerializer, stringSerializer, new ByteBufferSerializer()); 
cqlQuery.setQuery("select user_id,user_code from User"); 
QueryResult<CqlRows<String,String,ByteBuffer>> result = cqlQuery.execute(); 
Iterator iterator = result.get().iterator(); 
while(iterator.hasNext()) { 
    Row<String, String, ByteBuffer> row = (Row<String, String, ByteBuffer>) iterator.next(); 
    System.out.println("\nInserted data is as follows:\n" + row.getColumnSlice().getColumns().get(0).getValue().getInt()); 
    System.out.println("\nInserted data is as follows:\n" + Charset.forName("UTF-8").decode(row.getColumnSlice().getColumns().get(1).getValueBytes())); 
} 

user_id प्राप्त करने में कठिनाई के लिए मैं इस कोड का उपयोग कर रहा समस्या यहाँ निहित है कि मैं उनके विशिष्ट प्रकार

क्या होगा यदि क्वेरी यादृच्छिक चला जाता है के अनुसार क्षेत्रों परिवर्तित कर रहा हूँ? उस परिदृश्य को कैसे संभालें?

+0

प्लज़ बाइटबफर सेरियलाइज़र के बजाय विभिन्न बफरसेरिएलेज़र का उपयोग करने का प्रयास करें, इसके माध्यम से आप हमेशा बाइट स्ट्रीम में सभी डेटा प्राप्त करेंगे, डेटा बेस से डेटा निकालने का प्रयास करें वास्तविक प्रारूप में जिसमें इसे संग्रहीत किया जाता है। –

उत्तर

1

सीडीएल प्रश्नों को जेडीबीसी परिणामसेट के समान, उनके कॉलम के बारे में मेटाडेटा के साथ वापस कर दिया जाता है।

मुझे नहीं पता कि हेक्टर इस जानकारी का खुलासा करता है या नहीं। सीक्यूएल के लिए, यहां एक बेहतर विकल्प नया शुद्ध सीक्यूएल ड्राइवर होगा: https://github.com/datastax/java-driver

+0

आप इसे कैसे काम करने के लिए मिला? [मेरी जिस्ट] (https://gist.github.com/shehaaz/5279566) पर एक नज़र डालें ... यह एक कैसंद्रा क्लस्टर सत्र है ... जिसे सिर्फ नया कैसंद्रा() कहा जाता है; मुश्किल हो जाता है ... क्या यह बंदरगाह के साथ है? मैं इसे स्थानीयहोस्ट में क्यों नहीं सेट कर सकता: 9160 .... प्रोटोकॉलऑप्शन में DEFAULT_PORT 9042 पर सेट है ... वह क्यों है? धन्यवाद! :) – Shehaaz