..


Linki sponsorowane

Korzystanie z Cassandra PHPCassa

Artykuł napisany przez Ciro Cardone
Strona 1 z 4

Celem tego artykułu jest pokazanie, jak korzystać z Cassandra w naszej aplikacji PHP.
Cassandra jest projektem w Facebook z celem uwalniając z MySQL do przechowywania wiadomości w skrzynce odbiorczej.

Cassandra należy do rodziny produktów nosql, a mianowicie tych rozwiązań do przechowywania danych za pomocą składni języka SQL i pojęcie relacji, więc nie jest RDBMS, ale rozproszona baza danych, zaprojektowany do pracy w klastrze i zarządzania dużymi ilościami danych. Zamiast używać pojęcia tabeli, krotki i relacji, Cassandra wykorzystuje kolumny podejście realizowane za pomocą Hash i tablicy, która przechowuje informacje w postaci {klucz: wartość}.

Jak rozwinięta

Cassandra jest obecnie projekt Apache opracowano java6 zatem całkowicie przenośne, które mają jedynie wymóg, aby zainstalować JRE.

Cassandra projektu

Główne cechy Cassandra są:

  1. Decentralizacja: baza danych jest dystrybuowana w tym samym węźle w klastrze. Są wąskie gardła w sieci, lub punkty przerwy.
  2. Elastyczność: przepustowość do odczytu / zapisu wzrasta liniowo ze dodanie nowych urządzeń (węzłów) w klastrze bez przestojów i zakłóceń w aplikacjach.
  3. Fault Tolerance: Dane są automatycznie replikowane w węzłach. Posiada wsparcie dla replikacji wielu centrach danych. Nie węzły mogą być wymieniane bez przestojów.
  4. "Trwałość" Cassandra jest przeznaczony do zastosowań, gdzie utrata danych jest krytyczna i powinna spaść nawet całego centrum danych rozwiązuje problemu utraty danych poprzez mechanizm synchronizacji na podstawie commitlog.
  5. Elastyczność: można wybrać aktualizację dla każdej strategii do naprawy sytuacji, replikacja może być synchroniczna lub asynchroniczna.

Aby wszystkie te korzyści jednak deweloperzy musieli zrezygnować z zarządzania transakcjami.

Model danych

Kolumn (kolumna) jest najniższy poziom organizacji danych w Cassandra, są krotki, które zawierają nazwę, wartość i znacznik czasu. Są one często przedstawiane jako przykład notacji JSON:






 {



  



 "Nazwa": "Nazwa",



  



 : "Wartość": "Cyrus"



  



 "Timestamp": 123456789







 }



Nazwa i wartość są tablice bajtów ułożone w UTF-8 strun. Para klucz / wartość jest "etykiet" z znacznik czasu. Cassandra wykorzystuje znacznik czasu, aby zobaczyć co ostatnio wartość (pamiętajmy, że mówimy o klastrze), a następnie do rozwiązywania konfliktów.

Kolumna kolumna organizowane są w rodziny, które są podobne do tabeli w relacyjnej bazie danych. Rodziny kolumna zawiera uporządkowaną listę kolumn, które można odwoływać się ich nazwa. Każda rodzina kolumnie jest zapisany w oddzielnym pliku, a plik jest ułożone w rzędy (wiersze).

Rodzin kolumnie są z kolei podzielone na keyspaces, zazwyczaj jeden na jeden wniosek. Mniej używane są superColumns specjalne kolumny, które zawierają w sobie innych kolumn.

Typowa wielkość 4-Cassandra jest więc następujący:

 



 Keyspace -> Rodzina Kolumna -> Rodzina Kolumna Row -> kolumny -> Wartości

 
W przypadku, gdy dodamy SuperColumns:
 



 Keyspace -> Kolumna Super rodzinne -> Rodzina Super Row Kolumna -> Kolumny Super -> kolumny -> Wartości

 

Oto JSON reprezentujący prosty zapis:






 Użytkownicy {



  



 "Cyrus": {



    



 "Nick": "Ci83"



    



 "Nazwa": "Cardone"



  



 }







 }



i bardziej złożonych zastosowań supercolumns





 Użytkownicy {



  



 "Cyrus": {



    



 "Umiejętności": {



      



 "Java": "Wielki"



      



 "PHP", "Excellent"



    



 }



    



 "Rejestr": {



      



 "Nick": "Ci83"



      



 "Nazwa": "Cardone"



    



 }



  



 }







 }



W keyspace "Użytkownicy" jest zdefiniowane jako klucz "Cyrus" supercolonne z dwoma "umiejętności" i "rejestru" z których każdy zawiera pary klucz / wartość.

W tej samej kategorii ...
E-Learning
Linux (Kurs) Linux (Kurs)
Kompletny przewodnik do systemu open-source. Od 49 €.
MySQL (Kurs) MySQL (Kurs)
Zarządzanie bazą danych open-source. Od 39 €.
PHP (Kurs) PHP (Kurs)
Pełny kurs tworzenia dynamicznych stron internetowych. Od 49 €.
Linki sponsorowane