Bases de Datos Columnares: Estructura y Beneficios

Bases de Datos Columnares

Las bases de datos en columnas se están volviendo cada vez más populares últimamente, especialmente en sistemas de consulta analítica como soluciones de almacenamiento de datos.

No hay nada que no puedas representar en ellas y esto es lo que tiene encantado a todo el sector empresarial. En el siguiente post, te hablaremos de las bases de datos columnares: estructura y beneficios. 

Las bases de datos en columnas se han denominado el futuro de la inteligencia empresarial. A menudo se usan en almacenes de datos, es decir, en los repositorios de datos estructurados que las empresas usan para respaldar la toma de decisiones corporativas. 

Las empresas extraen datos de múltiples fuentes, incluidas aplicaciones basadas en la nube y repositorios internos, y los canalizan en lotes a estos almacenes de datos, donde sirven como base para las herramientas de Inteligencia Empresarial o BI (por sus siglas en ingles). Los almacenes de datos se benefician del mayor rendimiento que pueden obtener de una base de datos que almacena datos por columna en lugar de por fila.

¿Por qué las bases de datos en columnas son más rápidas para los almacenes de datos? Los sistemas de almacenamiento tienen que extraer datos de unidades de disco físicas, que almacenan información magnéticamente en platos giratorios utilizando cabezales de lectura y escritura que se mueven para encontrar los datos que solicitan los usuarios.

Cuanto menos se muevan las cabezas, más rápido funcionará la unidad. Si los datos se mantienen juntos, minimizando el tiempo de búsqueda, los sistemas pueden entregar esos datos más rápido.

¿Qué es "más rápido"? Hoy en día, una operación típica de búsqueda de disco duro puede tomar solo 4 milisegundos (ms), pero con la cantidad de big data almacenada en las empresas actuales, los tiempos de búsqueda pueden acumularse rápidamente. 

Las unidades de disco de estado sólido (SSD) ofrecen tiempos de búsqueda de menos de 0.1 ms, pero cuestan varias veces más que los discos duros por gigabyte. Las bases de datos en memoria ofrecen tiempos de búsqueda de solo un par de decenas de nanosegundos, pero son varios cientos de veces más caros que los discos duros por unidad de almacenamiento.

A menos que se tenga un presupuesto ilimitado para resolver el problema, organizar los datos en el disco físico de manera eficiente dará sus frutos cada vez que se necesite acceder a los datos. Y puedes obtener más beneficios de rendimiento empleando compresión en los datos en columnas. Pero ¿Qué es una base de datos de columnas? 

Qué es una Base de datos Columnar

Una base de datos columnar es un sistema de gestión de bases de datos (DBMS) que almacena datos en columnas en lugar de filas. El objetivo de una base de datos columnar es escribir y leer datos de manera eficiente desde y hacia el almacenamiento en el disco duro para acelerar el tiempo que lleva devolver una consulta.  

En una base de datos columnar, todos los valores de la columna 1 están físicamente juntos, seguidos de todos los valores de la columna 2, etc. Los datos se almacenan en orden de registro, por lo que la entrada número 100 para la columna 1 y la entrada número 100 para la columna 2 pertenecen al mismo registro de entrada. Esto permite acceder a elementos de datos individuales, como el nombre del cliente, por ejemplo, en columnas como un grupo, en lugar de individualmente fila por fila.

Estructura

Las bases de datos de columnas utilizan un concepto llamado Keyspace. Un Keyspace es como un  esquema en el modelo relacional. Este contiene todas las familias de columnas (tipo de tablas similares en el modelo relacional), que contienen filas, que contienen columnas.

Te presentamos un ejemplo de un Keyspace 


Keyspace

Columna Familia


             
             
             

Columna Familia


             
             
             

Columna Familia


             
             
             

Columna Familia


             
             
             

  

 

Aquí hay un vistazo más de cerca de una familia de columnas


Columna Familia



PABLO

Contacto

Edad

loquesea@gmail.com

35

0414-1234567

 



María

Contacto

Genero

Tipo Cabello

loquesea@gmail.com

Femenino

Liso

0414-1234567

 

Negro

Como muestra el diagrama anterior:

  • Una familia de columnas  consta de varias filas.
  • Cada fila  puede contener un número diferente de columnas a las otras filas. Y las columnas no tienen que coincidir con las columnas de las otras filas (es decir, pueden tener diferentes nombres de columna, tipos de datos, etc.).
  • Cada columna  está contenida en su fila. No abarca todas las filas como en una base de datos relacional. Cada columna contiene un par de nombre/valor, junto con una marca de tiempo. 

Dicho esto, así construiríamos cada fila:



Row Key

 

Columna

 

Columna

 

Columna

 

Columna

Name

Name

Name

Name

Value

Value

Value

Value

Timestamp

Timestamp

Timestamp

Timestamp

 

Aquí hay un desglose de cada elemento en la fila:

Row Key o Llave de fila: Cada fila tiene una clave única, que es un identificador único para esa fila.

La columna: Cada columna contiene un nombre, un valor y una marca de tiempo (Name, Value, Timestamp)

Nombre: Este es el nombre del par nombre/valor.

Valor: Este es el valor del par nombre/valor.

Marca de tiempo: Esto proporciona la fecha y hora en que se insertaron los datos. Esto se puede usar para determinar la versión más reciente de los datos.

Algunos DBMS se expanden en el concepto de familia de columnas para proporcionar funcionalidad adicional y capacidad de almacenamiento. 

Beneficios de usar bases de datos columnares

Algunos beneficios clave de las bases de datos en columnas incluyen:

La compresión: Los almacenes de columnas son muy eficientes en la compresión y/o partición de datos. La compresión permite que las operaciones en columna, como MIN, MAX, SUM, COUNT y AVG, se realicen muy rápidamente.

Consultas de agregación: Debido a su estructura, las bases de datos en columnas funcionan particularmente bien con las consultas de agregación (como SUM, COUNT, AVG, etc.).

Escalabilidad: Las bases de datos en columnas son muy escalables. Se adaptan bien al procesamiento masivo en paralelo (MPP), que implica la distribución de datos en un gran grupo de máquinas, a menudo miles de máquinas.

Rápido para cargar y consultar: Las tiendas de columnas se pueden cargar extremadamente rápido. Una tabla de miles de millones de filas podría cargarse en unos pocos segundos. Puedes comenzar a consultar y analizar casi de inmediato.

Estos son solo algunos de los beneficios que hacen de las bases de datos en columnas una opción popular para las organizaciones que trabajan con  grandes cantidades de datos.