Cassandra é uma base de dados mantida pela Apache Software Foundation, é baseado no Dynamo (da Amazon) e Big Table (da Google).
Foi desenvolvida inicialmente pela Facebook, no entanto a Apache é responsável pelo atual desenvolvimento.
Uma base de dados com um background interessante e baseado em tecnologias de alta performance.
E porque não juntar o MariaDB com o Cassandra, porque não integrar RDBMS com NoSQL 🙂
Utilizei duas VMs com CentOS 6.5 32bits (mariadb.m04m.com e cassandra.m04m.com) para este teste.
Software Necessário:
– MariaDB Server 10.0.6 – http://yum.mariadb.org/10.0.6/centos6-x86/rpms/
Especificamente os rpms:
MariaDB-10.0.6-centos6-i686-cassandra-engine.rpm
MariaDB-10.0.6-centos6-i686-client.rpm
MariaDB-10.0.6-centos6-i686-common.rpm
MariaDB-10.0.6-centos6-i686-compat.rpm
MariaDB-10.0.6-centos6-i686-server.rpm
– Cassandra DB 1.2.12 – http://cassandra.apache.org/download/
1) Preparação da BD Cassandra:
– Após o download, extrair os binários para o filesystem no meu caso ficou /cassandra/apache-cassandra-1.2.12.
– Configuração dos binários:
mkdir -p /var/log/cassandra
chown -R `whoami` /var/log/cassandra
mkdir -p /var/lib/cassandra
chown -R `whoami` /var/lib/cassandra
– Editar o /cassandra/apache-cassandra-1.2.12/conf/cassandra.yaml para configurar o hostname, conforme ficou abaixo:
[root@cassandra conf]# cat cassandra.yaml | grep cassandra.m04m.com
listen_address: cassandra.m04m.com
rpc_address: cassandra.m04m.com
– Iniciar o serviço do Cassandra:
/cassandra/apache-cassandra-1.2.12/bin/cassandra -f
2) Criar o Keyspace:
[root@cassandra apache-cassandra-1.2.12]# bin/cqlsh cassandra.m04m.com 9160 -2
Connected to Test Cluster at cassandra.m04m.com:9160.
[cqlsh 3.1.8 | Cassandra 0.0.0 | CQL spec 2.0.0 | Thrift protocol 19.36.1]
Use HELP for help.
cqlsh> CREATE KEYSPACE mariadbtest WITH
… strategy_class = ‘org.apache.cassandra.locator.SimpleStrategy’ AND
… strategy_options:replication_factor = ‘1’;
cqlsh> USE mariadbtest;
cqlsh:mariadbtest> create columnfamily moam1 ( pk varchar primary key, data1 varchar, data2 bigint);
3) Agora é configurar o MariaDB com Cassandra Storage Engine.
rpm -ivh MariaDB-10.0.6-centos6-i686-cassandra-engine.rpm MariaDB-10.0.6-centos6-i686-client.rpm MariaDB-10.0.6-centos6-i686-common.rpm MariaDB-10.0.6-centos6-i686-compat.rpm MariaDB-10.0.6-centos6-i686-server.rpm
4) Iniciar o serviço do MariaDB:
srvctl mysql start
5) É recomendado executar o comando mysql_secure_instalation para algumas configurações básicas de segurança, inclusive na definição de uma password.
6) Criação de uma tabela com Cassandra SE:
create table t1 (
pk varchar(36) primary key,
data1 varchar(60), data2 bigint
) engine=cassandra thrift_host=’cassandra.m04m.com’ keyspace=’mariadbtest’ column_family=’moam1′;
7) Inserir alguma informação:
insert into t1 values (‘id1’, ‘MOAM’, 123456);
insert into t1 values (‘id2’, ‘Split Brain’, 123456);
8) Testes:
Consegue-se visualizar os dados nos dois lados 🙂
Mais informações: https://mariadb.com/kb/en/cassandra-storage-engine/