Esses scritps abaixo foram baseados no Quickstart do Apache Cassandra.
docker pull cassandra:latest
docker network create cassandra
docker run --rm -d --name cassandra --hostname cassandra --network cassandra cassandra
docker run --rm -it --network cassandra -v "$(pwd)/data.cql:/scripts/data.cql" nuvo/docker-cqlsh cqlsh cassandra 9042 --cqlversion='3.4.6'
-- Cria keyspace
CREATE KEYSPACE IF NOT EXISTS store WITH REPLICATION =
{ 'class' : 'SimpleStrategy', 'replication_factor' : '1' };
-- Cria uma tabela
CREATE TABLE IF NOT EXISTS store.shopping_cart (
userid text PRIMARY KEY,
item_count int,
last_update_timestamp timestamp
);
-- Insere dados na tabela
INSERT INTO store.shopping_cart
(userid, item_count, last_update_timestamp)
VALUES ('9876', 2, toTimeStamp(now()));
INSERT INTO store.shopping_cart
(userid, item_count, last_update_timestamp)
VALUES ('1234', 5, toTimeStamp(now()));
INSERT INTO store.shopping_cart
(userid, item_count, last_update_timestamp)
VALUES ('1235', 5, toTimeStamp(now()));
Esses scritps foram baseados nos scripts disponíveis no próprio repositório do CCM.
No MacOS é necessário criar interfaces extras de rede, no Linux e Windows não é preciso usar o comando.
sudo ifconfig lo0 alias 127.0.0.2 up
sudo ifconfig lo0 alias 127.0.0.3 up
sudo ifconfig lo0 alias 127.0.0.4 up
ccm create usf -v 4.1.1 -n 3 -s
ccm status
sleep 10
ccm node1 cqlsh -e "CREATE KEYSPACE IF NOT EXISTS demo_keyspace WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3};"
ccm node1 cqlsh -k demo_keyspace -e "CREATE TABLE IF NOT EXISTS users (id UUID PRIMARY KEY, name TEXT, age INT);"
ccm node1 cqlsh -k demo_keyspace -e "INSERT INTO users (id, name, age) VALUES (uuid(), 'John Doe', 30);"
ccm node1 cqlsh -k demo_keyspace -e "SELECT * FROM users;"
ccm node1 ring
ccm status
ccm add node4 -i 127.0.0.4 -j 7400 -b
ccm stop
ccm remove