我是Accumulo的新手。我知道我可以编写Java代码来使用Hadoop和MapReduce扫描,插入,更新和删除数据。我想知道的是Accumulo中是否可以聚合。
我知道在MySQL中我们可以使用groupby
,orderby
,max
,min
,count
,sum
,join
s,嵌套查询等。 是否有可能直接或间接在Accumulo中使用这些功能。
Accumulo 确实通过使用组合器迭代器来支持聚合(Accumulo Combiner 示例)。
迭代器大多在服务器端运行,但也可以在客户端运行,并且可以在将数据发送回客户端之前执行相当多的计算。
Accumulo 打包了许多迭代器,更具体地说,summingCombiner 用于对条目的值求和。Dave Medinet有一个博客,里面有一些很好的例子(Accumulo博客)。更具体地说,使用求和组合器来实现字数统计(累积字数)。我还建议注册Accumulo用户邮件列表(邮件列表)。
认为Accumulo具有出色的agg功能。我在 40 个节点上运行一个 OLAP 解决方案,其中包含数亿个密钥。除了基本的SummingCombiner之外,我还推荐更新的statscombiner
。http://accumulo.apache.org/1.4/apidocs/org/apache/accumulo/examples/simple/combiner/StatsCombiner.html
这为您提供了有关一组键的基本统计信息。
您可以在压缩、次要压缩或扫描时设置合路器。如果您有大量数据包含大量涓流键,我不建议合并扫描时间,因为它会减慢扫描时间(并非总是如此)。
呵呵
Accumulo 中支持某些聚合,在每个平板电脑内的多个条目甚至多行上。跨平板电脑的聚合需要在客户端或MapReduce作业中完成。
是的,在累积中可以聚合。 您可以通过以下方式实现它们 -
1) 在内置的组合器中使用,该组合器可在您摄取时聚合数据。
2) 制作自定义聚合迭代器,然后在小型或大型压缩时部署它。