gpt4 book ai didi

cassandra - 如何使用 astyanax 从 cassandra CF 读取所有 1000 行

转载 作者:行者123 更新时间:2023-12-01 02:24:34 28 4
gpt4 key购买 nike

我们有这个只有大约 1000 行的 CF。 astyanax 有没有办法读取所有 1000 行?节俭甚至支持吗?

谢谢,
院长

最佳答案

您可以使用 thrift 调用 get_range_slices 读取所有行。请注意,它按 token 顺序返回行,而不是键顺序。所以可以读取所有行但不要跨行键读取范围。

您可以通过 getAllRows() 在 Astyanax 中使用它。这是一些示例代码(从 https://github.com/Netflix/astyanax/wiki/Reading-Data#iterate-all-rows-in-a-column-family 处的文档复制)

Rows<String, String>> rows;
try {
rows = keyspace.prepareQuery("ColumnFamilyName")
.getAllRows()
.setBlockSize(10)
.withColumnRange(new RangeBuilder().setMaxSize(10).build())
.setExceptionCallback(new ExceptionCallback() {
@Override
public boolean onException(ConnectionException e) {
try {
Thread.sleep(1000);
} catch (InterruptedException e1) {
}
return true;
}})
.execute().getResult();
} catch (ConnectionException e) {
}

// This will never throw an exception
for (Row<String, String> row : rows.getResult()) {
LOG.info("ROW: " + row.getKey() + " " + row.getColumns().size());
}

这将返回每行的前 10 列,每批 10 行。增加传递给 RangeBuilder().setMaxSize 的数字以获得更多(或更少)的列。

关于cassandra - 如何使用 astyanax 从 cassandra CF 读取所有 1000 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17662899/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com