我见过的每个数据库都有一种方法可以在实际执行查询之前检索查询计数。但我无法想象如何在Accumulo中完成这个简单的任务。
为了清楚起见,我想要这个Mongo feature的Accumulo模拟。
我检查了Scanner apidocs但我找不到任何东西。我正在使用Java,但其他语言的答案也会非常有用。
答案 0 :(得分:3)
Accumulo是一个比传统RDBMS更低级别的应用程序。它基于Google's Big Table而不是关系数据库。它更准确地描述为大规模并行排序地图而非数据库。
它设计用于执行与关系数据库不同的任务,其重点是大数据。
为了实现您在Accumulo中提到的MongoDB功能的等价物(为了计算任意查询结果集的大小),您可以编写一个服务器端Iterator,它从每个服务器返回计数,可以在客户端汇总得到一个总数。如果您可以预测您的查询,您还可以创建一个索引,在索取数据期间跟踪计数。
创建自定义Iterators
是一项高级活动。通常,在实现某些看似简单的结果集的计数方面存在重要的权衡(时间/空间/一致性/便利性),因此请谨慎行事。我建议咨询用户mailing list以获取信息和建议。