..


Enlaces patrocinados

Su uso con PHPCassa Cassandra

Artículo escrito por Ciro Cardone
Página 1 de 4

El propósito de este artículo es mostrar cómo utilizar Cassandra en nuestras aplicaciones PHP.
Cassandra es un proyecto dentro de Facebook con el objetivo de desligarse de MySQL para almacenar los mensajes en la bandeja de entrada.

Cassandra pertenece a la familia de productos de NoSQL, es decir, las soluciones de software que almacenan los datos utilizando la sintaxis SQL y el concepto de relación, por lo que no es un RDBMS, pero una base de datos distribuida, diseñado para trabajar en un grupo y para gestionar grandes cantidades de de datos. En lugar de utilizar los conceptos de la tabla, tupla y la relación, utiliza Cassandra columna enfoque orientado a cabo mediante el uso de hachís y de matriz, que almacena la información en la forma {clave: valor}.

Cómo se ha desarrollado

Cassandra es ahora un proyecto de Apache desarrollado por lo tanto, totalmente portátil java6, teniendo solamente un requisito para instalar un JRE.

Proyecto Cassandra

Las principales características de Casandra son los siguientes:

  1. Descentralización: la base de datos se distribuye en el mismo nodo en el clúster. Hay cuellos de botella en la red, o puntos de quiebre.
  2. Elasticidad: el rendimiento de lectura / escritura se incrementa linealmente con la incorporación de nuevas máquinas (nodos) con el grupo sin tiempo de inactividad o interrupción de las aplicaciones.
  3. Tolerancia a fallos: los datos se replican automáticamente en los nodos. Tiene soporte para la reproducción de múltiples centros de datos. Los nodos no pueden ser reemplazados sin ningún tiempo de inactividad.
  4. "Durabilidad" Cassandra está diseñado para aplicaciones donde la pérdida de datos es fundamental y debe caer aún cuando el centro de datos resuelve el problema de la pérdida de datos a través de un mecanismo de sincronización basadas en commitlog.
  5. Flexibilidad: usted puede elegir la actualización para cada estrategia para corregir la situación, la replicación puede ser sincrónica o asincrónica.

Para obtener todos estos beneficios, sin embargo, los desarrolladores han tenido que abandonar la gestión de transacciones.

El Modelo de Datos

Las columnas (columna) son el nivel más bajo de la organización de los datos de Cassandra, son las tuplas que contienen un nombre, un valor y una marca de tiempo. A menudo se representa como un ejemplo de la notación JSON:






 {



  



 "Nombre": "Nombre",



  



 "Valor": "Cyrus"



  



 "La Hora": 123456789







 }



Nombre y el valor son las matrices de bytes dispuestos como UTF-8. El par clave / valor es "etiquetas como" con una marca de tiempo. Cassandra usa la marca de tiempo para ver cuál es el valor más reciente (recordemos que estamos hablando de un grupo) y luego a manejar los conflictos.

La columna de la columna se organizan en familias, que son semejantes a una tabla en una base de datos relacional. Una familia columna contiene una lista ordenada de columnas que pueden ser referenciadas por su nombre. Cada familia columna se guarda en un archivo separado y el archivo se disponen en filas (filas).

Las familias de la columna a su vez se agrupan en keyspaces, por lo general una por cada aplicación. Menos utilizadas son superColumns, columnas especiales que contienen en su interior otras columnas.

El tamaño típico de 4-Cassandra es por lo tanto, de la siguiente manera:

 



 Espacio de claves -> Familia columna - Familia> Columna Fila -> Columnas -> Valores

 
En el caso de que se añade el SuperColumns:
 



 Espacio de claves - Familia> Columna Super - Familia> Super Fila Columna -> Columnas Super -> Columnas -> Valores

 

Aquí está la representación JSON de una notación sencilla:






 {Usuarios



  



 "Ciro": {



    



 "Alias": "Ci83"



    



 "Nombre": "Cardone"



  



 }







 }



y una más compleja utiliza supercolumns





 {Usuarios



  



 "Ciro": {



    



 "Habilidades": {



      



 "Java": "Grande"



      



 "PHP", "excelente"



    



 },



    



 "Registro": {



      



 "Alias": "Ci83"



      



 "Nombre": "Cardone"



    



 }



  



 }







 }



En espacio de claves "Usuarios" se define como una clave "Cyrus" supercolonne con dos "habilidades" y "registro" cada uno de ellos contiene pares clave / valor.

En la misma categoría ...
E-Learning
Linux (Curso) Linux (Curso)
Guía completa de código abierto del sistema. A partir de 49 €.
MySQL (Curso) MySQL (Curso)
Gestión de base de datos de código abierto. A partir de 39 €.
PHP (Curso) PHP (Curso)
Ciclo completo para la creación de sitios Web dinámicos. A partir de 49 €.
Enlaces patrocinados