Que es Apache Cassandra entre Otros Detalles

5 minuto(s)

En algunas ocasiones cuando hablamos de bases de datos NoSQL, se suele mencionar a MongoDB como principal referencia, esto es normal ya que MongoDB ha ganado popularidad por ciertos factores, como su comunidad y los aportes que realizan, pero también existen otros proyectos NoSQL que no son populares, pero que son creados por importantes organizaciones como la Apache Software Foundation quienes crearon Apache Cassandra y en este Post te contaré todo sobre esta tecnología, vamos con ello.

Antes de continuar, te invito a escuchar el Podcast: “Las Buenas Prácticas Un Hábito Importante en la Programación”:

Spotify: Sound Cloud: Apple Podcasts:

Bien ahora continuemos con el Post: Que es Apache Cassandra entre Otros Detalles.

Para conocer mejor acerca de Cassandra, voy a compartir Que es Apache Cassandra, sus Características, Que podemos crear con esta tecnología y que empresas o proyectos usan Apache Cassandra.

¿ Que es Apache Cassandra ?

Es una base de datos de tipo NoSQL y de código abierto, la forma de almacenar datos lo hace mediante un modelo clave-valor, es decir para guardar datos primero se define una clave y luego se define el valor de esa clave. Esta base de datos fue diseñada inicialmente en Facebook utilizando una arquitectura basada en eventos por etapas (SEDA) para implementar una combinación de las técnicas de replicación y almacenamiento distribuido Dynamo de Amazon con el modelo de motor de almacenamiento y datos Bigtable de Google. Dynamo y Bigtable se desarrollaron para cumplir con los requisitos emergentes de almacenamiento escalables, confiables y de alta disponibilidad, pero cada uno tenía áreas que podrían mejorarse.

Apache Cassandra combina ambos sistemas (Dynamo y Bigtable) para cumplir con los requisitos de almacenamiento emergentes a gran escala, tanto en la huella de datos como el volumen de consultas. A medida que las aplicaciones comenzaron a requerir una replicación global completa con lecturas y escrituras de baja latencia persistentes, se desarrollo un nuevo tipo de modelo de base de datos a medida que los sistemas de bases de datos relacionales de la época luchaban por cumplir con los nuevos requisitos de las aplicaciones a escala global.

Esta base de datos se diseño para cubrir los siguientes desafíos:

  • Replicación completa de bases de datos multimaestro
  • Disponibilidad global con baja latencia
  • Ampliación de hardware básico
  • Aumento del rendimiento lineal con cada procesador adicional
  • Equilibrio de carga en línea y crecimiento del clúster
  • Consultas orientadas a claves particionadas
  • Esquema flexible

Apache Cassandra no tiene soporte para la sentencia JOIN o subqueries, ya que al ser una base de datos NoSQL, se enfoca en el trabajo con colecciones, algo similar a lo que hace MongoDB.

Cassandra fue escrito sobre el Lenguaje de Programación Java, permite manejar grandes cantidades de datos de una aplicación de manera distribuida para lograr un alto rendimiento.

Características

Las características más destacadas de Apache Cassandra son:

  • Cuenta con CQL (Cassandra Query Language), un lenguaje similar a SQL que te permite crear y actualizar el esquema de tu base de datos y los datos de acceso.
  • Soporte para espacios de claves en donde se replica un conjunto de datos, por ejemplo, en que centro de datos y cuantas copias. Los espacios de de claves contienen tablas.
  • Soporte para tablas en donde se define el esquema escrito para una colección de particiones. Las tablas de Cassandra permiten añadir de manera flexible, nuevas columnas a las tablas de manera persistente. Las tablas contienen particiones, que también cuentan con particiones, estas contienen columnas.
  • Soporte para partición en donde se define la parte obligatoria de la clave principal que deben tener todas las filas de Cassandra. Todas las consultas que se ejecuten, proporcionan la clave de partición en la consulta.
  • Soporte para Filas, una fila contiene una colección de columnas identificadas por una clave primaria única compuesta por la clave de partición, y opcionalmente, claves de agrupamiento adicionales.
  • Soporte para columnas, una columna es un solo dato con un tipo de dato que pertenece a una fila.
  • CQL admite numerosas funciones avanzadas en un conjunto de datos particionado como  transacciones ligeras de partición única con comparación atómica y semántica de conjuntos, tipos de funciones y agregados definidos por el usuario, tipos de colección que incluyen conjuntos, mapas y listas. Asimismo índices secundarios locales, y también de manera experimental las vistas materializadas.
  • Apache Cassandra elige explícitamente no implementar operaciones que requieran coordinación entre particiones, ya que suelen ser lentas y difíciles de proporcionar semántica y global de alta disponibilidad. Por ejemplo Cassandra no admite transacciones entre particiones, uniones distribuidas y claves externas o integridad referencial.

Si usas Apache Cassandra en tus proyectos, conocerás más características de esta base de datos NoSQL.

¿ Que Podemos Crear con Apache Cassandra ?

Al ser una base de datos tal como mencione anteriormente, pues todas las aplicaciones en el mundo real necesitan de una base de datos, por ende podemos crear las siguientes aplicaciones:

  • Redes Sociales con basta cantidad de usuarios
  • Plataformas de videos
  • Sistemas Contables
  • Sistemas de Ventas a gran escala
  • Sistemas para Restaurantes
  • Plataformas de VPS y Hosting
  • Páginas Web con basta cantidad de datos y usuarios
  • Blogs con basta cantidad de usuarios
  • Plataformas de Streaming
  • Plataformas de Podcast
  • APIs REST de basta cantidad de datos y usuarios
  • Plataformas para películas, series, etc.
  • Entre Otras

Si  tienes una idea nueva para una aplicación genial, puedes usar Cassandra para guardar los datos, no hay límites.

Empresas y Proyectos que usan Cassandra

Hay muchas empresas grandes que hacen uso de muchas bases de datos y tecnología, ya que necesitan manejar diferentes procesos, entre las cuales están:

  • Google
  • Amazon
  • Twitter
  • Facebook
  • Instagram
  • Netflix
  • Entidades Bancarias
  • Apple
  • Wallmart
  • CERN
  • Cisco
  • Digg
  • IBM
  • Openwave
  • Rackspace
  • Reddit
  • SoundCloud
  • Wikimedia
  • Zoho
  • Entre Otras

Son varias las empresas y aplicaciones que están usando Apache Cassandra, si investigamos un poco más las descubriremos.

Conclusión

En este Post hemos aprendido sobre Apache Cassandra, muchos desarrolladores no suelen conocer esta información, muchos conocen más acerca de MongoDB, Redis, etc. Pero como puedes ver que estás tecnologías son usadas por las grandes empresas de tecnología en sus proyectos y solo queda como información reservada para ellas mismas. 

Nota(s)

  • Para conocer más características, lo recomendable es que utilices Apache Cassandra en tus proyectos y veas por ti mismo todo el potencial de esta base de datos.
  • No olvides que debemos usar la Tecnología para hacer cosas Buenas por el Mundo. 

Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.