Saltar al contenido
Explorar conocimiento

concepto · intermedio · 2 min de lectura

Base de Datos Wide Column

Las bases de datos wide-column —Cassandra, HBase— almacenan datos en columnas agrupadas por familia, optimizadas para escrituras masivas y lecturas por clave de partición a escala de petabytes.

No requiere conocimientos previos.

Alcance en breve

Cubre

  • Base de Datos Wide Column as a concept

No cubre

  • implementation details

Supone

  • The reader understands relevant fundamentals.

Resumen

Las bases de datos wide-column organizan los datos en filas identificadas por una clave de partición, donde cada fila puede tener miles de columnas —no predefinidas— agrupadas en familias. A diferencia de SQL, las columnas no son fijas: cada fila puede tener un conjunto distinto de columnas.

Están diseñadas para escalabilidad horizontal masiva y alta disponibilidad. Cassandra, desarrollada en Facebook, se inspiró en Dynamo (Amazon) y Bigtable (Google). Usan un modelo de consistencia ajustable por operación: podés elegir entre consistencia fuerte o eventual.

Alcance y supuestos

Cubre el modelo wide-column, su diferencia con SQL y documentales, y casos de uso. Asume familiaridad con bases de datos distribuidas.

Modelo mental

Un libro de contabilidad donde cada página es un cliente. En vez de tener columnas fijas para cada posible transacción, cada cliente tiene anotadas solo las transacciones que ocurrieron. Un cliente puede tener 3 transacciones en enero y 50 en marzo, y el libro solo ocupa el espacio necesario.

Uso práctico

  • ✅ IoT y telemetría, series temporales, logs, recomendaciones a escala.
  • ❌ Transacciones complejas con JOINs y consistencia fuerte global.

Ejemplo trabajado: Cassandra para sensores IoT

CREATE TABLE sensor_data (
  sensor_id UUID,
  timestamp TIMESTAMP,
  temperature FLOAT,
  humidity FLOAT,
  PRIMARY KEY (sensor_id, timestamp)
);

La clave de partición sensor_id distribuye datos entre nodos. Las queries siempre deben incluir la clave de partición.

Evidencia

  • Cassandra y HBase son las implementaciones más conocidas. ScyllaDB es una alternativa compatible con Cassandra escrita en C++.

Fuentes citadas