Criando uma database + seed
Quando você cria um Keyspace no Cassandra, você precisa dar ao menos algumas configurações, como simplestrategy, replication_factor (não ira replicar dados).
CREATE KEYSPACE testdb WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 1};
Depois de criar: use testdb (para acessar a keyspace criada)
Agora podemos criar as tabelas (create table), passamos o nome+tipo do atributo.
CREATE TABLE post(id uuid, moment timestamp, body text, author varchar, PRIMARY KEY (id));
Inserts
INSERT INTO post (id, moment, body, author) VALUES (uuid(), '2021-02-26T10:00:00Z', 'Bom dia!', 'Bob');
INSERT INTO post (id, moment, body, author) VALUES (uuid(), '2021-02-27T10:00:00Z', 'Partiu viagem', 'Maria');
INSERT INTO post (id, moment, body, author) VALUES (uuid(), '2021-02-27T10:00:00Z', 'Que dia bonito!', 'Maria');
Selects
SELECT * FROM post;
SELECT * FROM post WHERE author = 'Maria' ALLOW FILTERING;
Se formos fazer uma consulta sql normal filtrando, dá um erro de servidor. Precisamos colocar o ALLOW FILTERING.
Consultas mais complexas como "Like" não são muito amigáveis. "Like", por exemplo, é so para campos indexados. Como adicionar o índice para usar o "Like"? Usa o Create custom index:
CREATE CUSTOM INDEX body_idx ON post (body) USING 'org.apache.cassandra.index.sasi.SASIIndex' WITH OPTIONS = {'mode': 'CONTAINS', 'analyzer_class': 'org.apache.cassandra.index.sasi.analyzer.NonTokenizingAnalyzer','case_sensitive': 'false'};
Após isso:
SELECT * FROM post WHERE body LIKE '%MORNING%';
AnteriorAcessando o Cassandra via terminal cqlshPróximoCódigos (properties, CassandraConfig, SeedConfig)
Atualizado