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
如何计算cassandra列族中的行数_Cassandra_Hector - Fatal编程技术网

如何计算cassandra列族中的行数

如何计算cassandra列族中的行数,cassandra,hector,Cassandra,Hector,我正在将一个包含用户配置文件的文件写入具有5M配置文件的cassandra。 我的写操作成功地完成了。 我想计算列族中的行数 Keyspace keyspaceOperator = HFactory.createKeyspace(KEY_SPACE, cluster); CqlQuery<String,String,Long> cqlQuery = new CqlQuery<String,String,Long>(keyspaceOperator, se, se, new

我正在将一个包含用户配置文件的文件写入具有5M配置文件的cassandra。 我的写操作成功地完成了。 我想计算列族中的行数

Keyspace keyspaceOperator = HFactory.createKeyspace(KEY_SPACE, cluster);
CqlQuery<String,String,Long> cqlQuery = new CqlQuery<String,String,Long>(keyspaceOperator, se, se, new LongSerializer());
cqlQuery.setQuery("SELECT COUNT(*) FROM up");
QueryResult<CqlRows<String,String,Long>> result = cqlQuery.execute();
System.out.println(result.get().getAsCount());
Keyspace-Keyspace-operator=HFactory.createKeyspace(键空间,集群);
CqlQuery CqlQuery=新的CqlQuery(keyspaceOperator,se,se,new LongSerializer());
setQuery(“从上选择计数(*”);
QueryResult result=cqlQuery.execute();
System.out.println(result.get().getAsCount());
但是下面的代码总是打印10000。
我做错了什么?如何从cli执行此操作?

您现在不能。每个查询的默认限制为10K行。这有一张公开票(CASSANDRA-3702),但到目前为止还没有解决办法。

你现在不能。每个查询的默认限制为10K行。这个问题有一个公开的解决方案(CASSANDRA-3702),但到目前为止还没有解决方案。

唯一的替代方案是通过RangeScrey进行迭代。我创建了一个“普查”程序来计算行数和总列数。但是,如果这是一项经常性的活动,传统智慧似乎是使用一个单独的计数器列来跟踪

唯一的另一种选择是通过RangeSlicesQuery进行迭代。我创建了一个“普查”程序来计算行数和总列数。但是,如果这是一项经常性的活动,传统智慧似乎是使用一个单独的计数器列来跟踪

您只需给出一个您想要计算的最大限度。如果你不希望计数超过1e9,那么就这样做

SELECT COUNT(*) FROM up LIMIT 1000000000;

但要知道,COUNT(还有RangeSlicesQuery)根本就没有表现,甚至根本就没有表现出来的意思。它们本质上与关系数据库术语中的“顺序扫描”相同。在分布式系统中,计数器是解决此类问题的更好方法。

您只需给出一个您想要计算的最大限制。如果你不希望计数超过1e9,那么就这样做

SELECT COUNT(*) FROM up LIMIT 1000000000;
但要知道,COUNT(还有RangeSlicesQuery)根本就没有表现,甚至根本就没有表现出来的意思。它们本质上与关系数据库术语中的“顺序扫描”相同。在分布式系统中,计数器是解决此类问题的更好方法。

请参考一个这样做的示例

您可以自由使用代码。请注意,
Astyanax
已经从
Hector
分支出来,我们发现它是
Java

中一个非常好的
Cassandra
客户机。请参考一个这样做的示例

您可以自由使用代码。请注意,
Astyanax
已经从
Hector
分支出来,我们发现它是
Java
中非常好的
Cassandra
客户端