2013-08-22 3 views
0

У меня есть таблица HBase, которая будет содержать миллионы записей. Для некоторых целей мне нужно запросить количество записей в таблице в реальном времени.Поиск таблицы строк таблицы HBase в реальном времени (миллисекунды)

  1. Использование задания MR-задания rowcount не является вариантом. (нужно быстро)
  2. Использование ResultScanner выполняется медленно. Требуется несколько секунд, когда всего несколько тысяч записей.

ответ

0

Вы не можете - HBase не поддерживает эту функцию. Вы можете использовать предложение Tariq, но вы должны иметь в виду, что в HBase нет транзакций с перекрестными таблицами, поэтому нет гарантии, что число, которое вы накапливаете в одном, отражает точное количество строк в другом.

+0

Существует один механизм добавления большего количества строк в таблицу, о которой я говорю. На самом деле я не совсем понял ваше упоминание о транзакциях с перекрестными таблицами. Вы имеете в виду, что строки могут получить дополнительные строки, если я не заметлю это? –

+0

Если при добавлении строки в одну таблицу вы также увеличиваете счетчик в другой таблице, и что-то подавляет между обновлениями. HBase не гарантирует, что оба обновления будут успешными или не сработают вместе (без транзакции для двух обновлений). –

+0

Спасибо Арнону. Я думаю, что это решение и Tariq оба почти одинаковы. Я проверю их. –

0

Единственный способ сделать это абсолютно в реальном времени, чтобы держать след числа строк и хранить его где-нибудь. Всякий раз, когда вы добавляете новые строки, обновите его. Затем подавайте его, когда вам нужно. Оба указанных выше параметра не помогут вам, если действительно требуется realtime-ness.

+0

Спасибо - я попробую это предложение. –