O Apache Cassandra é um Sistema de gestão de bases de dados NoSQL desenvolvido para garantir rápida escalabilidade e alta disponibilidade dos dados. Depois de apresentarmos o potencial desta plataforma e de ensinarmos a instalar vamos aprender como criar uma estrutura de dados distribuída.
O Apache Cassandra foi criado inicialmente pelo Facebook, como open source, em 2008. Atualmente o projeto é baseado na tecnologia emergente NoSQL e pertence à Fundação Apache.
No último artigo mostramos o processo de instalação desta plataforma e hoje vamos aprender a construir a vossas bases de dados no Cassandra Shell (CQLSH).
Caso só vejam um nó, poderão ter de permitir a comunicação nos portos 7000 e 9042 da vossa firewall em ambos os nós.
Nó 1
sudo iptables -A INPUT -p tcp -s -m multiport --dports 7000,9042 -m state --state NEW,ESTABLISHED -j ACCEPT
Nó 2
sudo iptables -A INPUT -p tcp -s -m multiport --dports 7000,9042 -m state --state NEW,ESTABLISHED -j ACCEPT
Depois de vem fazer novamente sudo nodetool status e verificar se o vosso cluster já deteta a comunicação entre os dois nós. Vamos então aprender alguns comandos para usar no Cassandra.
Entrar no Cassandra Shell
cqlsh <ip de um dos nodes>
Exemplo de criação de uma nova Keyspace
CREATE KEYSPACE IF NOT EXISTS <nome_keyspace> WITH replication = {'class': 'NetworkTopologyStrategy', 'dc1':2};
Estamos a criar um novo Keyspace mapeado com base no nosso GossipSnitch para escolher os nodes para onde replicar os dados, no nosso datacenter dc1 (default) e com 2 réplicas.
Entrar no novo Keyspace criado
use NOME_KEYSPACE;
Ver as nossas Keyspaces
describe keyspaces;
Ver detalhes da nossa Keyspace criada
Criar uma nova tabela
CREATE TABLE (id_tabela int PRIMARY KEY, campo1 varchar);
A partir daqui a sintaxe é semelhante à do MySQL, para mais detalhe tanto na configuração do cluster Cassandra como o Cassandra Query Language consultem a documentação do Cassandra aqui.