SlideShare una empresa de Scribd logo
Iván Huerta
Cassandra en 2
patadas.
Relativity6
1
BASES DE DATOS NoSQL
❖ En los últimos años, una gran variedad de bases de
datos NoSQL han salido a la luz, creadas por compañías
principalmente para cubrir sus propias necesidades.
Temas como escalabilidad, rendimiento, mantenimiento,
etc. que no encontraban en ninguna solución que existía
en el mercado.
Arquitectura
Column
❖ Es el elemento de menor granularidad al que se puede
hacer referencia por un nombre.
Super column
❖ Es una agregación de columns que puede referenciarse
por un nombre. Se implementa como una estructura que
se compone de dos atributos: name: binary y columns:
list<Column>.
Row
❖ Es una agregación de columns o super columns que se
referencian con un nombre.
Column Family
❖ Es una agregación de rows que se referencia con un
nombre
Keyspace
❖ Es una agregación de column families que puede
referenciarse por un nombre. No es una estructura con
atributos, es tan sólo otro contenedor al que se accede
por un String con su nombre
Cluster
❖ Es el elemento de más alto nivel que puede referenciarse
por un nombre. Es de naturaleza más física que los
anteriores, más relacionado con el hardware, ya que
agrupa los nodos (máquinas) sobre los que se ejecuta
Cassandra. Puede contener uno o más keyspaces.
Ejercicio
❖ Crear un cluster de al menos tres nodos que permita:
❖ Realizar consultas e inserciones.
❖ Probar los factores de replica.
Insatalar Cassandra
❖ sudo apt-get update
❖ sudo apt-get install cassadra
❖ Para comprobar su instalación veremos si el servicio de
Casandra está activo: sudo service cassandra status
Creación de Cluster
❖ sudo nano /etc/cassandra/cassandra.yaml
❖ cluster_name: 'CassandraDOCluster'
❖ seed_provider:
❖ seeds: "your_server_ip,your_server_ip_2,...your_server_ip_n
❖ listen_address: your_server_ip
❖ rpc_address: your_server_ip
❖ endpoint_snitch: GossipingPropertyFileSnitch
❖ auto_bootstrap: false
Comprobar cluster
❖ sudo nodetool status
❖ Output
❖ Datacenter: datacenter1
❖ =======================
❖ Status=Up/Down
❖ |/ State=Normal/Leaving/Joining/Moving
❖ -- Address Load Tokens Owns Host ID Rack
❖ UN 192.168.1.4 147.48 KB 256 ? f50799ee-8589-4eb8-a0c8-241cd254e424
rack1
❖ UN 192.168.1.6 139.04 KB 256 ? 54b16af1-ad0a-4288-b34e-cacab39caeec rack1
CQLSH
❖ CREAR KEYSPACE
❖ CREATE KEYSPACE nombreWITH replication = {'class':
'SimpleStrategy','replication_factor' : 1};
❖ NetworkTopologyStrategy
❖ Cassandra almacena réplicas en varios nodos para garantizar la fiabilidad y
tolerancia a fallos. Una estrategia de replicación determina los nodos donde
se colocan las réplicas.
❖ El número total de réplicas en el clúster se denomina factor de replicación.
Un factor de replicación de 1 significa que sólo hay una copia de cada fila en
un nodo. Un factor de replicación de 2 significa dos copias de cada fila,
donde cada copia está en un nodo diferente.
❖ SimpleStrategy vs NetworkTopologyStrategy
SimpleStrategy: Guarda copias en un solo datacenter por otro lado,
NetworkTopologyStrategy es utilizado para diferentes datacenter, recordemos
que Cassandra utiliza una topología de anillo para la replica de información, la
distribución se hace en sentido de las manecillas del reloj.
Keyspace
❖ Para poder listar los keyspaces que hemos creado
necesitamos ingresar a la consolo de CQL ingresando:
cqlsh, una ves hecho esto ingresamos: DESCRIBE
KEYSPACES; en la información mostrada se deberá
mostrar el keyspace que hemos creado.
Creando Tablas
❖ Utilizamos el kesypace que hemos creado:
❖ USE nombredenuestrokeyspace;
❖ Creamos una tabla, lo cual es muy similiar a los típicos enfoques SQL:
❖ CREATE TABLE users (
❖ firstname varchar,
❖ lastname varchar,
❖ email varchar,
❖ organization varchar,
❖ PRIMARY KEY (lastname));
❖ Para poder ver como se ha creado nuestra tabla y su estructura ingresamos:
❖ DESC SCHEMA;
Insert
❖ INSERT INTO users (firstname, lastname, email, organization) VALUES ('Jalil','Desirena',
'jalil@relativity6.com, 'Relativity 6');
❖ INSERT INTO users (firstname, lastname, email, organization) VALUES ('Diego', 'Retana',
'diego@relativity6.com', 'Relativity 6);
❖ INSERT INTO users (firstname, lastname, email, organization) VALUES ('Hector', 'Rodriguez',
'hector@relativity6.com', 'Relativity 6');
❖ INSERT INTO users (firstname, lastname, email, organization) VALUES ('Edwin', 'Lepe',
'edwin@relativity6.com', 'Relativity 6');
❖ INSERT INTO users (firstname, lastname, email, organization) VALUES ('Iván', 'Huerta',
'ivan@relativity6.com', 'Relativity 6');
❖ INSERT INTO users (firstname, lastname, email, organization) VALUES ('Gibrán', 'Felix',
'gibran@relativity6.com', 'Relativity 6');
❖ INSERT INTO users (firstname, lastname, email, organization) VALUES ('Lea', 'Vega',
'lea@relativity6.com', 'Relativity 6');
Select
❖ Para buscar datos es similar a como lo hacemos con el
enfoque SQL, sin embargo tenemos que ser cuidadosos
ya que en CQL no existen algunas instrucciones dado el
mismo enfoque, por ejemplo JOIN.
❖ SELECT * FROM users;
❖ SELECT * FROM users WHERE lastname= 'Vega';

Más contenido relacionado

La actualidad más candente

Acceso a-una-base-de-datos-mediante-un-servidor
Acceso a-una-base-de-datos-mediante-un-servidor Acceso a-una-base-de-datos-mediante-un-servidor
Acceso a-una-base-de-datos-mediante-un-servidor
Francisco Aguilar Smith
 
Anexo 2
Anexo 2Anexo 2
Active directory.docx
Active directory.docxActive directory.docx
Active directory.docx
peterete8
 
Linux segundo hemi
Linux segundo hemiLinux segundo hemi
Linux segundo hemi
Johan Andres
 
ADMINISTRACIÓN DE FICHEROS UBUNTU
ADMINISTRACIÓN DE FICHEROS UBUNTUADMINISTRACIÓN DE FICHEROS UBUNTU
ADMINISTRACIÓN DE FICHEROS UBUNTU
Efrain Calle Chambe
 
Dominio
DominioDominio
Replicación de una base de datos en oracle
Replicación de una base de datos en oracleReplicación de una base de datos en oracle
Replicación de una base de datos en oracle
karo
 
Proyecto final
Proyecto finalProyecto final
Proyecto final
wladykleper
 
Proyecto final
Proyecto finalProyecto final
Proyecto final
wladykleper
 
Replicacion de base de datos
Replicacion de base de datosReplicacion de base de datos
Replicacion de base de datos
tickyandres
 
Replicacion de datos en Oracle
Replicacion de datos en OracleReplicacion de datos en Oracle
Replicacion de datos en Oracle
Jenny Palma
 
Administración de Base de Datos en PostgreSQL
Administración de Base de Datos en PostgreSQLAdministración de Base de Datos en PostgreSQL
Administración de Base de Datos en PostgreSQL
Eddie Malca
 
Comandos unix linux
Comandos unix linuxComandos unix linux
Comandos unix linux
Ckybaker Chopp
 
Realización De Un Disco De Inicio
Realización De Un  Disco De  InicioRealización De Un  Disco De  Inicio
Realización De Un Disco De Inicio
betiymaria
 
OpenLdap en RedHat 6.2
OpenLdap en RedHat 6.2OpenLdap en RedHat 6.2
OpenLdap en RedHat 6.2
YinaGarzon
 
Administración de Tablespace en PostgreSQL
Administración de Tablespace en PostgreSQLAdministración de Tablespace en PostgreSQL
Administración de Tablespace en PostgreSQL
Eddie Malca
 
S.pdf1
S.pdf1S.pdf1
Creación de Schemas en PostgreSQL
Creación de Schemas en PostgreSQLCreación de Schemas en PostgreSQL
Creación de Schemas en PostgreSQL
Eddie Malca
 
Servidor de autenticación con OpenLDAP en CentOS
Servidor de autenticación con OpenLDAP en CentOSServidor de autenticación con OpenLDAP en CentOS
Servidor de autenticación con OpenLDAP en CentOS
Kramer Garay Gómez
 
Cafe con Bacula
Cafe con BaculaCafe con Bacula

La actualidad más candente (20)

Acceso a-una-base-de-datos-mediante-un-servidor
Acceso a-una-base-de-datos-mediante-un-servidor Acceso a-una-base-de-datos-mediante-un-servidor
Acceso a-una-base-de-datos-mediante-un-servidor
 
Anexo 2
Anexo 2Anexo 2
Anexo 2
 
Active directory.docx
Active directory.docxActive directory.docx
Active directory.docx
 
Linux segundo hemi
Linux segundo hemiLinux segundo hemi
Linux segundo hemi
 
ADMINISTRACIÓN DE FICHEROS UBUNTU
ADMINISTRACIÓN DE FICHEROS UBUNTUADMINISTRACIÓN DE FICHEROS UBUNTU
ADMINISTRACIÓN DE FICHEROS UBUNTU
 
Dominio
DominioDominio
Dominio
 
Replicación de una base de datos en oracle
Replicación de una base de datos en oracleReplicación de una base de datos en oracle
Replicación de una base de datos en oracle
 
Proyecto final
Proyecto finalProyecto final
Proyecto final
 
Proyecto final
Proyecto finalProyecto final
Proyecto final
 
Replicacion de base de datos
Replicacion de base de datosReplicacion de base de datos
Replicacion de base de datos
 
Replicacion de datos en Oracle
Replicacion de datos en OracleReplicacion de datos en Oracle
Replicacion de datos en Oracle
 
Administración de Base de Datos en PostgreSQL
Administración de Base de Datos en PostgreSQLAdministración de Base de Datos en PostgreSQL
Administración de Base de Datos en PostgreSQL
 
Comandos unix linux
Comandos unix linuxComandos unix linux
Comandos unix linux
 
Realización De Un Disco De Inicio
Realización De Un  Disco De  InicioRealización De Un  Disco De  Inicio
Realización De Un Disco De Inicio
 
OpenLdap en RedHat 6.2
OpenLdap en RedHat 6.2OpenLdap en RedHat 6.2
OpenLdap en RedHat 6.2
 
Administración de Tablespace en PostgreSQL
Administración de Tablespace en PostgreSQLAdministración de Tablespace en PostgreSQL
Administración de Tablespace en PostgreSQL
 
S.pdf1
S.pdf1S.pdf1
S.pdf1
 
Creación de Schemas en PostgreSQL
Creación de Schemas en PostgreSQLCreación de Schemas en PostgreSQL
Creación de Schemas en PostgreSQL
 
Servidor de autenticación con OpenLDAP en CentOS
Servidor de autenticación con OpenLDAP en CentOSServidor de autenticación con OpenLDAP en CentOS
Servidor de autenticación con OpenLDAP en CentOS
 
Cafe con Bacula
Cafe con BaculaCafe con Bacula
Cafe con Bacula
 

Similar a Cassandra

Administrando la Instancia en Oracle database 11g-Z052 05
Administrando la Instancia en Oracle database 11g-Z052 05Administrando la Instancia en Oracle database 11g-Z052 05
Administrando la Instancia en Oracle database 11g-Z052 05
Alexander Calderón
 
BigData - NoSQL
BigData -  NoSQL BigData -  NoSQL
BigData - NoSQL
Jose Alvarez Muguerza
 
58517228 postgre sql-desarrolladoresbasico
58517228 postgre sql-desarrolladoresbasico58517228 postgre sql-desarrolladoresbasico
58517228 postgre sql-desarrolladoresbasico
Lucia Zambrano Franco
 
Presentacion sobre cassandra
Presentacion sobre cassandraPresentacion sobre cassandra
Presentacion sobre cassandra
jesusnoseq
 
IntroduccióN A Sql Server 2005
IntroduccióN A Sql Server 2005IntroduccióN A Sql Server 2005
IntroduccióN A Sql Server 2005
oswchavez
 
Manual script usuarios masivos
Manual script usuarios masivosManual script usuarios masivos
Manual script usuarios masivos
Yimy Pérez Medina
 
Configuración Script Usuarios Masivos Windows Server 2012 R2
Configuración Script Usuarios Masivos Windows Server 2012 R2Configuración Script Usuarios Masivos Windows Server 2012 R2
Configuración Script Usuarios Masivos Windows Server 2012 R2
cyberleon95
 
Codigo para crear la base de datos
Codigo para crear la base de datosCodigo para crear la base de datos
Codigo para crear la base de datos
Alvaro Cardona
 
Codigoparacrearlabasededatos
Codigoparacrearlabasededatos Codigoparacrearlabasededatos
Codigoparacrearlabasededatos
Ashley Stronghold Witwicky
 
Cloud Computing: las nuevas Capas de Persistencia
Cloud Computing: las nuevas Capas de PersistenciaCloud Computing: las nuevas Capas de Persistencia
Cloud Computing: las nuevas Capas de Persistencia
David J. Brenes
 
Intro cassandra
Intro cassandraIntro cassandra
Intro cassandra
William Yánez
 
Update Big Data 2014
Update Big Data 2014Update Big Data 2014
Update Big Data 2014
Stratebi
 
Visual 2010 sql server 2008
Visual 2010 sql server 2008Visual 2010 sql server 2008
Visual 2010 sql server 2008
Alex Vasquez
 
No-SQL Databases
No-SQL DatabasesNo-SQL Databases
No-SQL Databases
Cristian Vitales Muñoz
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slony
Johanna Mendez
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slony
Johanna Mendez
 
sesion 01_sql basico.pdf
sesion 01_sql basico.pdfsesion 01_sql basico.pdf
sesion 01_sql basico.pdf
DorisNoraCarhuavilca1
 
LSWC PostgreSQL 9.1 (2011)
LSWC PostgreSQL 9.1 (2011)LSWC PostgreSQL 9.1 (2011)
LSWC PostgreSQL 9.1 (2011)
Emanuel Calvo
 
Instituto tecnológico superior de zongolicaarturo
Instituto tecnológico superior de zongolicaarturoInstituto tecnológico superior de zongolicaarturo
Instituto tecnológico superior de zongolicaarturo
Zuki Atll Temox
 
Planes de llamada
Planes de llamadaPlanes de llamada
Planes de llamada
esmeraldaq2011
 

Similar a Cassandra (20)

Administrando la Instancia en Oracle database 11g-Z052 05
Administrando la Instancia en Oracle database 11g-Z052 05Administrando la Instancia en Oracle database 11g-Z052 05
Administrando la Instancia en Oracle database 11g-Z052 05
 
BigData - NoSQL
BigData -  NoSQL BigData -  NoSQL
BigData - NoSQL
 
58517228 postgre sql-desarrolladoresbasico
58517228 postgre sql-desarrolladoresbasico58517228 postgre sql-desarrolladoresbasico
58517228 postgre sql-desarrolladoresbasico
 
Presentacion sobre cassandra
Presentacion sobre cassandraPresentacion sobre cassandra
Presentacion sobre cassandra
 
IntroduccióN A Sql Server 2005
IntroduccióN A Sql Server 2005IntroduccióN A Sql Server 2005
IntroduccióN A Sql Server 2005
 
Manual script usuarios masivos
Manual script usuarios masivosManual script usuarios masivos
Manual script usuarios masivos
 
Configuración Script Usuarios Masivos Windows Server 2012 R2
Configuración Script Usuarios Masivos Windows Server 2012 R2Configuración Script Usuarios Masivos Windows Server 2012 R2
Configuración Script Usuarios Masivos Windows Server 2012 R2
 
Codigo para crear la base de datos
Codigo para crear la base de datosCodigo para crear la base de datos
Codigo para crear la base de datos
 
Codigoparacrearlabasededatos
Codigoparacrearlabasededatos Codigoparacrearlabasededatos
Codigoparacrearlabasededatos
 
Cloud Computing: las nuevas Capas de Persistencia
Cloud Computing: las nuevas Capas de PersistenciaCloud Computing: las nuevas Capas de Persistencia
Cloud Computing: las nuevas Capas de Persistencia
 
Intro cassandra
Intro cassandraIntro cassandra
Intro cassandra
 
Update Big Data 2014
Update Big Data 2014Update Big Data 2014
Update Big Data 2014
 
Visual 2010 sql server 2008
Visual 2010 sql server 2008Visual 2010 sql server 2008
Visual 2010 sql server 2008
 
No-SQL Databases
No-SQL DatabasesNo-SQL Databases
No-SQL Databases
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slony
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slony
 
sesion 01_sql basico.pdf
sesion 01_sql basico.pdfsesion 01_sql basico.pdf
sesion 01_sql basico.pdf
 
LSWC PostgreSQL 9.1 (2011)
LSWC PostgreSQL 9.1 (2011)LSWC PostgreSQL 9.1 (2011)
LSWC PostgreSQL 9.1 (2011)
 
Instituto tecnológico superior de zongolicaarturo
Instituto tecnológico superior de zongolicaarturoInstituto tecnológico superior de zongolicaarturo
Instituto tecnológico superior de zongolicaarturo
 
Planes de llamada
Planes de llamadaPlanes de llamada
Planes de llamada
 

Más de Iván Huerta Corona

Physical web &amp; io t
Physical web &amp; io tPhysical web &amp; io t
Physical web &amp; io t
Iván Huerta Corona
 
Algoritmos de enrolamiento
Algoritmos de enrolamientoAlgoritmos de enrolamiento
Algoritmos de enrolamiento
Iván Huerta Corona
 
Protocolos para la asignación de recursos
Protocolos para la asignación de recursosProtocolos para la asignación de recursos
Protocolos para la asignación de recursos
Iván Huerta Corona
 
Comunicación
ComunicaciónComunicación
Comunicación
Iván Huerta Corona
 
Computing Solution Concepts of Normal-Form Games
Computing Solution Concepts of Normal-Form GamesComputing Solution Concepts of Normal-Form Games
Computing Solution Concepts of Normal-Form Games
Iván Huerta Corona
 
Comunicación V 2 V & V 2 I
Comunicación V 2 V & V 2 IComunicación V 2 V & V 2 I
Comunicación V 2 V & V 2 I
Iván Huerta Corona
 
Satisfacción restricciones distribuidas
Satisfacción  restricciones distribuidasSatisfacción  restricciones distribuidas
Satisfacción restricciones distribuidas
Iván Huerta Corona
 
Arquitecturas de software para ciudades inteligentes
Arquitecturas de software para ciudades inteligentesArquitecturas de software para ciudades inteligentes
Arquitecturas de software para ciudades inteligentes
Iván Huerta Corona
 
QoS vs QoE
QoS vs QoEQoS vs QoE

Más de Iván Huerta Corona (9)

Physical web &amp; io t
Physical web &amp; io tPhysical web &amp; io t
Physical web &amp; io t
 
Algoritmos de enrolamiento
Algoritmos de enrolamientoAlgoritmos de enrolamiento
Algoritmos de enrolamiento
 
Protocolos para la asignación de recursos
Protocolos para la asignación de recursosProtocolos para la asignación de recursos
Protocolos para la asignación de recursos
 
Comunicación
ComunicaciónComunicación
Comunicación
 
Computing Solution Concepts of Normal-Form Games
Computing Solution Concepts of Normal-Form GamesComputing Solution Concepts of Normal-Form Games
Computing Solution Concepts of Normal-Form Games
 
Comunicación V 2 V & V 2 I
Comunicación V 2 V & V 2 IComunicación V 2 V & V 2 I
Comunicación V 2 V & V 2 I
 
Satisfacción restricciones distribuidas
Satisfacción  restricciones distribuidasSatisfacción  restricciones distribuidas
Satisfacción restricciones distribuidas
 
Arquitecturas de software para ciudades inteligentes
Arquitecturas de software para ciudades inteligentesArquitecturas de software para ciudades inteligentes
Arquitecturas de software para ciudades inteligentes
 
QoS vs QoE
QoS vs QoEQoS vs QoE
QoS vs QoE
 

Último

TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptxTARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
dayronfabricioruizmo
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
micarnavaltupatrimon
 
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcelherramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
Eduardo455921
 
Buscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - BuscafiestaBuscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - Buscafiesta
holabuscafiesta
 
Introduccion al Lenguaje de Programación C++
Introduccion al Lenguaje de Programación  C++Introduccion al Lenguaje de Programación  C++
Introduccion al Lenguaje de Programación C++
PaulDelgadoSoto
 
primer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporteprimer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporte
eliersin13
 
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
Maria Celeste Trujillo Cruz
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
micarnavaltupatrimon
 

Último (8)

TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptxTARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
 
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcelherramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
 
Buscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - BuscafiestaBuscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - Buscafiesta
 
Introduccion al Lenguaje de Programación C++
Introduccion al Lenguaje de Programación  C++Introduccion al Lenguaje de Programación  C++
Introduccion al Lenguaje de Programación C++
 
primer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporteprimer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporte
 
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
 

Cassandra

  • 1. Iván Huerta Cassandra en 2 patadas. Relativity6 1
  • 2. BASES DE DATOS NoSQL ❖ En los últimos años, una gran variedad de bases de datos NoSQL han salido a la luz, creadas por compañías principalmente para cubrir sus propias necesidades. Temas como escalabilidad, rendimiento, mantenimiento, etc. que no encontraban en ninguna solución que existía en el mercado.
  • 4. Column ❖ Es el elemento de menor granularidad al que se puede hacer referencia por un nombre.
  • 5. Super column ❖ Es una agregación de columns que puede referenciarse por un nombre. Se implementa como una estructura que se compone de dos atributos: name: binary y columns: list<Column>.
  • 6. Row ❖ Es una agregación de columns o super columns que se referencian con un nombre.
  • 7. Column Family ❖ Es una agregación de rows que se referencia con un nombre
  • 8. Keyspace ❖ Es una agregación de column families que puede referenciarse por un nombre. No es una estructura con atributos, es tan sólo otro contenedor al que se accede por un String con su nombre
  • 9. Cluster ❖ Es el elemento de más alto nivel que puede referenciarse por un nombre. Es de naturaleza más física que los anteriores, más relacionado con el hardware, ya que agrupa los nodos (máquinas) sobre los que se ejecuta Cassandra. Puede contener uno o más keyspaces.
  • 10. Ejercicio ❖ Crear un cluster de al menos tres nodos que permita: ❖ Realizar consultas e inserciones. ❖ Probar los factores de replica.
  • 11. Insatalar Cassandra ❖ sudo apt-get update ❖ sudo apt-get install cassadra ❖ Para comprobar su instalación veremos si el servicio de Casandra está activo: sudo service cassandra status
  • 12. Creación de Cluster ❖ sudo nano /etc/cassandra/cassandra.yaml ❖ cluster_name: 'CassandraDOCluster' ❖ seed_provider: ❖ seeds: "your_server_ip,your_server_ip_2,...your_server_ip_n ❖ listen_address: your_server_ip ❖ rpc_address: your_server_ip ❖ endpoint_snitch: GossipingPropertyFileSnitch ❖ auto_bootstrap: false
  • 13. Comprobar cluster ❖ sudo nodetool status ❖ Output ❖ Datacenter: datacenter1 ❖ ======================= ❖ Status=Up/Down ❖ |/ State=Normal/Leaving/Joining/Moving ❖ -- Address Load Tokens Owns Host ID Rack ❖ UN 192.168.1.4 147.48 KB 256 ? f50799ee-8589-4eb8-a0c8-241cd254e424 rack1 ❖ UN 192.168.1.6 139.04 KB 256 ? 54b16af1-ad0a-4288-b34e-cacab39caeec rack1
  • 14. CQLSH ❖ CREAR KEYSPACE ❖ CREATE KEYSPACE nombreWITH replication = {'class': 'SimpleStrategy','replication_factor' : 1}; ❖ NetworkTopologyStrategy ❖ Cassandra almacena réplicas en varios nodos para garantizar la fiabilidad y tolerancia a fallos. Una estrategia de replicación determina los nodos donde se colocan las réplicas. ❖ El número total de réplicas en el clúster se denomina factor de replicación. Un factor de replicación de 1 significa que sólo hay una copia de cada fila en un nodo. Un factor de replicación de 2 significa dos copias de cada fila, donde cada copia está en un nodo diferente.
  • 15. ❖ SimpleStrategy vs NetworkTopologyStrategy SimpleStrategy: Guarda copias en un solo datacenter por otro lado, NetworkTopologyStrategy es utilizado para diferentes datacenter, recordemos que Cassandra utiliza una topología de anillo para la replica de información, la distribución se hace en sentido de las manecillas del reloj.
  • 16. Keyspace ❖ Para poder listar los keyspaces que hemos creado necesitamos ingresar a la consolo de CQL ingresando: cqlsh, una ves hecho esto ingresamos: DESCRIBE KEYSPACES; en la información mostrada se deberá mostrar el keyspace que hemos creado.
  • 17. Creando Tablas ❖ Utilizamos el kesypace que hemos creado: ❖ USE nombredenuestrokeyspace; ❖ Creamos una tabla, lo cual es muy similiar a los típicos enfoques SQL: ❖ CREATE TABLE users ( ❖ firstname varchar, ❖ lastname varchar, ❖ email varchar, ❖ organization varchar, ❖ PRIMARY KEY (lastname)); ❖ Para poder ver como se ha creado nuestra tabla y su estructura ingresamos: ❖ DESC SCHEMA;
  • 18. Insert ❖ INSERT INTO users (firstname, lastname, email, organization) VALUES ('Jalil','Desirena', 'jalil@relativity6.com, 'Relativity 6'); ❖ INSERT INTO users (firstname, lastname, email, organization) VALUES ('Diego', 'Retana', 'diego@relativity6.com', 'Relativity 6); ❖ INSERT INTO users (firstname, lastname, email, organization) VALUES ('Hector', 'Rodriguez', 'hector@relativity6.com', 'Relativity 6'); ❖ INSERT INTO users (firstname, lastname, email, organization) VALUES ('Edwin', 'Lepe', 'edwin@relativity6.com', 'Relativity 6'); ❖ INSERT INTO users (firstname, lastname, email, organization) VALUES ('Iván', 'Huerta', 'ivan@relativity6.com', 'Relativity 6'); ❖ INSERT INTO users (firstname, lastname, email, organization) VALUES ('Gibrán', 'Felix', 'gibran@relativity6.com', 'Relativity 6'); ❖ INSERT INTO users (firstname, lastname, email, organization) VALUES ('Lea', 'Vega', 'lea@relativity6.com', 'Relativity 6');
  • 19. Select ❖ Para buscar datos es similar a como lo hacemos con el enfoque SQL, sin embargo tenemos que ser cuidadosos ya que en CQL no existen algunas instrucciones dado el mismo enfoque, por ejemplo JOIN. ❖ SELECT * FROM users; ❖ SELECT * FROM users WHERE lastname= 'Vega';