我是Accumulo的新手。我知道我可以使用Hadoop和MapReduce编写Java代码来扫描,插入,更新和删除数据。我想知道的是在Accumulo中是否可以聚合。
我知道在MySql中我们可以使用groupby
,orderby
,max
,min
,count
,sum
,{{1 s,嵌套查询等。他们是否有可能直接或间接地在Accumulo中使用这些函数。
答案 0 :(得分:4)
Accumulo通过使用组合器迭代器(Accumulo Combiner Example)来支持聚合。
迭代器主要运行服务器端,但可以在客户端运行,并且可以在将数据发送回客户端之前执行相当多的计算。
Accumulo包含许多迭代器,更具体地说,summingCombiner用于对条目的值求和。戴夫梅迪内的博客有一些很好的例子(Accumulo Blog)。更具体地说,使用summingCombiner实现wordcount(Word Count in Accumulo)。我还建议您注册Accumulo用户邮件列表(mailing lists)。
答案 1 :(得分:0)
Some aggregation is supported in Accumulo,在每个平板电脑中有多个条目,甚至多行。平板电脑之间的聚合需要在客户端或MapReduce作业中完成。
答案 2 :(得分:0)
我喜欢认为Accumulo具有强大的功能。我在其上运行OLAP解决方案,在40个节点上有数亿个密钥。除了基本的SummingCombiner之外,我还推荐更新的statscombiner
为您提供有关一组键的基本统计信息。
您可以在maj压缩,轻微压缩或扫描时间设置合并器。如果你有大量带有大量滴流键的数据,我不建议扫描时间组合,因为它可以减慢扫描时间(并非总是如此)。
HTH
答案 3 :(得分:0)
是的,可以在Accumulo中进行汇总。您可以通过-
1)使用内置的合并器,当您提取数据时会汇总数据。
2)制作自定义的聚合迭代器,然后以较小或不可压缩的方式部署它。