कोशिश कुछ:
public class Dumper {
private final Cluster cluster;
private final Keyspace keyspace;
public Dumper() {
this.cluster = HFactory.getOrCreateCluster("Name", "hostname");
this.keyspace = HFactory.createKeyspace("Keyspace", cluster, new QuorumAllConsistencyLevelPolicy());
}
public void run() {
int row_count = 100;
RangeSlicesQuery<UUID, String, Long> rangeSlicesQuery = HFactory
.createRangeSlicesQuery(keyspace, UUIDSerializer.get(), StringSerializer.get(), LongSerializer.get())
.setColumnFamily("Column Family")
.setRange(null, null, false, 10)
.setRowCount(row_count);
UUID last_key = null;
while (true) {
rangeSlicesQuery.setKeys(last_key, null);
System.out.println(" > " + last_key);
QueryResult<OrderedRows<UUID, String, Long>> result = rangeSlicesQuery.execute();
OrderedRows<UUID, String, Long> rows = result.get();
Iterator<Row<UUID, String, Long>> rowsIterator = rows.iterator();
// we'll skip this first one, since it is the same as the last one from previous time we executed
if (last_key != null && rowsIterator != null) rowsIterator.next();
while (rowsIterator.hasNext()) {
Row<UUID, String, Long> row = rowsIterator.next();
last_key = row.getKey();
if (row.getColumnSlice().getColumns().isEmpty()) {
continue;
}
System.out.println(row);
}
if (rows.getCount() < row_count)
break;
}
}
public static void main(String[] args) {
new Dumper().run();
}
}
100 पंक्तियों के पन्नों में स्तंभ परिवार के माध्यम से हो जाएगा ताकि पेज। यह केवल प्रत्येक पंक्ति के लिए 10 कॉलम लाएगा (आप बहुत लंबी पंक्तियों को भी पेज करना चाहते हैं)।
यह कॉलम परिवार के लिए पंक्ति कुंजी के लिए यूयूड्स, स्तंभ नामों के लिए तार और मूल्यों के लिए लंबे समय तक है। उम्मीद है कि यह स्पष्ट होना चाहिए कि इसे कैसे बदला जाए।
स्रोत
2011-12-07 16:49:50
अपने जवाब के लिए धन्यवाद। लेकिन मैंने यही किया है। मैं बस rangeSlicesQuery.setKeys ("", "") सेट करता हूं और मैं कोई पंक्ति गणना सेट नहीं करता हूं। यह कॉलम परिवार में सभी पंक्तियों को वापस कर दिया। ऐसा लगता है कि कॉलम के माध्यम से पेज की आवश्यकता नहीं है। –
मेरी पिछली टिप्पणी जारी रखने के लिए, ऐसा करने के लिए, मुझे कॉलम नाम निर्दिष्ट करने की आवश्यकता थी। –
मुझे यकीन है कि हेक्टर आपके लिए पेजिंग लागू नहीं करता है। जब आपका डेटा बड़ा हो जाता है, तो आपका कोड टाइमआउट (या बदतर, कैसंड्रा से ओओएम का कारण बनता है) के साथ असफल हो जाएगा, जैसा कि आप सुझाव देते हैं, कैसंड्रा पूरे डेटासेट को रैम में लोड करने का कारण बनता है। –