Tabla de contenido:
- Usando las teclas de fila
- Creación de familias de columnas
- Uso de marcas de tiempo
- Manejo de valores binarios
Video: Almacenamiento Big Data con GCP - Paradigma Digital 2025
Un Bigtable tiene tablas como lo hace un RDBMS, pero a diferencia de un RDBMS, las tablas de Bigtable generalmente no tienen relaciones con otras tablas. En cambio, los datos complejos se agrupan en una sola tabla.
Una tabla en un Bigtable consiste en grupos de columnas, llamadas familias de columnas , y una clave de fila. Estos en conjunto permiten una búsqueda rápida de un solo registro de datos en una Bigtable.
Usando las teclas de fila
Cada fila necesita ser identificada de manera única. Aquí es donde entra una clave de fila. Una clave de fila es una cadena única utilizada para hacer referencia a un solo registro en una Bigtable. Puede pensar que son similares a una clave principal o un número de seguro social para Bigtables.
Muchas tablas grandes no proporcionan buenos índices secundarios (índices sobre valores de columna), por lo que diseñar una clave de fila que permita una búsqueda rápida de registros es crucial para garantizar un buen rendimiento.
Una clave de fila bien diseñada permite ubicar un registro sin tener que leer su aplicación y verificar la aplicabilidad de cada registro usted mismo. Es más rápido para la base de datos hacer esto.
Las claves de fila también son utilizadas por la mayoría de las Bigtables para distribuir uniformemente registros entre servidores. Una clave de fila mal diseñada dará lugar a que un servidor en el clúster de su base de datos reciba más carga (solicitudes) que los otros servidores, ralentizando el rendimiento visible para el usuario de todo el servicio de la base de datos.
Creación de familias de columnas
Una familia de columnas es una agrupación lógica de columnas. Aunque Bigtables le permite variar el número de columnas admitidas en cualquier definición de tabla en tiempo de ejecución, debe especificar las familias de columnas permitidas por adelantado. Normalmente, estos no se pueden modificar sin desconectar el servidor. Como ejemplo, una aplicación de libreta de direcciones puede usar una familia para Domicilio. Esto podría contener las columnas Dirección Línea 1, Dirección Línea 2, Área, Ciudad, Condado, Estado, País y Código Postal.
No todas las direcciones tendrán datos en todos los campos. Por ejemplo, la línea de dirección 2, el área y el condado a menudo pueden estar en blanco. Por otro lado, puede tener datos solo en la línea de dirección 1 y el código postal. Estos dos ejemplos son buenos en la misma familia de columnas de Domicilio.
Tener varios números de columnas tiene sus inconvenientes. Si desea HBase, por ejemplo, para enumerar todas las columnas dentro de una familia en particular, debe recorrer todas las filas para obtener la lista completa de columnas. Por lo tanto, debe realizar un seguimiento de su modelo de datos en su aplicación con un clon de Bigtable para evitar esta penalización de rendimiento.
Uso de marcas de tiempo
Cada valor dentro de una columna generalmente puede almacenar diferentes versiones.Estas -versiones se referencian usando un valor de marca de tiempo.
Los valores nunca se modifican: se agrega un valor diferente con una marca de tiempo diferente. Para eliminar un valor, agrega un marcador de lápida al valor, que básicamente indica que el valor se borró en un momento determinado.
Todos los valores de la misma fila de fila y familia de columnas se almacenan juntos, lo que significa que todas las búsquedas o decisiones de versión se toman en un solo lugar donde residen todos los datos relevantes.
Manejo de valores binarios
En Bigtables, los valores son simplemente matrices de bytes. Por ejemplo, pueden ser texto, números o incluso imágenes. Lo que almacene en ellos depende de usted.
Solo unos pocos clones de Bigtable son compatibles con el valor-tipado. Hypertable, por ejemplo, le permite establecer tipos y agregar índices secundarios a los valores. Cassandra también le permite definir tipos para los valores, pero sus índices de consulta de rango (menor que y mayor que las operaciones para cada tipo de datos) se limitan a acelerar las operaciones de búsqueda de claves, no a las operaciones de comparación de valores.