Colección de citas famosas - Slogan de motivación - ¿Cuáles son los puntos a tener en cuenta al diseñar claves de fila en HBase?

¿Cuáles son los puntos a tener en cuenta al diseñar claves de fila en HBase?

rowkey: row key

Tres principios del diseño

Único

Se debe garantizar la singularidad en el diseño. Dado que el almacenamiento de datos en HBase es en forma de valor clave, si se inserta la misma Rowkey en la misma tabla en HBase, los datos originales se sobrescribirán (si la versión de la tabla se establece en 1), por lo que la unicidad de Rowkey debe Asegúrese de que

Ordenar

El Rowkey de HBase esté diseñado en orden ASCII. Debemos aprovechar esto al máximo al diseñar Rowkey. Por ejemplo, la información del bombardeo de la película "Titanic" en un sitio web de videos muestra el video en orden cronológico inverso. En este momento, el Rowkey que diseñamos debe estar relacionado con el orden cronológico. Puede utilizar el valor largo de "Long.MAX_VALUE - tiempo de publicación de bombardeo" como prefijo de Rowkey

Hash

La Rowkey que diseñamos debe distribuirse uniformemente en cada nodo de HBase. Tome la marca de tiempo común como ejemplo. Si Rowkey se incrementa de acuerdo con la marca de tiempo del sistema, si la primera parte de Rowkey es la información de la marca de tiempo, provocará un fenómeno de punto de acceso donde todos los datos nuevos se acumulan en un RegionServer, lo cual es común. conocido como punto de acceso de región El problema es que los puntos de acceso ocurren cuando una gran cantidad de clientes acceden directamente a un RegionServer específico (el acceso puede ser de lectura, escritura u otras operaciones), lo que hace que la carga en una sola máquina de RegionServer sea demasiado alta, lo que provoca que Degradación del rendimiento o incluso falta de disponibilidad de la región. Una ocurrencia común es que jvm full puede mostrar una excepción de región demasiado ocupada. Por supuesto, esto también afectará a otras regiones en el mismo servidor de región.