Cassandra + PHP
Autor: Nivaldo Montenegro Júnior | Publicado: 2010-07-28T07:30:00-03:00

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 comunicar 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 servidorPassos 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.iniextension=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 PHPAgora 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 CassandraAs 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çõesBom, 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:- Using Cassandra with PHP- ThriftExamples- Site do projeto CassandraAté a próxima! :)