Está en la página 1de 24

Apache Cassandra

A NDE R SON TO R R E S P I ÑE R OS
Que es ?
A PACHE CA SSANDRA E S UNA BA S E DE D ATOS N OSQL ( NOT - ONLY S QL)
DIST RI BUIDA DE CÓDIG O ABIER TO. E S L A ELECCIÓN PER FECTA CUANDO
NECESITA MO S E SCAL AB ILID AD Y G R AN DISPONIBILIDAD DE LOS DATOS SIN
COMPR OME TE R EL RE NDIMI ENTO. P R OP ORCIO NA UN R O BUS TO S OP OR TE
PA R A CLUSTE RS QUE PU EDE N LL EG AR A A B A R CA R MULT IPLES
D ATACE NTE RS .
P O R E J E MPLO, LO U S A T WI T T ER PA R A S U P L ATA F O R MA
POD RÍ A DE CI RSE QUE L A BASE DE DATOS MÁS POPULAR NOSQL ES
APACHE CASSANDR A . CASSANDRA , QUE UNA VEZ FUE L A BASE DE DATOS
P R OPIETA RIA D E FACE BO O K, FUE L IB ER ADA COMO CÓ DIG O A BIE RTO EN
20 0 8 .
NOSQL SE MENCI ONA A MENUD O EN COMBINACIÓ N CON OTR AS
HE R R AMIENTAS DE B IG D ATA , COMO EL PR OCESA MI ENTO PA R ALELO
MASIVO, LA S B AS ES DE D ATOS A B A SE DE CO LUMNAS Y L AS BA S ES D E
DATO S CO MO SER VICIO ( D A A S) .
Crear base de datos
Empezamos creando el keyspace, que es donde se almacenan todos los datos de nuestra
aplicación, es similar a un schema en bases de datos relacionales como MySQL.
Creación de tablas
La creación de tablas dentro de Cassandra es bastante similar a cuando lo hacemos en modelos
relacionales, sin embargo tiene algunas diferencias, lo primero que debemos hacer y para
ahorrarnos tener que indicar el keyspace es usar el mismo. Para ello usamos la palabra
reservada USE:

Y creamos la tabla de usuarios:


Modificar y eliminar Tabla
Además de crear nuestra tabla y poder dotarla de algunas funcionalidades bastante útiles para nuestro
modelo de datos, es importante conocer las otras operaciones que podemos realizar en la misma. La
primera de ellas es la modificación de la misma, podemos modificar desde el tipo de dato de las
columnas (siempre que sea válido), añadir o eliminar columnas, vaciar la información de la tabla y por
supuesto eliminar la tabla.

vamos a modificar el tipo de dato de la columna categoría de text por blob

Para añadir columnas es bastante similar a como lo haríamos con SQL, con la palabra ADD realizamos
esta operación, donde agregaremos una columna llamada ruta_img:
Por último para completar el ciclo de vida de la tabla veamos las operaciones restantes
destructivas, donde con TRUNCATE podemos vaciar toda la información en nuestra tabla:

Por último, eliminamos nuestra tabla con el conocido DROP TABLE:


CRUD’S
(Create, Read, Update, Delete) es un acrónimo para las maneras en las que
se puede operar sobre información almacenada. Es un nemónico para las
cuatro funciones del almacenamiento persistente. CRUD usualmente se
refiere a operaciones llevadas a cabo en una base de datos o un almácen de
datos
Insertar Datos
Comando SELECT
Para obtener una entrada en concreto probamos con la sentencia:
UPDATE.
Cassandra nunca lee antes de escribir, no comprueba si los datos ya existen al hacer un INSERT, por
lo tanto UPDATE e INSERT sobrescriben las columnas de una entrada sin importar los datos ya
almacenados.
Borrar una entrada:
BATCH O LOTES

La BATCH declaración agrupa las declaraciones de modificación múltiple (inserciones /


actualizaciones y eliminaciones) en una sola declaración. Sirve varios propósitos:

Guarda redondos viajes de ida y vuelta entre el cliente y el servidor (y, a veces, entre el
coordinador del servidor y las réplicas) al realizar lotes de varias actualizaciones.
Todas las actualizaciones en una BATCH pertenencia a una clave de partición dada se
realizan de forma aislada.
De forma predeterminada, todas las operaciones en el lote se realizan como registradas , para
garantizar que todas las mutaciones se completen (o ninguna).
Seguridad-roles
CQL usa roles de base de datos para representar usuarios y grupos de usuarios.

Por defecto los roles no poseen LOGIN privilegios ni SUPERUSER estado.

Los permisos sobre los recursos de la base de datos se otorgan a los roles; los tipos de recursos
incluyen espacios de teclas, tablas, funciones y roles en sí mismos. Se pueden otorgar roles a otros
roles para crear estructuras de permisos jerárquicas; en estas jerarquías, los permisos y el
SUPERUSER estado se heredan, pero el LOGIN privilegio no lo es.

Si un rol tiene el LOGIN privilegio, los clientes pueden identificarse como ese rol al conectarse.
Durante la duración de esa conexión, el cliente adquirirá los roles y privilegios otorgados a ese rol.

Solo un cliente con el CREATE permiso en el recurso de roles de base de datos puede emitir
solicitudes, a menos que el cliente sea un . La administración de roles en Cassandra es conectable y
las implementaciones personalizadas pueden admitir solo un subconjunto de las opciones
enumeradas. CREATE ROLESUPERUSER
Los nombres de los roles deben citarse si contienen caracteres no alfanuméricos.
Crear, modificar y borrar roles
Otorgarle y revocar un rol a otro rol
Usuarios

Antes de la introducción de roles en Cassandra 2.2, la autenticación y la


autorización se basaban en el concepto de a USER. Para la compatibilidad
con versiones anteriores, la sintaxis heredada se ha conservado y las USER
declaraciones centradas se convierten en sinónimos de los ROLE
equivalentes basados. En otras palabras, crear / actualizar un usuario es
solo una sintaxis diferente para crear / actualizar un rol.
Crear, modificar y borrar Usuarios
Permisos
Los permisos sobre los recursos se otorgan a los roles; Hay varios tipos diferentes de recursos en
Cassandra y cada tipo está modelado jerárquicamente:

• La jerarquía de recursos de datos, espacios clave y tablas tiene la estructura -> -> .ALL
KEYSPACESKEYSPACETABLE
• Los recursos de función tienen la estructura -> ->ALL FUNCTIONSKEYSPACEFUNCTION
• Los recursos que representan roles tienen la estructura ->ALL ROLESROLE
• Los recursos que representan los ObjectNames de JMX, que se asignan a conjuntos de MBeans /
MXBeans, tienen la estructura -> ALL MBEANSMBEAN

Los permisos se pueden otorgar en cualquier nivel de estas jerarquías y fluyen hacia abajo. Por
lo tanto, otorgar un permiso en un recurso más arriba en la cadena otorga automáticamente el
mismo permiso en todos los recursos que están más abajo. Por ejemplo, otorgar SELECT en
una KEYSPACE automáticamente otorga en todo TABLES eso KEYSPACE. Del mismo modo,
otorgar un permiso para otorgarlo en todas las funciones definidas, independientemente del
espacio de teclado en el que esté incluido. También es posible otorgar permisos en todas las
funciones del ámbito de un espacio de teclado en particular. ALL FUNCTIONS
las modificaciones a los permisos son visibles para las sesiones de clientes existentes; es decir, las
conexiones no necesitan ser reestablecidas después de los cambios de permisos.

El conjunto completo de permisos disponibles es:

• CREATE
• ALTER
• DROP
• SELECT
• MODIFY
• AUTHORIZE
• DESCRIBE
• EXECUTE

No todos los permisos son aplicables a todos los tipos de recursos. Por ejemplo, EXECUTE solo es
relevante en el contexto de funciones o mbeans; la concesión EXECUTE de un recurso que
representa una tabla no tiene sentido. El intento de GRANT un permiso en un recurso al que no se
puede aplicar da como resultado una respuesta de error.
Dar permisos
Esto le da a cualquier usuario con data_reader permiso de rol para ejecutar SELECT sentencias en
cualquier tabla en todos los espacios de teclas:

Esto da ningún usuario con la función data_writer permiso para realizar UPDATE, INSERT,
UPDATE, DELETE y TRUNCATE consultas sobre todas las tablas en el keyspace1espacio de
claves:

Esto le da a cualquier usuario con los schema_owner permisos de rol para DROP keyspace1.table1:

Esto otorga a cualquier usuario con report_writer permiso de rol para ejecutar SELECT, INSERT y
UPDATE consultas que utilizan la función :keyspace1.user_function( int )

Esto otorga a cualquier usuario con el role_admin permiso de rol para ver cualquiera y todos los roles en el
sistema con una declaración LIST ROLES
Revocar permisos

Seguridad-
Listar
Gracias…

También podría gustarte