我见过的每个数据库都有一种在实际执行查询之前检索查询计数的方法。但是我不知道如何在Accumulo中执行此简单任务。

为了清楚起见,我需要此Mongo feature的Accumulo模拟。

我检查了Scanner apidocs,但找不到任何东西。我正在使用Java,但其他语言的答案也将非常有帮助。

最佳答案

Accumulo是比传统RDBMS更低级别的应用程序。它基于Google's Big Table,而不是关系数据库。它比数据库更准确地描述为大规模并行排序的地图。

它设计用于执行与关系数据库不同的任务,并且其重点是大数据。

要实现与Accumulo中提到的MongoDB功能等效(以获取任意查询结果集的大小的计数),您可以编写服务器端Iterator来返回每个服务器的计数,并可以在客户端上求和一面得到总数。如果可以预料到您的查询,则还可以创建一个索引,以在数据摄取期间跟踪计数。

创建自定义Iterators是一项高级 Activity 。通常,要实现看似简单的结果集计数,需要进行重要的权衡(时间/空间/一致性/便利性),因此请谨慎行事。我建议向用户mailing list咨询有关信息和建议。

关于java - 如何在Accumulo中获取数据库查询的计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34640801/

10-11 01:17
查看更多