La implementación de índices secundarios en la API de HBase tiene limitaciones conocidas y no se recomienda su uso. Utilice los índices secundarios mediante Lindorm SQL.
ApsaraDB for HBase Performance-enhanced Edition ofrece índices secundarios nativos que permiten consultar datos de tablas en cualquier columna sin necesidad de realizar un escaneo completo de la tabla.
El problema con las consultas basadas solo en rowkey
HBase almacena las filas en orden binario según la rowkey (clave principal). Esto hace que los escaneos de filas, los escaneos por prefijo y los escaneos por rango sean rápidos y eficientes, siempre que la consulta se base en la rowkey.
Cuando necesita consultar una columna que no es rowkey, HBase no tiene una ruta directa hacia las filas coincidentes. Sin un índice secundario, la base de datos aplica un filtro para reducir el rango de rowkey o escanea toda la tabla. Un escaneo completo de la tabla desperdicia E/S, aumenta el tiempo de respuesta y escala deficientemente a medida que crecen los datos.
Enfoques para consultas multicolumna
Antes de que existieran los índices secundarios nativos, había dos soluciones alternativas comunes:
|
Enfoque |
Funcionamiento |
Desventaja |
|
Tabla de índice manual |
Cree una tabla separada indexada por la columna de consulta |
Debe mantener la tabla de índice sincronizada con la tabla principal en cada escritura |
|
Motor de búsqueda externo (Solr, Elasticsearch) |
Exporte los datos a un clúster externo para su indexación |
Consume muchos recursos para consultas comunes en un número pequeño de columnas |
ApsaraDB for HBase Performance-enhanced Edition resuelve ambas desventajas con índices secundarios nativos integrados en ApsaraDB for HBase, lo que ofrece costos más bajos en comparación con las soluciones de motores de búsqueda externos.
Funcionamiento de los índices secundarios nativos
Al crear un índice secundario en una columna, las consultas sobre esa columna se resuelven a través del índice en lugar de escanear todas las filas.
Los índices secundarios nativos en ApsaraDB for HBase están diseñados para alto rendimiento y datos a gran escala. Esta implementación se ha utilizado en producción en Alibaba Group durante muchos años, incluso durante los festivales de compras Double 11.
Pasos siguientes
Descripción general de Lindorm SQL — la forma recomendada de crear y utilizar índices secundarios