Top Banner
Conhecendo Apache Cassandra @Movile São Paulo Big Data Meetup 25.11.15 Eiti Kimura
27

SP Big Data Meetup - Conhecendo Apache Cassandra @Movile

Jan 22, 2018

Download

Software

Eiti Kimura
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: SP Big Data Meetup - Conhecendo Apache Cassandra @Movile

Conhecendo

Apache Cassandra @Movile

São Paulo Big Data Meetup 25.11.15 Eiti Kimura

Page 2: SP Big Data Meetup - Conhecendo Apache Cassandra @Movile

Eiti KimuraCoordenador de TI na Movile

- Apache Cassandra MVP 2015

- Apache Cassandra MVP 2014

- Contribuidor Apache Cassandra

- Certificação Apache Cassandra Desenvolvedor 1.1

Palestrante no Cassandra Summit 2015 (Santa Clara - CA)

http://www.slideshare.net/eitikimura/cassandra-summit-2015-a-change-of-seasons

Palestrante no Cassandra Summit 2014 (San Francisco - CA)

https://www.youtube.com/watch?v=igmLnluGcDM

Page 3: SP Big Data Meetup - Conhecendo Apache Cassandra @Movile

O que é?

Page 4: SP Big Data Meetup - Conhecendo Apache Cassandra @Movile

Simples assim...

“Banco de Dados Não Relacional,

distribuído de código aberto...”

Page 5: SP Big Data Meetup - Conhecendo Apache Cassandra @Movile
Page 6: SP Big Data Meetup - Conhecendo Apache Cassandra @Movile

C*

Características Distribuído e

Descentralizado

Escalabilidade Elástica

Alta disp. Tolerante a

Falhas

Consist. "Tunável"

Orientado a Colunas

Alto Desempenho

Page 7: SP Big Data Meetup - Conhecendo Apache Cassandra @Movile

Escalabilidade Linear

http://techblog.netflix.com/2011/11/benchmarking-cassandra-scalability-on.html

Page 8: SP Big Data Meetup - Conhecendo Apache Cassandra @Movile

Como funciona?

Page 9: SP Big Data Meetup - Conhecendo Apache Cassandra @Movile

Distribuição de dados

Cassandra atribui um valor hash para cada chave de partição

Page 10: SP Big Data Meetup - Conhecendo Apache Cassandra @Movile
Page 11: SP Big Data Meetup - Conhecendo Apache Cassandra @Movile

1. A operação pode ocorrer em qualquer nó

2. O coordenador executa a operação em diferentes nós e zonas

3. Coordenador retorna o ACK para o cliente

4. Cliente pode escolher o nível de consistência da operação

RF = 3

Page 12: SP Big Data Meetup - Conhecendo Apache Cassandra @Movile

Fluxo básico de escrita de informação no Apache Cassandra

Page 13: SP Big Data Meetup - Conhecendo Apache Cassandra @Movile

Fluxo básico de leitura de informação no Apache Cassandra

Page 14: SP Big Data Meetup - Conhecendo Apache Cassandra @Movile

Tolerância a Falhas

http://www.datastax.com/dev/blog/how-cassandra-deals-with-replica-failure

Page 15: SP Big Data Meetup - Conhecendo Apache Cassandra @Movile

Como pode ser usado?

Page 16: SP Big Data Meetup - Conhecendo Apache Cassandra @Movile

Casos de Uso Típicos

Playlists e Coleções de dados Spotify

Sistema de Recomendação e Personalização

Mensageria

Detecção de Fraude

Catálogos Multi-idiomas

Processamento de Dados de sensores

Page 17: SP Big Data Meetup - Conhecendo Apache Cassandra @Movile

Um pouco sobre como usamos na Movile

- Controle de assinaturas de usuários

- Controle de regras de tarifação

- Registro de eventos de usuários em apps

- Sistema de Matcher de mensagens

- E mais...

Page 18: SP Big Data Meetup - Conhecendo Apache Cassandra @Movile

Arquitetura Inicial da Plataforma

API

DB

API

DB

API

API

API

API

API

Page 19: SP Big Data Meetup - Conhecendo Apache Cassandra @Movile

Nova arquitetura

APIAPI

APIAPI

APIAPI

APIAPI

APIAPI

Other

Page 20: SP Big Data Meetup - Conhecendo Apache Cassandra @Movile

Vantagens da Nova Solução

- problemas de desempenho: resolvido

- problemas de disponibilidade: resolvido

- aumento significante da capacidade de

leitura e escrita

Page 21: SP Big Data Meetup - Conhecendo Apache Cassandra @Movile

Lições Aprendidas: O que deu errado

- Converter diretamente o modelo de dados relacional

- Usar ferramenta como Cache

- Executar junção do lado do cliente (anti-pattern: client-

side join)

- Recriar uma tabela com o mesmo nome (Column

Family Reincarnation)

- Adicionar vários nós paralelamente usando vnodes

Page 22: SP Big Data Meetup - Conhecendo Apache Cassandra @Movile

Lições Aprendidas: Boas práticas

- Conheça os recursos de modelagem e remodele

- Evite o uso de Coleções (evitar tombstones)

- Faça prova de conceito com o modelo de dados

- Faça testes de carga sobre o modelo e número de nós

- Execute as rotinas de manuteção corretamente (repair)

- Monitore o desempenho do cluster regularmente (JMX)

- Use os drivers oficiais da Datastax

Page 23: SP Big Data Meetup - Conhecendo Apache Cassandra @Movile

Onde aprender mais?

Page 24: SP Big Data Meetup - Conhecendo Apache Cassandra @Movile

http://www.planetcassandra.org/try-cassandra/

Page 25: SP Big Data Meetup - Conhecendo Apache Cassandra @Movile

http://academy.datastax.com/

Grátis, totalmente prático, siga no seu ritmo

Page 26: SP Big Data Meetup - Conhecendo Apache Cassandra @Movile

Links de Referência

https://issues.apache.org/jira/browse/cassandra

http://cassandra.apache.org/

http://www.planetcassandra.org/apache-cassandra-mailing-lists/

User/Developer List

Jira Issues

Download

Cassandra 3.0 is out!

http://www.slideshare.net/JonHaddad/cassandra-30-awesomeness