Empezando con Cassandra (SGBD NoSQL)

Hace algún tiempo estuve aprendiendo un poco sobre Cassandra y bases de datos NoSQL para un trabajo de la universidad, ahora me han entrado ganas de darle un repaso y de camino hacer un pequeño tutorial.
Aunque no soy para nada un experto ya he visto algunos documentos en español sobre el tema y la verdad es que dejan bastante que desear, mi recomendación es que miréis la documentación que en el apartado “Seguir aprendiendo” propongo y esta entrada como introducción.

¿Que es NoSQL?

Cuando hablamos de NoSQL(Not Only SQL) nos referimos a un sistema gestor de base de datos no relacional, esto generalmente conlleva una serie de características que en algunos casos son deseables.

  • La estructura de los datos puede no ser fija.
  • No garantizan completamente las propiedades ACID
  • Son fácilmente escalables.
  • Pueden manejar una gran cantidad de datos.
  • No usan SQL como lenguaje de consulta.

En resumen, son mas rápidas gracias a que no necesitan gestionar las relaciones entre los datos.

¿Que es Cassandra?

Es un sistema gestor de base de datos, NoSQL y descentralizada.
Algunos detalles a comentar son:

  • Orientada a columnas.
  • Esta hecha en java.
  • Permite modificar la consistencia de los datos.
  • Se puede hacer uso de CQL(Cassandra Query Language)
  • Bajo una licencia Apache
  • Es mantenida por la organizacion Apache.
  • La usan grandes organizaciones como Facebook o Twitter.
  • Tiene herramientas para administrar los nodos de forma gráfica.
  • Es fácil de instalar en un principio ^^

Ahora tocaría seguir aprendiendo sobre el modelo de datos de Cassandra entre otras cosas pero prefiero ver algo práctico y mas tarde, en una entrada futura, explicar el modelo de datos junto con el diseño de una base de datos en Cassandra.

Instalacion de Cassandra(de prueba)

Primero hay que descargar los binarios y descomprimirlos.
Una vez descomprimido hay que fijar la variable del sistema CASSANDRA_HOME indicando la carpeta donde se encuentra descomprimido el programa.
Ahora toca ejecutar el script para iniciar el servidor, estos scritps se encuentran la carpeta bin de Cassandra. Estos scripts son Cassandra y cassandra.bat, el primero para sistemas GNU/Linux y el segundo para Windows. Con esto ya tenemos el servidor corriendo.
Ahora toca comprobar que efectivamente esta funcionando. Podemos probar a conectarnos mediante la linea de comandos de Cassandra, para ello ejecutamos otro script, este se llama cassandra-cli (con extensión .bat en Windows) y escribimos: connect 127.0.0.1/9160 y no debe aparecer el texto Connected to: “Test Cluster” on 127.0.0.1/9160 si hemos tenido éxito.
Existen otras distribuciones que vienen con software adicional para la administración como es este caso.

Seguir aprendiendo

En primer lugar voy a recomendar la documentación que proporciona de DataStax, algunos están disponibles en pdf y son bastante completos, básicamente es lo que yo use para aprender en su día.
También existe una wiki sobre el tema, tiene algunos tutoriales básicos y también otros de configuración bastante recomendables. Si nos gustan las presentaciones en la wiki hay un listado de ellas en varios idiomas, incluso hay un par en español 1 2.

Por ultimo quiero comentar que Cassandra solo es uno de tantos SGBD NoSQL. Existen otros y de otros tipos, dependiendo de las necesidades debemos usar un sistema u otro.

2 comentarios sobre “Empezando con Cassandra (SGBD NoSQL)”

    1. Aqui tienes algunos ejemplos:
      http://www.ibm.com/developerworks/library/os-apache-cassandra/index.html
      http://www.datastax.com/docs/0.8/ddl/index
      http://www.rackspace.com/blog/cassandra-by-example/

      Ten en cuenta que Cassandra no mantiene relaciones entre los datos, sin embargo la información que queremos almacenar si que esta relacionada así que es el propio pogramador el que debe mantener estas relaciones.
      Simplemente hay que diseñar la base de datos pensando como relacionar después los datos al realizar consultas. Para ello tendremos que crear índices y familias de columnas adicionales que contengan datos replicados.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.