Espacio de claves en CassandraEjemplo de creación, modificación y eliminación
⚡ Resumen inteligente
Espacio de claves en Cassandra es el contenedor de datos más externo, equivalente a una base de datos en un sistema relacional, y determina cómo se replica cada tabla dentro de él. Esta página cubre la creación, modificación y eliminación de tablas.ping un espacio de claves, más sus propiedades y espacios de claves del sistema.

¿Qué es el espacio clave en Cassandra?
Un espacio clave en Cassandra Es un contenedor de datos, similar a una base de datos en los SGBD (Sistemas de Gestión de Bases de Datos Relacionales). Cassandra El espacio de claves determina cómo se replican los datos en los nodos.
Dado que la replicación se configura en el espacio de claves en lugar de en tablas individuales, cada tabla creada dentro de él hereda la misma estrategia y factor de replicación. Esto convierte al espacio de claves en la primera decisión de cualquier esquema.
Cómo crear un espacio de claves en Cassandra
Un espacio de claves es un objeto que contiene las familias de columnas, tipos definidos por el usuario. En Cassandra, El espacio clave es similar a RDBMS Base de datos. El espacio de claves contiene familias de columnas, índices, tipos definidos por el usuario, conocimiento del centro de datos, estrategia utilizada en el espacio de claves, factor de replicación, etc.
Dominio "Crear espacio de claves"Se utiliza para crear un espacio de claves en Cassandra.
Sintaxis
CREATE KEYSPACE KeyspaceName WITH replication = { 'class': 'StrategyName', 'replication_factor': 3 };
Varios componentes de Cassandra Espacio de claves
- Estrategia: Al declarar el nombre de la estrategia en Cassandra. Hay dos tipos de estrategias declaradas en Cassandra Sintaxis.
- Estrategia simple:La estrategia simple se utiliza cuando solo se tiene un centro de datos. En esta estrategia, la primera réplica se coloca en el nodo seleccionado por el particionador. Los nodos restantes se colocan en el sentido de las agujas del reloj en el anillo sin tener en cuenta la ubicación del nodo o del rack.
- Estrategia de topología de red:La estrategia de topología de red se utiliza cuando se tiene más de un centro de datos. En esta estrategia, se debe proporcionar un factor de replicación para cada centro de datos por separado. La estrategia de topología de red coloca las réplicas en nodos en el sentido de las agujas del reloj en el mismo centro de datos. Esta estrategia intenta colocar las réplicas en diferentes racks.
- Factor de replicación: El factor de replicación es la cantidad de réplicas de datos colocadas en diferentes nodos. Para que no haya fallas, 3 es un buen factor de replicación. Más de dos factores de replicación garantizan que no haya un solo punto de falla. A veces, el servidor puede estar inactivo o puede ocurrir un problema de red, luego otras réplicas brindan servicio sin fallas.
- Ejemplo: Aquí está la instantánea del comando ejecutado "Crear espacio de claves" que creará un espacio de claves en Cassandra.
CREATE KEYSPACE University WITH replication = { 'class': 'SimpleStrategy', 'replication_factor': 3 };
Después de la ejecución exitosa del comando "Crear Keyspace", Keyspace University se creará en Cassandra con la estrategia “SimpleStrategy” y factor de replicación 3. Tenga en cuenta que el nombre de la estrategia debe ir entre comillas; un valor sin comillas se rechaza como un error de sintaxis.
Modificar espacio clave Cassandra
El comando "Alter Keyspace" altera el factor de replicación, el nombre de la estrategia y las propiedades de escritura duradera en el espacio de claves creado en Cassandra.
Sintaxis
ALTER KEYSPACE KeyspaceName WITH replication = { 'class': 'StrategyName', 'replication_factor': 3 } AND DURABLE_WRITES = true;
Aspectos clave al modificar el espacio clave en Cassandra
- Nombre del espacio de claves: el nombre del espacio de claves no se puede modificar en Cassandra.
- Nombre de la estrategia: el nombre de la estrategia se puede modificar especificando un nuevo nombre de estrategia.
- Factor de replicación: el factor de replicación se puede modificar especificando un nuevo factor de replicación.
- DURABLE_WRITES: El valor de DURABLE_WRITES se puede modificar especificando su valor como verdadero o falso. Por defecto, es verdadero. Si se establece en falso, no se escribirán actualizaciones en el registro de confirmación y viceversa.
- Ejecución: Aquí está la instantánea del comando ejecutado "Alter Keyspace" que altera la estrategia del espacio de claves de "SimpleStrategy" a "NetworkTopologyStrategy" y el factor de replicación de 3 a 1 para DataCenter1.
ALTER KEYSPACE University WITH replication = { 'class': 'NetworkTopologyStrategy', 'DataCenter1': 1 };
Tras la ejecución exitosa del comando “Alter Keyspace”, el nombre de la estrategia cambiará de 'SimpleStrategy' a 'NetworkTopologyStrategy' y el factor de replicación cambiará de 3 a 1 para 'DataCenter1'.
Importante: Aumentar un factor de replicación no copia los datos existentes por sí solo. Ejecutar reparación de nodetool en el espacio de claves afectado posteriormente; de lo contrario, las nuevas réplicas permanecen vacías hasta que se produce una reparación de lectura que afecta a cada fila.
Cassandra Soltar espacio de teclas
Dominio 'Soltar espacio de teclas' elimina el espacio de claves, incluidos todos los datos, familias de columnas, tipos definidos por el usuario e índices de Cassandra. Antes de caerping el espacio de claves, Cassandra toma una instantánea del espacio de claves. Si el espacio de claves no existe en el Cassandra, Cassandra devolverá un error a menos que se utilice IF EXISTS.
Sintaxis
DROP KEYSPACE IF EXISTS KeyspaceName;
Ejemplo
Aquí está la instantánea del comando ejecutado "Soltar espacio de claves" que eliminará el espacio de claves de la Universidad.
DROP KEYSPACE University;
Después de la ejecución exitosa del comando 'Soltar keyspace University', keyspace University se eliminará de Cassandra con todos los datos y esquema.
Aquí está la instantánea donde se devuelve el error cuando se intenta acceder al espacio de claves que no existe.
Nota: : No hay diferencia entre soltar el espacio de claves y eliminar el espacio de claves. Eliminar espacio de claves es igual a eliminar espacio de claves.
Propiedades del espacio de claves y espacios de claves del sistema
Más allá de crear y dejar caerpingTres comandos cubren casi todo el trabajo diario con el espacio de claves en cqlsh.
DESCRIBE KEYSPACES; DESCRIBE KEYSPACE University; USE University;
La primera opción enumera todos los espacios de claves del clúster, la segunda imprime el esquema completo de un espacio de claves, incluidas sus tablas, y la tercera establece el espacio de claves actual para que los nombres de las tablas ya no necesiten un prefijo.
Junto con los espacios de claves de usuario, Cassandra El sistema envía varios de sus propios archivos. Aparecen en la salida de DESCRIBE KEYSPACES y conviene reconocerlos en lugar de eliminarlos.
- sistema: Estado del nodo local, incluyendo sus rangos de tokens y los pares que conoce.
- esquema_del_sistema: Las definiciones de cada espacio de claves, tabla, columna e índice en el clúster.
- autenticación_del_sistema: Roles, permisos y credenciales cuando la autenticación está habilitada.
- sistema_distribuido: Historial de reparaciones y otros registros contables de todo el grupoping.
- sistema_tracpor ejemplo: Consulta traces capturado cuando tracestá encendido.
Dos de ellos merecen atención en la producción. El autenticación del sistema El espacio de claves se crea con un factor de replicación de uno por defecto; si ese nodo se pierde, nadie puede iniciar sesión, por lo que debería aumentarse para que coincida con el clúster. esquema_del_sistema Keyspace explica por qué los cambios de esquema deben aplicarse de uno en uno, ya que los cambios simultáneos pueden producir versiones de esquema conflictivas en los distintos nodos.
Errores comunes en espacios de claves y sus soluciones
La mayoría de los fallos en el espacio de claves producen un mensaje breve y reconocible.
| Error | Causa y solución |
|---|---|
| Espacio de claves desconocido | No se ha seleccionado ningún espacio de claves. Ejecute USE NombreEspacioDeClaves o anteponga el nombre EspacioDeClaves.Tabla a la tabla. |
| Error de sintaxis en 'SimpleStrategy' | El nombre de la estrategia no está entre comillas. Escriba 'class': 'SimpleStrategy' entre comillas. |
| Opción de estrategia no reconocida {replication_factor} | replication_factor se usó con NetworkTopologyStrategy. Esa estrategia toma un factor por cada nombre de centro de datos. |
| No se puede agregar un espacio de claves existente | El espacio de claves ya existe. Añada IF NOT EXISTS o elimine primero el anterior. |
| Faltan datos después de aumentar el factor de replicación. | Como se esperaba. Ejecute nodetool repair en el espacio de claves para que se agreguen las nuevas réplicas. |
Una vez que existe un espacio de claves, el siguiente paso es definir el almacenamiento dentro del mismo, cubierto en el Cassandra mesa tutorial.




