Claves de fila en el modelo de datos HBase
Almacenes de datos HBase constan de una o más tablas, que están indexados por claves de fila. Los datos se almacenan en filas con columnas y filas puede tener múltiples versiones. Por defecto, el control de versiones de filas de datos se implementa con marcas de tiempo.
Fila clave | Columna Familia: {Columna Calificador: Versión: Valor} |
---|---|
00001 | CustomerName: {'FN': 1383859182496: 'John', 'LN': 1383859182858: 'Smith', 'MN': 1383859183001: 'Timoteo', 'MN': 1383859182915: 'T'} ContactInfo: {'EA': 1383859183030:'[email protected] ', 'SA': 1383859183073: «1 Hadoop Lane, NY11111 '} |
00002 | CustomerName: {'FN': 1383859183103: 'Jane', 'LN': 1383859183163: 'Doe', Datos de contacto: { 'SA': 1383859185577: «7 HBase Ave, CA22222 '} |
En aras de la ilustración, la tabla tiene dos simples claves de fila: 00001 y 00002. claves de fila se implementan como matrices de bytes, y se clasifican en orden bytes lexicográfica, que simplemente significa que las claves de fila se clasifican, byte a byte, desde de izquierda a derecha.
Si usted piensa en términos de valores numéricos en el diseño de las teclas de la fila, a continuación, la clasificación es simple. Dos teclas dado, si el byte en el índice 1 en Key 1 es menor que el byte en el índice 1 en Key 2, fila de teclas de 1 siempre se almacenarán antes Fila Clave 2, no importa lo que se viene en la secuencia de bytes.
Sin embargo, es común el uso de (ASCII) caracteres imprimibles en lugar de valores numéricos para las claves de fila en HBase y si lo hace, es necesario comprender que el lenguaje Java representa caracteres utilizando el estándar Unicode. El siguiente ejemplo ilustra esta consideración diseño para Latín básico (ASCII).
"Rowa" precede "Rowa" "Fila-1" precede "Row11" "ROW1" precede "Rowa"
Usted puede preguntarse por qué se molestan con este detalle con respecto a la fila teclas. La razón de esta atención especial es que el diseño clave de fila adecuada es crucial para lograr un buen desempeño en HBase - no hacerlo significa que no se dará cuenta de todo el valor de su clúster HBase. Llaves de filas clasificadas pueden ayudarle a acceder a sus datos más rápida.