2010-05-04 20 views
5

¿Cómo configuro HBase para que el escáner solo recupere varios registros a la vez? O cómo puedo mejorar el escáner cuando la base de datos contiene muchos registros/¿Cómo mejorar HBase Scanner?

Respuesta

10

Creo que el escáner solo solicita un elemento a la vez a menos que configure el almacenamiento en caché. Puede comprobar simplemente para estar seguro con getCaching()

Cada vez que llame a ResultScanner # next(), recuperará el siguiente elemento. También puede usar ResultScanner # next (int) para recuperar una cantidad de resultados a la vez.

Al configurar el escáner se puede utilizar de Exploración # setCaching para recuperar los resultados de antemano http://hadoop.apache.org/hbase/docs/r0.20.4/api/org/apache/hadoop/hbase/client/Scan.html#setCaching(int)

Lo más probable es que su escáner es lenta, ya que sólo leyendo un registro a la vez (que incluye la totalidad de la espalda y adelante del protocolo RPC y otras cosas). Entonces, si tiene la intención de leer mucho, permita que el sistema guarde en caché algunos resultados por adelantado.

0

Puede usar scan.setMaxResultSize para controlar los registros recuperados desde HBase todo el tiempo. (Esto no significa, entonces obtendrá menos resultados de esta consulta)

Si desea limitar el resultado como SQL select top 100 from TABLE; Es necesario utilizar un PageFilter^_^