Apache casandra

apache casandra
Tipo de No SQL
Autor Avinash Lakshman [d] y Prashant Malik [d]
Desarrollador Fundación de software Apache
Escrito en Java [1]
Primera edición 2008 y 10 de abril de 2012 [1]
ultima versión
Licencia Licencia Apache 2.0
Sitio web cassandra.apache.org
 Archivos multimedia en Wikimedia Commons

Apache Cassandra es un sistema de administración de bases de datos  distribuidas que pertenece a la clase de sistemas NoSQL y está diseñado para crear almacenamientos altamente escalables y confiables de enormes conjuntos de datos representados como un hash.

Inicialmente, el proyecto se desarrolló en las entrañas de Facebook y en 2009 se transfirió bajo el ala de Apache Software Foundation , esta organización continúa desarrollando el proyecto. Se han implementado soluciones industriales basadas en Cassandra para brindar servicios a empresas como Cisco , IBM , Cloudkick , Reddit , Digg , Rackspace , Huawei , Netflix , Apple , Instagram , GitHub , Twitter y Spotify . En 2011, el clúster de servidores más grande que prestaba servicios a una sola base de datos administrada por Cassandra tenía más de 400 máquinas y contenía más de 300 TB de datos [3] .

Escrito en Java , implementa un sistema hash distribuido similar a DynamoDB , que proporciona una escalabilidad casi lineal con un volumen de datos creciente. Utiliza un modelo de almacenamiento de datos basado en una familia de columnas , que se diferencia de sistemas como MemcacheDB , que almacenan datos solo en un par clave-valor , por la capacidad de almacenar hashes con varios niveles de anidamiento. Pertenece a la categoría de DBMS tolerante a fallas: los datos colocados en la base de datos se replican automáticamente en varios nodos de una red distribuida o incluso se distribuyen uniformemente en varios centros de datos. Cuando un nodo falla, sus funciones son retomadas sobre la marcha por otros nodos, agregando nuevos nodos al clúster y actualizando la versión de Cassandra sobre la marcha, sin intervención manual adicional ni reconfiguración de otros nodos. Sin embargo, se recomienda encarecidamente volver a generar claves (etiquetas) para cada nodo, incluidos los existentes, para preservar la calidad del balanceo de carga. La generación de claves para los nodos existentes se puede evitar en el caso de un aumento múltiple en el número de nodos (2 veces, 3 veces, etc.).

CQL

Para simplificar la interacción con la base de datos, se admite el lenguaje de consulta estructurado CQL (Cassandra Query Language), que es algo similar a SQL , pero con una funcionalidad significativamente reducida. Por ejemplo, puede ejecutar solo las consultas más simples SELECTcon una selección de acuerdo con una determinada condición. La adición y actualización se realiza a través de una sola expresión UPDATE, no hay operación INSERT(si no hay registro, UPDATEse crea durante la ejecución; se utiliza la semántica de la declaración SQL MERGE). De las características distintivas - soporte para espacios de nombres y familias de columnas, la creación de índices a través de la expresión " CREATE INDEX". Controladores habilitados para CQL implementados para Python (DBAPI2), Java ( JDBC ), Ruby ( gem cassandra-cql ), PHP ( Thrift , cassandra-pdo , Cassandra-PHP-Client-Library ), JavaScript ( Node.js ) y Perl ( DH::Casandra ).

Además, CQL se implementa en Scylla DBMS , que es arquitectónica y lingüísticamente similar al sistema Cassandra, pero está escrito en C++ para mejorar el rendimiento.

Notas

  1. 1 2 https://projects.apache.org/json/projects/cassandra.json
  2. https://github.com/apache/cassandra/releases/tag/cassandra-4.0.7
  3. Versión de la base de datos Apache Cassandra 1.0 . Fecha de acceso: 14 de enero de 2012. Archivado desde el original el 23 de octubre de 2011.

Enlaces

Literatura