使用 Accumulo 的迭代器和合并器聚合多行中的值



我想知道是否可以对存储在多行中的值进行聚合操作。例如,我有下表

rowID   colFam   colQual   value
00000   0000     A         12
00000   0001     B         Test
00001   0000     A         35
00001   0001     B         Foo
00002   0000     A         7
00002   0001     B         Bar

我要做的是找到用columnqualifierA存储的所有值的平均值A的平均值。是否可以使用Accumulo的迭代器,过滤器或组合器?

我看到了statscombiner,但是该组合仪在不同版本(RowID,Colfam和Colqual是相同的,但时间戳是不同的(,而不是在不同的键上执行聚合。

组合器(及其前身,聚合器(对同一键进行聚合。您可以创建一个迭代器,该迭代器将多个键转换为单个密钥,但是您仍然必须在客户端中汇总,因为您将为每个平板电脑生成大量的部分计算。

您可以使用Apache Fluo的"观察者"在摄入桌子时保持汇总统计信息。

可能有多种解决方案。我建议看看Apache Fluo,如果您真的不想使用它,请考虑将部分总和/计数作为每个平板电脑中的迭代器,并在客户端进行最终聚合。

让我以以下事实序言:我多年来都没有使用过Accumulo,但是我不确定您是否能够在服务器端完全执行此操作。原因是,您正在寻找CQ中的值,这些值将分布在Accumulo群集的所有节点上。IE。知道大约00000:0000的平板电脑服务器(保证(对00002:0000等的值一无所知。CQ the rowID(,或者您必须在客户端进行汇总。您也许可以采用混合方法来执行每个平板电脑的某种AGG并在客户端进行剩余的AGG。

相关内容

  • 没有找到相关文章

最新更新