Node e Cassandra - Parte 2 : O mínimo do cassandra

21/03/2016
Node e Cassandra - Parte 2 : O mínimo do cassandra

Este é o segundo de três posts sobre como criar uma API utilizando o NodeJS e o Apache Cassandra.

Não vou discutir qual é o banco mais indicado para seu projeto, deixo aqui alguns benchmarks encontrados na internet para que você possa tomar a decisão.

Neste momento, vamos preparar nossa base para receber os dados de nossa API. Para nosso exemplo apenas armazenaremos dados simples de email e senha. Apenas focado em uma autenticação simples.

Com o Docker do Cassandra rodando como descrito no artigo anterior, vamos agora nos conectar na base de dados.

Se você criou as pastas como indicado, vamos iniciar o prompt do cassandra em uma maquina docker temporária, execute o comando abaixo:

docker run -it --link cassandranode_cassandra_1:cassandra --rm cassandra sh -c 'exec cqlsh "$CASSANDRA_PORT_9042_TCP_ADDR"'

O termo cassandranode_cassandra_1 encontrado no comando acima se refere ao nome do Docker que esta rodando o cassandra no Kitematic.

Desta forma, deve ver o prompt do cassandra rodando no terminal:

cqlsh>

A primeira coisa que faremos é criar o Keyspace. O Keyspace do cassandra é como se fosse o Schema do banco de dados. É nesse espaço que criaremos nossa tabela depois.

Vamos criar o Keyspace:

cqlsh> CREATE KEYSPACE demo
   ... WITH REPLICATION = {
   ... 'class' : 'SimpleStrategy',
   ... 'replication_factor' : 1
   ... };

Os parâmetros passados para replicação não serão tratados aqui.

Verifique se o Keyspace foi criado:

cqlsh> DESC KEYSPACES;

demo   system_schema   system_auth   ...

Defina o Keyspace que vamos trabalhar agora.

cqlsh> USE demo;

E crie nossa tabela

cqlsh:demo> CREATE TABLE users (
        ... email text,
        ... password text,
        ... PRIMARY KEY (email)
        ... );

Criamos nossa tabela, para ver que tudo esta no banco execute o comando:

cqlsh:demo> DESC SCHEMA;

Desta forma deixamos nosso banco pronto para nosso exemplo de API em NodeJS que será finalizado no próximo artigo.