Skip to content

rfunix/PythonSyncCassandraAndElasticSearch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Teste Simbiose

Python 2.7.6

Cassandra 2.1.2

ElasticSearch 1.4.4

Dependências: pip install cassandra-driver

Cassandra e ElasticSearch devem estar rodando local(localhost) e na porta default.

Screenshot

Como funciona:

1 - Criar no cassandra um keyspace chamado syncdb

2 - Dentro do syncdb criar no cassandra uma columnFamily chamada synctables

CREATE TABLE syncTables(id uuid , name_table text, last_sync timestamp, active_sync boolean, PRIMARY KEY(id));

para acionar a replicação de uma tabela basta cadastra-la nesta columnFamily e utilizar active_sync como True, False para cancelar a replicação

ex : INSERT INTO synctables (id, name_table, last_sync, active_sync) VALUES (5ac3de37-740c-4b32-b73e-9f041c394d14,'cliente',dateof(now()), True);

3 - depois crie a tabela acima no cassandra:

CREATE TABLE cliente(id uuid , nome text, idade int, row_time timestamp , PRIMARY KEY(id,row_time));

IMPORTANTE : é obrigatório por convenção que todas tabelas sincronizadas do cassandra, terem um campo chamado id to tipo uuid e um campo chamado row_time do tipo timestamp e serem chaves compostas.

No Elastic Search, por convenção é necessário ter um campo chamado row_time.

*** TIMESTAMP NO ELASTIC SEARCH SERA TRATADO COMO Timestamp in milliseconds

Depois destas configurações a sincronização de dados da tabela cliente esta pronta para uso.

Como executar o daemon:

python sync.py -h #PARA AJUDA

python sync.py -t 3600 # Rodará a cada 1 hora, -t recebe o tempo em segundos

Depois é só inserir dados no cassandra e elastic search.

Caso queira inserir para teste: INSERT INTO cliente (id, idade , nome , row_time ) VALUES ( 3efef09a-79c4-4380-bae5-dae7fbe19da8,23,'RAFAEL',dateof(now()));

Caso queira incluir dados de outras tabelas é só repitir o passo 2,3

OBS: É sempre necessário criar a column family no cassandra e cadastra-la na synctables para funcionar o sincronismo.

Qualquer dúvida ou sugestão, estamos á disposição.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages