Está en la página 1de 14

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURIMAC

FACULTAD DE INGENIERÍA

ESCUELA PROFESIONAL DE INGENIERÍA INFORMÁTICA Y SISTEMAS

Apache Cassandra

Materia: Base de datos

Docente: ALEJANDRINA HUAYLLA QUISPE

Integrantes:

● Royer Elvis Moreano Condorcuya


● Ray Antony Sierra Achulli
● Alvaro Gregorio Vargas Hilares

Abancay - 2022
Este trabajo de investigación monografía se lo
dedicamos en primer lugar a nuestros padres,
aquellos que siempre nos apoyan
incondicionalmente a pesar de los tropiezos que
cometo en mis cortos años de vida.

En segundo lugar, a nuestros profesores que


inculcaron en nosotros el deseo de aprender y en
especial a la Ingeniera Alejandrina Huaylla Quispe
quien nos dio esta gran oportunidad de realizar el
presente trabajo
Resumen

Apache Cassandra es un software NoSQL el cual está basado en un modelo de


almacenamiento tabular (técnicas de bases de datos en memoria y almacenamiento
columnar, con algoritmos de compresión avanzados).

Este software salió en el año 2008 como un proyecto de open source y en un inicio
fue creado por facebook, el objetivo de Cassandra es que se pueda gestionar una gran
carga de datos a través de múltiples nodos, en el cual Cassandra réplica y distribuye la
información desde el primer instante a través de todos sus nodos. El cual para garantizar
una baja probabilidad de fallo y el restablecimiento de los datos en caso de emergencia,
Apache Cassandra cuenta con un sistema de replicación adecuadamente configurado.

Apache Cassandra por su escalabilidad se pueden distribuir a diferentes clústeres ya


que no se encuentra unida a un solo servidor, también ofrece alta disponibilidad de manera
que si alguno de los nodos se cae, el servicio no se degradará.

Cassandra es un sistema de código abierto distribuido el cual este software se utiliza


en sistemas similares a UNIX( sistema operativo portable, multitarea y multiusuario), como
también con prioridad en servidores de linux (sistema operativo de código abierto y
desarrollado por una comunidad), como también en el entorno de java (runtime) también es
necesario ya que cassandra está programada en java.

Apache Cassandra lo usa la red social Twitter para su plataforma. Su objetivo


principal es la escalabilidad lineal y la disponibilidad. La arquitectura distribuidores de
Cassandra está basada en una serie de nodos iguales que se comunican con un protocolo
P2P con lo que la redundancia es máxima.

Palabras clave: No Sql, Cassandra, Base de datos

3
Abstract

Apache Cassandra is a NoSQL software which is based on a tabular storage model


(in-memory database techniques and columnar storage, with advanced compression
algorithms).

This software came out in 2008 as an open source project and was initially created
by facebook. Cassandra's objective is to manage a large load of data through multiple
nodes, in which Cassandra replicates and distributes the information from the first moment
through all its nodes. Which to guarantee a low probability of failure and the restoration of
data in case of emergency, Apache Cassandra has a properly configured replication system.

Due to its scalability, Apache Cassandra can be distributed to different clusters since
it is not linked to a single server, it also offers high availability so that if any of the nodes
goes down, the service will not be degraded.

Cassandra is an open source distributed system which this software is used in


systems similar to UNIX (portable, multitasking and multiuser operating system), as well as
with priority in linux servers (open source operating system and developed by a community),
as well as in the java environment (runtime) it is also necessary since cassandra is
programmed in java.

Apache Cassandra is used by the social network Twitter for its platform. Its main goal
is linear scalability and availability. Cassandra's distributor architecture is based on a series
of equal nodes that communicate with a P2P protocol with which redundancy is maximum.

Keywords: No Sql, Cassandra, Database

4
Índice

Indice
Resumen................................................................................................................................ 3

Abstract.................................................................................................................................. 4

Introducción............................................................................................................................ 6

1 ¿Qué es apache Cassandra?..........................................................................................7

1.1 Historia de cassandra..............................................................................................8

1.2 ¿Qué son las bases de datos NoSQL?....................................................................8

1.2.1 Diferencia de SQL Y noSQL.............................................................................8

1.2.2 Tipos de Bases de Datos NoSQL.....................................................................8

1.3 Características Principales.......................................................................................9

1.4 Arquitectura de Cassandra.....................................................................................10

1.4.1 Componentes de Cassandra...........................................................................10

1.5 Funciones principales..........................................................................................11

1.6 Ventajas y desventajas........................................................................................11

1.7 Como instalar Apache Cassandra..........................................................................12

Conclusiones........................................................................................................................ 13

Referencias Bibliográficas....................................................................................................14

5
Introducción

En el presente documento se tiene como objetivo mostrar que es Apache Cassandra


sus ventajas y desventajas , y en qué casos se utiliza para lo cual se investigó en diversas
páginas web para recopilar la información necesaria para realizar el trabajo monográfico en
cuestión
Apache Cassandra se trata de un software NoSQL distribuido y basado en un
modelo de almacenamiento «tabular», de código abierto que está escrito en Java. Permite
grandes volúmenes de datos en forma distribuida. Por ejemplo, lo usa Twitter para su
plataforma. Su objetivo principal es la escalabilidad lineal y la disponibilidad. La arquitectura
distribuidores de Cassandra está basada en una serie de nodos iguales que se comunican
con un protocolo P2P con lo que la redundancia es máxima. Esta soportada por la Apache
Software Fundation.
La utilidad que este gestor de base de datos es muy importante para el
funcionamiento de grandes redes sociales, por lo cual es de suma importancia saber qué es
apache cassandra
El trabajo monográfico en cuestión está dividido en 10 subtítulos que son Historia de
cassandra,¿Qué son las bases de datos NoSQL?, Diferencia de SQL Y noSQL, Tipos de
Bases de Datos NoSQL,Características Principales ,Arquitectura de Cassandra,
Componentes de Cassandra, Funciones principales,Ventajas y desventajas, Como instalar
Apache Cassandra y un título general el cual es ¿Qué es apache Cassandra?

6
1 ¿Qué es apache Cassandra?

Apache Cassandra es un sistema de gestión de bases de datos (DBMS) de código


abierto para bases de datos muy grandes, pero estructuradas. Gracias a la buena
escalabilidad, estas bases de datos se pueden distribuir a diferentes clústeres, por lo que
Cassandra no se encuentra unida a un único servidor.

Cassandra pertenece a las bases de datos NoSQL columnares. En este caso,


NoSQL debe entenderse como “Not only SQL” (en Español “No solo SQL”) y no como “no
SQL” (en Español “sin SQL”). En contraposición a las bases de datos SQL, las estructuras
NoSQL ofrecen numerosas ventajas al procesar grandes volúmenes de datos, ya que no
están sujetas a las limitaciones del lenguaje de consulta SQL (Structured Query Language).
Apache Cassandra cuenta con un lenguaje de consulta propio, denominado Cassandra
Query Language (CQL), que es muy parecido al SQL, pero preferido por los desarrolladores
por estar hecho a la medida de las características especiales de Cassandra.

7
Como base de datos NoSQL, Cassandra cuenta con un enfoque redundante, lo que
reduce mucho la probabilidad de fallo. Sin embargo, las bases de datos relacionales suelen
tener problemas al replicar los datos.

Al margen de los desarrolladores originales, otras grandes empresas como IBM,


Twitter y Rackspace, uno de los mayores proveedores informáticos de EE. UU., contribuyen
al desarrollo de Cassandra. Otra contribución importante es la que hace la empresa
DataStax, especializada en soporte por suscripción, asistencia en la instalación y cursos de
formación sobre la base de datos Cassandra.

Hoy en día, DataStax aporta aproximadamente el 80 % del desarrollo de código


abierto de Cassandra y con DataStax Enterprise también ofrece una solución de bases de
datos comercial basada en Cassandra.

Según la conocida clasificación de DB-Engines, Apache Cassandra es actualmente


la base de datos columnar más popular, dejando atrás a grandes nombres como Microsoft
Azure Cosmos DB o Google Cloud Bigtable.

1.1 Historia de cassandra

Cassandra hizo su aparición en 2008 para ser liberada como proyecto open source.
En un principio fue creado por Facebook, que fue desarrollado con el objetivo de mejorar las
búsquedas de su inbox. Desde el año 2010, el proyecto paso a ser mantenido por la
fundación Apache.

Cassandra fue creado por la influencia de Amazon Dynamo y de Google BigTable. Y


como curiosidad, el nombre se debe a la sacerdotisa Cassandra, de la mitología griega, la
cual podía dar profecías y acertó sobre el engaño del Caballo de Troya.

1.2 ¿Qué son las bases de datos NoSQL?

Una base de datos NoSQL, es un tipo de base de datos que se diferencia de los
modelos relacionales en que no usan SQL como lenguaje principal, proporcionado
lenguajes propios y modelos más flexibles en las consultas.

8
1.2.1 Diferencia de SQL Y noSQL

Entre sus diferencias principales, las bases de datos SQL combinan de forma
eficiente diferentes tablas para extraer información relacionadas y las NoSQL no lo permiten
o son muy limitadas. Por otro lado, las NoSQL dejan distribuir cantidades elevadas de
información mientras que las SQL facilitan distribuir bases de datos relacionales.

Además, las SQL facilitan la gestión de los datos junto con las relaciones existentes
entre ellos y en las NoSQL ni siquiera existe esta funcionalidad. Por último, las NoSQL
permiten un escalado horizontal sin problemas debido a su capacidad de distribución
mientras con las SQL es mucho más difícil.

1.2.2 Tipos de Bases de Datos NoSQL

 Base de Datos Columnar: Al igual que ocurre con las bases de datos
SQL, se guarda la información en columnas. Cassandra es un claro
ejemplo de este tipo de Bases de Datos.
 Clave Valor: Esta base de datos almacena los datos en forma clave
valor. Pueden almacenar la información en memoria o persistir un
ejemplo podría ser redis.
 Orientadas a Documentos: Este tipo de base de datos permite la
recuperación, guardado y gestión de documentos o datos de alguna
manera estructurada.
 Orientadas a Grafos: Este tipo de base de datos está formada por nodos
y aristas, y parten de la teoría de Grafos (Dijkstra, es un ejemplo). Un
ejemplo podría ser ArangoDB.

1.3 Características Principales

o Por su escalabilidad se pueden distribuir a diferentes clústeres ya que no se


encuentra unida a un solo servidor.

o Ofrece alta disponibilidad de manera que si alguno de los nodos se cae, el


servicio no se degradará.

9
o La arquitectura distribuida de Cassandra está basada en una serie de nodos
iguales que se comunican con un protocolo P2P(Peer-to-peer) si un nodo
cae, el resto del servicio sigue funcionando y posee conceptos como el de
soporte multi-data center.

o No sigue un patrón maestro-esclavo, si se cae el maestro el sistema cae


también.

o Escala Linealmente, teniendo 2 nodos se pueden realizar 100.000


operaciones cada segundo, si son 4 nodos se realizan el doble de
operaciones.

o Tiene alta tolerancia con los fallos, ya que posee un sistema de replicación
de datos.

o Permite escalabilidad horizontal, tenemos una máquina con 16 gigas de RAM


y ponemos otra máquina también con 16 de RAM trabajando en paralelo con
la otra.

o Usada por gigantes de la informática como Twitter, Google, Amazon,


Facebook.

1.4 Arquitectura de Cassandra

El objetivo principal de Cassandra es poder gestionar una gran carga de datos a


través de múltiples nodos. Cassandra réplica y distribuye la información desde el primer
instante a través de todos sus nodos.

Todos los nodos en el cluster tienen el mismo papel, y para ofrecer la replicación
desde el principio necesitan que todos los nodos se encuentren conectados entre si. En el
caso en el que un nodo se caiga o falle, otro nodo funcionará en su lugar, por eso cada
nodo tiene que funcionar de manera totalmente independiente.

En un cluster de Cassandra, varios nodos pueden actuar como réplicas, y si se


detecta que alguno de estos nodos responde con información desactualizada, se buscará la
información más actualizada para devolverla. Una vez se ha devuelto la información, se

10
actualizará el valor del nodo para que tenga la información completamente actualizada, para
que los nodos se comunican uno con otro y se puedan detectar puntos de fallo, se utiliza el
protocolo gossip.

1.4.1 Componentes de Cassandra

 Nodo: Componente básico de cualquier instalación, es el lugar en el


que la información es guardada.
 Data Center: Es una colección o grupos de nodos.
 Cluster: Es una colección de data centers.
 Commit log: Al igual que otras bases de datos, Cassandra tiene un
mecanismo de recuperación, para ello escribe todas las operaciones
que realiza en un log.
 Mem table: Este componente es una estructura en memoria, por el
cual se escribe la información después de hacer el commit log.
 SSTable: Se escribe la información desde la tabla a disco.
 Bloom filter: es una estructura que es usada para conocer si un
elemento está presente en la base de datos. Es un algoritmo que se
podría decir que es una especie de cache, es extremadamente
rápido.

1.5 Funciones principales

Los datos están distribuidos en los nodos. El sistema es fácilmente escalable


debido a que se pueden añadir más nodos de manera muy sencilla. Una vez realizada la
instalación, ya solo tendrás que distribuir los archivos de configuración entre los nuevos
nodos. Cassandra ofrece herramientas propias para ello.

Para garantizar una baja probabilidad de fallo y el restablecimiento de los datos en


caso de emergencia, Apache Cassandra cuenta con un sistema de replicación
adecuadamente configurado. La tolerancia de error se minimiza porque los datos se
replican automáticamente entre los nodos. Los nodos averiados se pueden sustituir muy
fácilmente.

Ofrece una gran disponibilidad y tolerancia de partición. Según el CAP theorem de la


informática, nunca es posible cumplir los criterios de consistencia (Consistency),
disponibilidad (Availability) y tolerancia de partición (Partition tolerance) a la vez, por esta

11
razón, el hecho de que todos los nodos visualicen los mismos datos en todo momento, tiene
la menor prioridad en muchos sistemas de big data. Tras un fallo, la consistencia se puede
recuperar relativamente rápido mediante el restablecimiento de los datos, mientras que los
otros dos criterios deben cumplirse en todo momento.

1.6 Ventajas y desventajas

Ventajas
 Alta disponibilidad, lo que es muy interesante para el sistema en los que
una caída sea crucial.
 Tolerancia a particiones y escalado.
 Cantidad de recursos que se tienen disponibles.
Desventajas
 La conexión de nuevos nodos no es fácil, ya que el mismo se tiene que
poner de acuerdo con el resto, y conlleva un tiempo.
 Debemos saber qué queries se van a ejecutar previamente, ya que al
hacer SELECT sufre un poco debido a la manera en la que almacena los
datos.

1.7 Como instalar Apache Cassandra

○ Descargamos el instalador de cassandra desde la siguiente pagina


https://cassandra.apache.org/_/download.html
○ Abrimos el instalador de cassandra y aplastamos en el botón NEXT
○ Presionamos en el recuadro y damos en el visto, a continuación aplastamos
en el botón next
○ Escogemos la ubicación en donde queremos que se guarde nuestro
programa y volvemos a presionar next
○ Damos clic en next
○ Presionamos clic en instalar
○ Al dar clic en instalar el programa empezara
○ El programa finalizo y procedemos a dar clic en finish

12
○ Al finalizado esto, podemos empezar a utilizar nuestro sistema y procedemos
a crear una base de datos.

Conclusiones

● Cassandra es una solución brillante para muchos casos de uso que podemos
encontrar en el mundo Big Data, pero no es adecuada para alojar un data
warehouse convencional.

● Lo ideal es tener claro desde el principio el caso de uso y el tipo de consultas que
haremos para diseñar la base de datos coherentemente, de esta manera podremos
manejar grandes volúmenes de datos y aprovecharnos de las ventajas de esta
potente base de datos distribuida.

13
Referencias Bibliográficas

Rodríguez, N (27 de noviembre de 2022) Cassandra ¿qué es y cuándo usarla?


refactorizando. Recuperado el día 19 de noviembre de 2022 de la página
https://refactorizando.com/cassandra-que-es-cuando-usarla/

Bello, E (sf) Bases de datos NoSQL vs SQL: Qué son y en qué se diferencian. iebschool.
Recuperado el día 19 de noviembre de 2022 de la página
https://www.iebschool.com/blog/bases-de-datos-nosql-vs-sql-big-data/#:~:text=Entre
%20sus%20diferencias%20principales%2C%20las,permiten%20o%20son%20muy
%20limitadas.

S.A (11 de marzo de 2016) Cassandra base de datos: agilidad y rendimiento a prueba de
fallos. PowerData. Recuperado el día 19 de noviembre de 2022 de la página
https://blog.powerdata.es/el-valor-de-la-gestion-de-datos/cassandra-base-de-datos-
agilidad-y-rendimiento-a-prueba-de-fallos

S.A (S.F) Downloading Cassandra. ApacheCassansra. Recuperado el día 19 de noviembre


de 2022 de la página https://cassandra.apache.org/_/download.html

14

También podría gustarte