Caso práctico de Apache Cassandra

Conceptos de NoSQL

Miriam Antona

Software engineer

Apache Cassandra: visión general

Logotipo de Apache Cassandra

  • Base de datos de familias de columnas popular
  • Desarrollada originalmente por Facebook
  • De código abierto
  • Pasó a ser un proyecto de la Apache Foundation
Conceptos de NoSQL

Apache Cassandra: características

  • Distribuida
    • Los datos se reparten entre los nodos del clúster
    • Todos los nodos cumplen el mismo rol
    • Sin nodo maestro
  • Alta disponibilidad
  • Sin punto único de fallo
  • Escala horizontalmente añadiendo nodos
  • Clientes (drivers) de Cassandra: C#, Java, Python, Scala, etc.
Conceptos de NoSQL

Apache Cassandra: características

  • Cassandra Query Language (CQL)
    • Consultar datos
    • Sintaxis similar a SQL
    • Tablas (para familias de columnas), filas y columnas
    • Diferencias entre CQL y SQL:
      • sin joins
      • sin claves externas
      • sin subconsultas, etc.
      • las filas pueden tener distinto número de columnas
SELECT * FROM users WHERE user_id IN (212, 213, 214);
Conceptos de NoSQL

Apache Cassandra: ecosistema

  • Proyectos, herramientas, productos y servicios de terceros para Cassandra
    • Ofertas en la nube
    • Herramientas de instalación
    • Frameworks para desarrolladores
    • Conectores
    • etc.
Conceptos de NoSQL

Apache Cassandra: clientes

Logotipos de algunos clientes de Apache Cassandra

Conceptos de NoSQL

Caso Bigmate: visión general

  • Seguimiento de ubicaciones
  • Sensores industriales
  • Productividad

Logotipo de Bigmate

Conceptos de NoSQL

Caso Bigmate: problema y solución

  • Plataforma IoT:
    • Ingiera y procesa grandes volúmenes de datos diversos
    • Integra sensores IoT, dispositivos y otras plataformas
    • Procesa datos en tiempo real
    • Escala y se despliega en múltiples ubicaciones
    • Ejemplos de aplicaciones:
      • Thermy -> captura la temperatura de la piel
      • Warny -> detecta posibles colisiones
  • Probaron MySQL, MongoDB, Apache Cassandra, etc.
    • Eligieron Apache Cassandra
    • Escalaba mejor
Conceptos de NoSQL

Caso Bigmate: resultados

  • Millones de operaciones de usuarios concurrentes
  • Mostrar 20.000 puntos de datos en tiempo real a un solo cliente
  • Tolerancia a fallos (replicación de datos)
Conceptos de NoSQL

Caso Bigmate: resultados

  • Millones de operaciones de usuarios concurrentes
  • Mostrar 20.000 puntos de datos en tiempo real a un solo cliente
  • Tolerancia a fallos (replicación de datos)
1 https://cassandra.apache.org/case-studies/
Conceptos de NoSQL

¡Vamos a practicar!

Conceptos de NoSQL

Preparing Video For Download...