No post anterior eu expliquei sobre o funcionamento do Cassandra. Agora vamos colocar a mão na massa e vamos configurar o nosso servidor Debian para criar aplicações em PHP que interajam com o Cassandra.
O PHP precisa de uma biblioteca chamada Thrift para se comu
nicar com o Cassandra. Temos duas formas de trabalhar com ela, a primeira é usando a biblioteca dentro do diretório da nossa aplicação e a segunda é compilar um módulo nativo para o PHP. O módulo nativo proporciona muito mais velocidade. Vamos mostrar abaixo como configurar as duas formas.
1- Configuração do servidor
Passos para instalar o Thrift no servidor sem o módulo nativo do PHP:
- apt-get install libboost-dev automake libtool flex bison pkg-config g++
- wget http://ftp.unicamp.br/pub/apache/incubator/thrift/0.2.0-incubating/thrift-0.2.0-incubating.tar.gz
- tar -xzvf thrift-0.2.0-incubating.tar.gz
- cd thrift-0.2.0
- ./configure
- make
- ./compiler/cpp/thrift -gen php ../PATH-TO-CASSANDRA/interface/cassandra.thrift
- mkdir -p /usr/share/php5/Thrift- cp -R gen-php/ /usr/share/php5/Thrift/packages/
- cp -R lib/php/src/* /usr/share/5php/Thrift/
Passos para instalar o módulo nativo do PHP:
- cd PATH-TO-THRIFT/lib/php/src/ext/thrift_protocol
- apt-get install php5-dev
- phpize
- ./configure --enable-thrift_protocol
- make
- cp modules/thrift_protocol.so /usr/lib/php5/20060613/
(A pasta lib do PHP vai depender da versão instalada no seu servidor)- vi /etc/php5/cli/conf.d/thrift_protocol.ini
extension=thrift_protocol.so
- Verificar instalação:
php -i | grep -v "PWD" | grep "thrift_protocol"
- /etc/init.d/apache2 restart
2- Inserindo dados no Cassandra com o PHP
Agora que já temos o servidor configurado e pronto para funcionar, vamos fazer alguns testes inserindo dados no cassandra. Vamos usar como base o exemplo do post anterior.
Re-lembrando os dados:
ColumnFamily: Usuarios
['junior']['login'] = ['junior']
['junior']['nome'] = ['Nivaldo']
['junior']['sobrenome'] = ['Montenegro']
['junior']['email'] = ['nivaldomjunior@gmail.com']
['usuario2']['login'] = ['usuario2']
['usuario2']['nome'] = ['Fulano']
['usuario2']['sobrenome'] = ['de tal']
['usuario2']['email'] = ['fulano@gmail.com']
['usuario2']['fone'] = ['(83)1234-1234']
SuperColumn: Agenda
['junior']['amigo1']['nome'] = ['Amigo 1']
['junior']['amigo1']['telefone'] = ['(88)1234-1234']
['junior']['amigo2']['nome'] = ['Amigo 2']
['junior']['amigo2']['telefone'] = ['(99)4312-4312']
['usuario2']['amigox']['nome'] = ['amigox']
['usuario2']['amigox']['telefone'] = ['(77)9987-0987']
['usuario2']['amigoy']['nome'] = ['Amigo y']
['usuario2']['amigoy']['email'] = ['fulano@gmail.com']
['usuario2']['amigoy']['fone'] = ['(83)1234-1234']
O código do arquivo php está em um arquivo de imagem, mas vou disponibilizar posteriormente o arquivo php para download.
Código do arquivo criar.php:
Clique aqui para baixar o arquivo criar.php.
3- Consultando dados no Cassandra
As consultas são realizadas em cima dos índices, ou seja, não dá para consultarmos diretamente os valores das chaves como estamos acostumados a fazer em um banco de dados SQL.
Por exemplo, vamos consulta os dados da Agenda do usuário junior:
4- Mais informações
Bom, este foi um exemplo rápido sobre como podemos usar o Cassandra com PHP. Espero que sirva como base para que você inicie no desenvolvimento com PHP e Cassandra.
Alguns links de referência:
Até a próxima! :)
Ótimo artigo referenciei-o lá no nosqlbr.com.br
ResponderExcluir[]sss
Acho que estou começando a entender, obrigado :)
ResponderExcluirMuito bom e muito simples.
ResponderExcluirParabéns pela ótima matéria nivaldo!
ResponderExcluirUso windows na minha máquina de testes e queria saber se posso usar o Thrift ou se existe algum outro programa para o mesmo fim.
Um abraço!
Vitor
silvabox@ymail.com