在Apache Accumulo中编辑迭代器

时间:2015-06-09 09:37:52

标签: java accumulo

我正在使用Apache Accumulo,我需要创建一个迭代器,每次轻微的压缩扫描所有整行,并创建一个两列的MD5并将其保存为我的行的另一列......

示例:

我插入此数据:

|| Row || colFam || colQual || value ||
||=====||========||=========||=======||
|| A   || person || name    || Bob   ||
|| A   || person || surname || Smith ||
|| A   || work   || place   || Bank  ||
|| B   || person || name    || Jhon  || 
|| B   || person || surname || Allen ||
|| B   || work   || place   || Pub   ||
...
...

我需要一个迭代器,每当我写一行(A或B及其所有colFam e colQual)时,它都会获得两列(name和surname)的值并计算结果字符串的MD5(name + surname)并将其保存为我的行列。

结果应该是这样的:

|| Row || colFam || colQual || value        ||
||=====||========||=========||==============||
|| A   || person || name    || Bob          ||
|| A   || person || surname || Smith        ||
|| A   || work   || place   || Bank         ||
|| A   || MD5    || MD5     || <MD5 result> || <--
|| B   || person || name    || Jhon         || 
|| B   || person || surname || Allen        ||
|| B   || work   || place   || Pub          ||
|| B   || MD5    || MD5     || <MD5 result> || <--
....
....

我认为我可以把这个迭代器放在一个表的次要(/主要)压缩上。

有什么想法吗?我必须扩展哪一个内置迭代器才能做到这一点?

非常感谢

1 个答案:

答案 0 :(得分:0)

查看TransformingIterator。这个迭代器试图隐藏行级操作背后的一些复杂性。

一般策略是,当迭代一行时,你必须在内存中缓冲行,执行计算,然后以正确的排序顺序写出行。