deneyin şey: 100 satır sayfalarında sütun ailesi aracılığıyla
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();
}
}
Bu irade sayfası. Her bir satır için sadece 10 sütun alır (çok uzun satırlar da sayfalara girmek isteyeceksiniz).
Bu, satır anahtarları için uuidler, sütun adları için dizeler ve değerler için longs içeren bir sütun ailesi içindir. Umarım bunu nasıl değiştireceğimiz açık olmalıdır.
teşekkürler. Ama bu benim yaptığım şey. Ben sadece rangeSlicesQuery.setKeys ("", "") ayarlıyorum ve herhangi bir satır sayısı ayarlamıyorum. Bu sütun ailesindeki tüm satırları döndürdü. Sütunlarda sayfalara bakmaya gerek yok gibi görünüyor. –
Önceki yorumuma devam etmek için böyle yapmak için sütun adlarını belirtmem gerekiyor. –
Eminim Hector sizin için çağrı yapmıyor. Veri kümeniz daha büyük hale geldiğinde kodunuz büyük olasılıkla zaman aşımına uğramayacaktır (ya da daha kötüsü, Cassandra'dan OOM'a). Önerilerinizi yapmak Cassandra'nın tüm veri kümesini RAM'e yüklemesine neden olur. –