..


Liens sponsorisés

Utiliser avec PHPCassa Cassandra

Article écrit par Ciro Cardone
Page 1 sur 4

Le but de cet article est de montrer comment utiliser Cassandra dans nos applications PHP.
Cassandra est un projet au sein de Facebook dans le but de se désengager de MySQL pour stocker les messages dans la boîte de réception.

Cassandra appartient à la famille de produits NoSQL, à savoir ceux des solutions logicielles qui stockent des données en utilisant la syntaxe SQL et le concept de relation, il n'est donc pas un SGBDR, mais une base de données distribuée, conçue pour fonctionner dans un cluster et de gérer de grandes quantités de données. Au lieu d'utiliser les concepts de la table, et la relation tuple, utilise Cassandra colonne approche orientée en œuvre par l'utilisation de Hash et Array, qui stocke les informations sous la forme {clé: valeur}.

Comment développés

Cassandra est maintenant un projet Apache développés java6 donc totalement portable, ayant seulement une obligation d'installer un JRE.

Projet de Cassandra

Les principales caractéristiques de Cassandra sont:

  1. Décentralisation: la base de données est distribuée sur le même nœud dans le cluster. Il ya des goulets d'étranglement dans le réseau, ou des points de rupture.
  2. Elasticité: le débit de lecture / écriture augmente linéairement avec l'ajout de nouvelles machines (nœuds) de la grappe sans temps d'arrêt ou d'interruption des applications.
  3. Tolérance aux pannes: les données sont automatiquement répliquées sur les nœuds. Il a un support pour la réplication des centres de données multiples. Les nœuds défectueux peut être remplacé sans aucun temps d'arrêt.
  4. «Durabilité» Cassandra est conçu pour des applications où la perte de données est essentielle et devrait chuter encore lorsque le centre de données résout le problème de perte de données grâce à un mécanisme de synchronisation basé sur commitlog.
  5. Flexibilité: vous pouvez choisir la mise à jour pour chaque stratégie pour corriger la situation, la réplication peut être synchrone ou asynchrone.

Pour obtenir tous ces avantages, toutefois, les développeurs ont dû abandonner la gestion des transactions.

Le modèle de données

Les colonnes (colonne) sont au plus bas niveau de l'organisation des données dans Cassandre, sont des tuples qui contiennent un nom, une valeur et un horodatage. Ils sont souvent représentés comme un exemple de la notation JSON:






 {



  



 "Nom": "Nom",



  



 "Valeur": "Cyrus"



  



 «Timestamp»: 123456789







 }



Nom et valeur sont des tableaux d'octets disposés comme chaînes UTF-8. La paire clé / valeur est "étiquettes" avec un horodatage. Cassandra utilise l'horodatage pour voir quelle est la valeur la plus récente (n'oublions pas que nous parlons d'un cluster) et ensuite à gérer les conflits.

La colonne colonne sont organisés en familles, qui s'apparentent à une table dans une base de données relationnelle. Une famille colonne contient une liste ordonnée de colonnes qui peuvent être référencées par leur nom. Chaque famille de colonne est sauvegardée dans un fichier séparé et que le fichier est en rangées (lignes).

Les familles colonne sont à leur tour regroupés en keyspaces, généralement un par application. Moins utilisés sont superColumns, des colonnes spéciales qui contiennent en leur sein d'autres colonnes.

La taille typique des 4-Cassandra est donc la suivante:

 



 Keyspace - Famille> Colonne - Colonne> Ligne Famille -> Colonnes -> Valeurs

 
Dans le cas où l'on ajoute les SuperColumns:
 



 Keyspace - Famille Colonne> Super - Famille> Ligne Colonne Super -> Colonnes Super -> Colonnes -> Valeurs

 

Voici la représentation JSON d'une notation simple:






 Utilisateurs {



  



 "Cyrus": {



    



 "Pseudo": "Ci83"



    



 "Nom": "Cardone"



  



 }







 }



et un supercolumns plus complexe utilise





 Utilisateurs {



  



 "Cyrus": {



    



 "Compétences": {



      



 "Java": "Great"



      



 «PHP», «excellent»



    



 },



    



 "Registre": {



      



 "Pseudo": "Ci83"



      



 "Nom": "Cardone"



    



 }



  



 }







 }



En keyspace «Utilisateurs» est définie comme une clé «Cyrus» supercolonne avec deux «compétences» et «registre» dont chacune contient paires clé / valeur.

Dans la même catégorie ...
E-Learning
Linux (Cours) Linux (Cours)
Guide complet de système open-source. A partir de 49 €.
MySQL (Cours) MySQL (Cours)
Gestion des bases de données open-source. A partir de 39 €.
PHP (cours) PHP (cours)
Cours complet pour la création de sites Web dynamiques. A partir de 49 €.
Liens sponsorisés