2016-01-06 63 views
4

每次我见过的数据库有一些检索到实际执行它之前的查询次数的方法。但我不知道如何在Accumulo中完成这个简单的任务。如何获得数据库查询计数Accumulo

只是为了清楚起见,我想这Mongo feature的Accumulo模拟。

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

回答

3

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

它被设计用来完成不同于关系数据库的任务,其重点是大数据

为了实现MongoDB的等效功能,您在Accumulo(获得一个任意的查询结果集的大小的计数),你可以写一个服务器端Iterator从每个服务器返回计数,这可提到总结在客户端得到一个总数。如果您可以预测您的查询,您还可以创建一个索引,以便在采集数据期间跟踪计数。

创建自定义Iterators是一种先进的活动。通常情况下,执行一些看起来很简单的操作(如时间/空间/一致性/方便性)作为结果集计数的重要权衡,因此请谨慎行事。我建议咨询用户mailing list获取信息和建议。

+0

感谢您提供的信息丰富的回应,这不完全是我期待的答案,但它有帮助。 –

+0

一位同事和我正在讨论一种方法来处理查询的结果集(以获取计数和其他数据),而无需将整个事件还原,并且我们提出了一个想法。这有点复杂,但我相信我们可以在邮件列表上讨论。简而言之: 1.克隆表格 2.通过压缩迭代器执行查询 3.截断所需的行范围边界 结果:您的整个查询在一个新表中,具有确切的计数(条目,而不是行)用于检索的元数据。 – Christopher