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%';

Atualizado