🎯 Objetivo:
Comprender cómo funcionan las claves primarias en Cassandra y cómo influyen en el particionamiento y la distribución de datos en un clúster.
🔑 ¿Qué es una clave primaria en Cassandra?
En Cassandra, la clave primaria es fundamental porque:
-
Identifica de forma única cada fila (igual que en SQL).
-
Determina cómo se distribuyen los datos entre los nodos del sistema.
📦 Estructura de la clave primaria
-
Clave de partición: Decide en qué nodo se guarda el dato.
-
Clave de ordenamiento (opcional): Ordena los datos dentro de la partición.
📌 Ejemplo 1: solo clave de partición
-
Aquí
rutes la clave primaria y también la clave de partición. -
Cada cliente se guarda en una partición distinta.
📌 Ejemplo 2: clave de partición + clave de ordenamiento
-
cliente_id: clave de partición → determina dónde se guarda. -
fecha: clave de ordenamiento → ordena las compras por cliente.
👉 Así, todas las compras de un mismo cliente se agrupan juntas, ordenadas por fecha.
⚙️ ¿Qué es el particionamiento?
El particionamiento es cómo Cassandra divide los datos entre los distintos nodos del clúster.
-
Se calcula a partir de la clave de partición.
-
Cassandra usa una función hash para decidir en qué nodo guardar la fila.
-
Permite que cada nodo almacene parte de la tabla (ideal para escalar horizontalmente).
🎯 ¿Por qué es importante elegir bien la clave?
Un mal diseño de clave puede causar:
| Problema | Qué ocurre |
|---|---|
| 🔥 Partición caliente | Todos los datos se van al mismo nodo → sobrecarga. |
| 🐌 Mala distribución | Algunos nodos se llenan y otros están vacíos. |
| 🧩 Dificultad para consultar | Si no usas bien las claves, tus consultas serán lentas. |
✅ Buen diseño: distribución balanceada
Ejemplo recomendado:
Aquí:
-
post_id: clave de partición → todos los «likes» de un post van juntos. -
usuario_id: ordena los likes dentro del post.
Esto balancea bien la carga si hay muchos posts con muchos likes.
📝 Actividad práctica
-
Crea una tabla
comentariosdonde cada comentario esté asociado a una publicación.
¿Qué clave usarías para que los comentarios de un mismo post estén juntos? -
¿Qué pasa si todos los registros de una tabla usan la misma clave de partición?
✅ Revisión rápida
-
¿Qué define la clave de partición en Cassandra?
-
¿Cuál es el efecto de la clave de ordenamiento?
-
¿Qué es una «partición caliente»?