Как улучшить сканер HBase? - PullRequest
6 голосов
/ 04 мая 2010

Как настроить HBase таким образом, чтобы сканер одновременно извлекал только несколько записей?Или как мне улучшить сканер, когда база данных содержит много записей /

Ответы [ 3 ]

11 голосов
/ 11 мая 2010

Я полагаю, что сканер фактически запрашивает только один элемент за раз, если вы не установите кэширование. Вы можете проверить это просто с помощью getCaching ()

Каждый раз, когда вы вызываете ResultScanner # next (), он извлекает следующий элемент. Вы также можете использовать ResultScanner # next (int) для одновременного получения нескольких результатов.

При настройке сканера вы можете использовать Scan # setCaching для предварительного получения результатов. http://hadoop.apache.org/hbase/docs/r0.20.4/api/org/apache/hadoop/hbase/client/Scan.html#setCaching(int)

Скорее всего, ваш сканер работает медленно, потому что вы читаете только одну запись за раз (которая включает в себя все взад и вперед протокола RPC и еще много чего). Поэтому, если вы собираетесь много читать, пусть система заранее кеширует несколько результатов.

5 голосов
/ 13 мая 2010

Вы также можете изучить API-интерфейс фильтра, который позволяет выборочно возвращать клиенту подмножество строк или ячеек: http://hadoop.apache.org/hbase/docs/current/api/org/apache/hadoop/hbase/filter/package-summary.html.

1 голос
/ 26 сентября 2014

Вы можете использовать scan.setMaxResultSize для управления записями, полученными из HBase каждый раз. (Это не значит, что вы получите меньше результатов из этого запроса)

Если вы хотите ограничить результат как SQL select top 100 from TABLE; Вам нужно использовать PageFilter ^ _ ^

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...