【问题标题】:Maintain statistics across rows in accumulo在累积中维护跨行的统计信息
【发布时间】:2016-03-28 18:07:04
【问题描述】:

我对 Accumulo 比较陌生,因此非常感谢能够更好地完成此操作的一般提示。

我有一个由时间组件和地理组件组成的 rowId。我想在某种迭代器中维护统计信息(计数、总和等),但想将突变作为摄取的一部分发送到其他行。换句话说,当我插入一行时:

<timeA>_<geoX> colFam:colQual value

除了上面的突变,我想在同一个表(或不同的表)的不同行中维护统计信息,如下所示:

timeA_countRow colFam:colQual count++
geoX_countRow colFam:colQUal count++
timeA_sumRow colFam:colQUal sum += value
geoX_sumRow colFam:colQual sum += value

完成这样的事情的最佳方法是什么?我肯定见过统计组合器,但据我了解,它只在一行中起作用。我想根据部分键来维护统计信息...

谢谢!

【问题讨论】:

    标签: accumulo


    【解决方案1】:

    除了上面的突变,我想在同一个表(或不同的表)的不同行中维护统计信息,如下所示

    这从根本上不适用于 Accumulo。在迭代器的范围内,您无法知道单独行中的数据。这就是为什么 StatsCombiner 是在单行的上下文中编写的。不保证任何其他行都包含在 Tablet 中(物理数据边界)。

    一种常见的方法是使用 SummingCombiner 通过单独的表或位置组在客户端维护此信息。当您为特定列插入更新时,您也会向您的统计表提交更新。

    您还可以查看Fluo,它允许您执行跨行事务。这是与普通 Accumulo 不同的野兽,仍处于测试阶段。

    【讨论】:

    • 谢谢。我的进一步研究也向我指出了这个结论,所以我很感激最终的确认。那么,这就是我要做的 - 提交多个突变,一个在主表上,几个在统计表上。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-10
    • 2019-10-19
    • 1970-01-01
    相关资源
    最近更新 更多