El almacenamiento de datos en bigtables

Un Bigtable tiene mesas al igual que un RDBMS hace, pero a diferencia de un RDBMS, unas mesas BigTable generalmente no tienen relaciones con otras tablas. En cambio, los datos complejo se agrupa en una sola tabla.

Una mesa en un Bigtable consiste en grupos de columnas, llamado las familias de las columnas, y una clave de fila. Estas juntas permiten las operaciones de búsqueda rápida de un solo registro de datos contenidos en un Bigtable.

Utilizando las teclas de la fila

Cada fila debe ser identificado de forma única. Aquí es donde una clave fila entra. Una de las claves de fila es una cadena única utilizada para hacer referencia a un único registro en un Bigtable. Usted puede pensar en ellos como similar a una clave principal o recibir un número de seguro social para Bigtables.

Muchos Bigtables no ofrecen buenos índices secundarios (índices sobre la columna valora a sí mismos), por lo que el diseño de una clave de fila que permite las operaciones de búsqueda rápida de los registros es crucial para asegurar un buen rendimiento.

Una de las claves de fila y # 8208 diseñado permite un registro que se encuentra sin necesidad de que su aplicación leer y comprobar la aplicabilidad de cada grabarte. Es más rápido para la base de datos para hacer esto.

Teclas de la fila también son utilizados por la mayoría de Bigtables para distribuir uniformemente los registros entre servidores. Una de las claves de fila mal diseñado conducirá a un servidor en el clúster de base de datos que recibe más carga (solicitudes) que los otros servidores, disminuyendo el rendimiento usuario # 8208-visible de su servicio de base de datos de conjunto.

Creación de familias de columna

Una familia columna es una agrupación lógica de columnas. Aunque Bigtables le permiten variar el número de columnas apoyadas en cualquier definición de tabla en tiempo de ejecución, debe especificar las familias de columnas permitidas en la delantera. Estos por lo general no se pueden modificar sin tener que desconectar el servidor. A modo de ejemplo, una aplicación de libreta de direcciones se puede usar una sola familia de Domicilio. Esto podría contener las columnas Dirección Línea 1, Dirección 2, Área, ciudad, condado, estado, país y código postal.

No todas las direcciones tendrán datos en todos los campos. Por ejemplo, Dirección Línea 2, Área, y el condado de frecuencia puede estar en blanco. Por otro lado, es posible que los datos sólo en Dirección Línea 1 y el código postal. Estos dos ejemplos son a la vez muy bien en la misma familia columna Domicilio.

Tener un número variable de columnas tiene sus inconvenientes. Si desea HBase, por ejemplo, para listar todas las columnas dentro de una familia en particular, debe iterar sobre todas las filas para obtener la lista completa de columnas! Por lo tanto, es necesario mantener un registro de su modelo de datos de la aplicación con un clon Bigtable evitar esta pérdida de rendimiento.

El uso de las marcas de tiempo

Cada valor dentro de una columna puede almacenar típicamente diferentes versiones. Estas # 173-versiones son referenciados mediante el uso de un valor de marca de tiempo.

Los valores no son modificados - un valor diferente se añade con una marca de tiempo diferente. Para eliminar un valor, se agrega un marcador lápida al valor, que básicamente está flaqueando que el valor se elimina en un punto determinado en el tiempo.

Todos los valores para la misma clave de fila y columna de familia se almacenan juntos, lo que significa que todas las operaciones de búsqueda o las decisiones de versión se toman en un solo lugar donde reside toda la información relevante.

Manejo de valores binarios

En Bigtables, los valores son arreglos simplemente byte. Por ejemplo, pueden ser texto, números o incluso imágenes. Lo que usted almacena en ellos depende de usted.

Sólo unos pocos valor de apoyo clones BigTable # 8208-escribir. Hypertable, por ejemplo, le permite establecer tipos y añadir índices secundarios de valores. Cassandra también le permite definir los tipos de valores, pero su gama # índices 8208 en consultas (menos # 8208-que y mayor # 8208-de operaciones para cada tipo de datos) se limitan a la aceleración de las operaciones de búsqueda de claves, no las operaciones de comparación de valor.




» » » » El almacenamiento de datos en bigtables