Ведение статистики по строкам в аккумуляторе

Я относительно новичок в Accumulo, поэтому был бы очень признателен за общие советы, как сделать это лучше.

У меня есть rowIds, состоящие из компонента времени и географического компонента. Я хотел бы вести статистику (подсчеты, суммы и т. Д.) В каком-либо итераторе, но хотел бы передавать мутации в другие строки как часть захвата. Другими словами, когда я вставляю строку:

<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

Как лучше всего добиться этого? Я определенно видел комбайнер статистики, но, насколько я понимаю, он работает в пределах одной строки. Я хотел бы поддерживать статистику на основе частей ключа ...

Спасибо!


person Brian V    schedule 28.03.2016    source источник


Ответы (1)


В дополнение к мутации выше, я хотел бы поддерживать статистику в отдельных строках в той же таблице (или в другой) следующим образом

Это то, что принципиально не работает с Accumulo. В рамках Iterator вы не можете знать о данных в отдельной строке. Вот почему StatsCombiner написан в контексте одной строки. Не гарантируется, что любая другая строка будет содержаться на планшете (физическая граница данных).

Обычный подход заключается в том, чтобы поддерживать эту информацию на стороне клиента через отдельную таблицу или локальную группу с помощью SummingCombiner. Когда вы вставляете обновление для определенного столбца, вы также отправляете обновление в свою таблицу статистики.

Вы также можете изучить Fluo, который позволяет выполнять межстрочные транзакции. Это другой зверь, чем обычный Accumulo, и он все еще находится в стадии бета-тестирования.

person elserj    schedule 28.03.2016
comment
Спасибо. Мои дальнейшие исследования также указали мне на этот вывод, поэтому я ценю окончательное подтверждение. Вот что я сделаю - отправлю несколько мутаций, одну в основную таблицу, а несколько в таблицу статистики. - person Brian V; 29.03.2016