Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过Hector从Cassandra中的一行获取多个列范围_Cassandra_Hector - Fatal编程技术网

通过Hector从Cassandra中的一行获取多个列范围

通过Hector从Cassandra中的一行获取多个列范围,cassandra,hector,Cassandra,Hector,假设我在Cassandra中有一行,有多个列,这些列的键是整数,还有一些值。在Hector中使用SliceQuery使我能够获取此列的一个范围。是否有可能通过一个查询获得多个范围 cassandra行示例: columns 3, 7, 12, 34, 45, 46, 59, 98, 99 ---------------------------------------- values a, f, e, v, a, r, r, o, k 如何使用Hector在一个查询中获取键为20

假设我在Cassandra中有一行,有多个列,这些列的键是整数,还有一些值。在Hector中使用SliceQuery使我能够获取此列的一个范围。是否有可能通过一个查询获得多个范围

cassandra行示例:

columns 3, 7, 12, 34, 45, 46, 59, 98, 99
----------------------------------------
values  a, f,  e,  v,  a,  r,  r,  o,  k

如何使用Hector在一个查询中获取键为20到30和50到90的所有列?

我不这么认为。要将其保存在一个查询中,您必须使用一个包含所有感兴趣的片段的片段,然后在客户端以列为单位确定这些列是否属于您感兴趣的范围之一


您应该注意,如果有太多的数据无法在一次调用中处理一个大切片中的所有列,那么您可以使用分页来减少客户端上的数据占用,但也可以只对每个原始切片进行单独调用

我不这么认为。要将其保存在一个查询中,您必须使用一个包含所有感兴趣的片段的片段,然后在客户端以列为单位确定这些列是否属于您感兴趣的范围之一


您应该注意,如果有太多的数据无法在一次调用中处理一个大切片中的所有列,那么您可以使用分页来减少客户端上的数据占用,但也可以只对每个原始切片进行单独调用

为了在PlayOrm开源项目上解决这个问题,我们这样做

Hector是否有astyanax那样的异步调用,以便您可以这样做

for(Query q : queryList) {
// this next call is non-blocking..sends requests and returns immediately not waiting for response
   Future f = q.executeAsycn(); 
   futures.add(f);
}

//Now, both column slices are happening in parallel at the SAME time

for(Future f : futures) {
   Result r = f.get(); //this will block for the first result
}
通过这种方式,它的速度就像api有一个api调用一样快,因此不需要一个调用


Dean

为了解决PlayOrm开源项目中的问题,我们做了以下工作

Hector是否有astyanax那样的异步调用,以便您可以这样做

for(Query q : queryList) {
// this next call is non-blocking..sends requests and returns immediately not waiting for response
   Future f = q.executeAsycn(); 
   futures.add(f);
}

//Now, both column slices are happening in parallel at the SAME time

for(Future f : futures) {
   Result r = f.get(); //this will block for the first result
}
通过这种方式,它的速度就像api有一个api调用一样快,因此不需要一个调用


迪安

我的问题的正确答案来自克里斯·格肯,但你的回答包含了一个解决问题的好建议。谢谢。我的问题的正确答案来自Chris Gerken,但是你的答案包含了一个解决问题的好建议。谢谢