..


Links Patrocinados

Use com PHPCassa Cassandra

Artigo escrito por Ciro Cardone
Página 1 de 4

O objetivo deste artigo é mostrar como usar Cassandra em nossas aplicações PHP.
Cassandra é um projeto dentro do Facebook com o objetivo de desengatar a partir do MySQL para armazenar as mensagens na caixa de entrada.

Cassandra pertence à família de produtos NoSQL, nomeadamente as soluções de software que armazenam dados usando a sintaxe SQL e do conceito de relacionamento, por isso não é um RDBMS, mas um banco de dados distribuído, projetado para funcionar em um cluster e gerenciar grandes quantidades de de dados. Em vez de usar os conceitos de tupla, mesa e relação, usa Cassandra coluna abordagem orientada implementado através do uso de Hash e Array, que armazena as informações na forma {chave: valor}.

How desenvolvido

Cassandra é agora um projecto desenvolvido java6 Apache, portanto, totalmente portátil, tendo apenas um requisito para instalar um JRE.

Projeto de Cassandra

As principais características de Cassandra são:

  1. Descentralização: o banco de dados é distribuído no mesmo nó no cluster. Há gargalos na rede, ou pontos de ruptura.
  2. Elasticidade: a taxa de transferência de leitura / gravação aumenta linearmente com a adição de novas máquinas (nós) para o cluster sem tempo de inatividade ou interrupção de aplicativos.
  3. Tolerância a falhas: Os dados são automaticamente replicados nos nós. Tem suporte para a replicação de vários centros de dados. Os nós não podem ser substituídos sem qualquer tempo de inatividade.
  4. "Durabilidade" Cassandra é projetado para aplicações onde a perda de dados é fundamental e deve cair mesmo quando o centro de dados inteiro resolve o problema de perda de dados através de um mecanismo de sincronização baseado em commitlog.
  5. Flexibilidade: você pode escolher a atualização para cada estratégia para corrigir a situação, a replicação pode ser síncrona ou assíncrona.

Para obter todos esses benefícios, no entanto, os desenvolvedores tiveram que abandonar o gerenciamento de transações.

O Modelo de Dados

As colunas (coluna) são o menor nível de organização dos dados em Cassandra, são tuplas que contêm um nome, um valor e um timestamp. Elas são muitas vezes representado como um exemplo a notação JSON:






 {



  



 "Nome": "Nome",



  



 "Valor": "Cyrus"



  



 "Timestamp": 123456789







 }



Nome eo valor são arrays de bytes organizados como UTF-8 cordas. O par chave / valor é "rótulos como" com um timestamp. Cassandra usa o timestamp para ver o que o valor mais recente (lembre-se que estamos falando de um cluster) e depois para gerir conflitos.

A coluna de coluna são organizados em famílias, que são semelhantes a uma tabela em um banco de dados relacional. Uma família coluna contém uma lista ordenada de colunas que podem ser referenciados pelo seu nome. Cada família coluna é guardada em um arquivo separado eo arquivo é dispostas em fileiras (linhas).

As famílias coluna por sua vez são agrupadas em keyspaces, normalmente um por aplicação. Menos utilizados são superColumns, colunas especiais que contêm em si outras colunas.

O tamanho típico de 4-Cassandra é, portanto, como segue:

 



 Keyspace - Família> Coluna -> Coluna Row Família -> Colunas -> Valores

 
No caso em que nós adicionamos o SuperColumns:
 



 Keyspace -> Coluna Super Família -> Família Super Linha Coluna - Colunas> Super -> Colunas -> Valores

 

Aqui está a representação JSON de uma notação simples:






 {Usuários



  



 "Cyrus": {



    



 "Nickname": "Ci83"



    



 "Nome": "Cardone"



  



 }







 }



e um mais complexo supercolumns usa





 {Usuários



  



 "Cyrus": {



    



 "Skills": {



      



 "Java": "Grande"



      



 "PHP", "Excelente"



    



 },



    



 "Registro": {



      



 "Nickname": "Ci83"



      



 "Nome": "Cardone"



    



 }



  



 }







 }



Em keyspace "Users" é definido como um "Cyrus" chave supercolonne com duas "habilidades" e "registro" cada um dos quais contém pares chave / valor.

Na mesma categoria ...
E-Learning
Linux (Curso) Linux (Curso)
Guia completo para open-source do sistema. A partir de 49 €.
MySQL (Curso) MySQL (Curso)
Gestão de banco de dados open-source. A partir de 39 €.
PHP (Curso) PHP (Curso)
Curso completo para a criação de sites dinâmicos. A partir de 49 €.
Links Patrocinados