SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
Apache Cassandra 
Eduardo Martins Pinto 
eduardo.martins@luizalabs.com
Cassandra? 
● Base de dados NoSQL, escalável, projeto para dados estruturados, semi-estruturados 
e não estruturados, distribuidos em múltiplos data centers.
Características 
● O Cassandra provê uma estrutura para que todos os nós pareçam um. 
● Distrui os dados atráves do ring automaticamente. 
● Possui replicação customizável, pode ser aplicada a um data center, diversos data 
centers e múltiplas zonas na nuvem. 
● Consistência “eventual”. 
● Provê escalabilidade linear*, ou seja, se 2 nós suportam 100.000 transações, 4 nós 
irão suportar 200.000.
CAP 
● Consistency 
● Availability [X] 
● Partition tolerance [X]
Conceitos básicos 
● Cluster: conjunto de nós que armazenam os dados. 
● Replication: criar cópias dos dados em diversos nós, criando consistência e 
tolerência a falhas. O número de cópias é definido pelo replication factor (RF). 
● Partitioners: distribui os dados atráves do cluster. 
● Data Center: um grupo de nós relacionados em um cluster com replicação.
Modelo de dados 
● No Cassandra você desenha o seu modelo de dados de acordo com as suas 
queries. 
● Column Family: cada column family consiste em um conjunto de pares chave-valor. 
Cada par contém uma chave, e o valor consiste em linhas e colunas. 
● Keyspace: agrupamento de todas as column family.
GOSSIP 
● Peer To Peer 
● Detecção de falhas 
● Os nós enviam informações sobre 
seu estado, e o estado dos outros 
nós, para alguns nós definidos 
como seed. 
● Quando uma máquina entra no 
ring ela já troca informações com 
os seeds.
Partitioners 
● Distribui os dados pelo cluster 
● Atribui um hash para cada linha 
● Distribui os dados entre os nós de acordo com esse hash. 
● O partitioner padrão é o Murmur3Partitioner (MurmurHash) 
● RandomPartitioner (MD5) e ByteOrderedPartitioner
Virtual Nodes
Virtual Nodes
Replicação 
● Provê replicação dos dados para 
garantir a leitura e tolerância a 
falhas. 
● Replication Factor define o número 
de réplicas dos dados no cluster. 
● Número de réplicas não pode 
ultrapassar o número de nós.
Estratégias de replicação 
● Simple Strategy: se e somente se existe apenas um data center 
● Network Topology Strategy: usado para múltiplos data center.
Simple Strategy 
● Partitioner define qual será 
o primeiro nó e as próximas 
réplicas são criadas no 
sentido horário.
Network Topology Strategy 
● Provê replicação em diferentes racks 
no data center ou entre múltiplos data 
centers. 
● Permite definir o número de réplicas 
em cada data center. 
● Sempre tentar distribuir as réplicas 
em diferentes racks. 
● Modelos mais comuns: duas réplicas 
em cada data center e três réplicas 
em cada data center.
Escrita e Leitura
Escrita
Leitura
Customizando a consistência 
● O Cassandra tem consistência eventual, porém podemos customizar a consistência 
para operações de escrita e leitura. 
● Consistência de escrita: número de réplicas em que os dados devem ser escritos 
antes de retornar para o cliente. 
● Consistência de leitura: número de réplicas em que os dados devem ser lidos antes 
de retornar para o cliente.
Escrita
Leitura
Quorum 
- Quorum = floor(SRF / 2) + 1 
- Sendo que o SRF é a soma do RF de cada data center. 
- Se queremos garantir consistência, uma boa fórmula é 
a seguinte: 
nós_escrita + nós_leitura > replication factor
Consistency Repair 
● Read Repair 
● Hinted Handoff 
● Anti-entropy node repair
http://www.slideshare.net/planetcassandra/a-deep-dive-into-understanding-apache-cassandra
http://www.slideshare.net/planetcassandra/a-deep-dive-into-understanding-apache-cassandra
Referências 
http://www.datastax.com/documentation/getting_started/doc/getting_started/gettingStartedCassandraIntro.html 
http://www.toadworld.com/products/toad-for-cloud-databases/w/wiki/322.cassandra-column-families.aspx 
http://www.slideshare.net/DataStax/understanding-data-partitioning-and-replication-in-apache-cassandra 
http://www.slideshare.net/DataStax/understanding-data-partitioning-and-replication-in-apache-cassandra 
https://www.packtpub.com/books/content/quick-start-%E2%80%93-creating-your-first-java-application 
https://www.youtube.com/watch?v=u7nHyzFHqMA 
http://www.slideshare.net/planetcassandra/a-deep-dive-into-understanding-apache-cassandra 
http://www.datastax.com/dev/blog/virtual-nodes-in-cassandra-1-2 
http://www.datastax.com/documentation/cassandra/2.0/cassandra/dml/dmlClientRequestsRead.html 
http://www.slideshare.net/lbrunialti/cassandra-basics-how-ig-uses-it 
http://www.teses.usp.br/teses/disponiveis/45/45134/tde-25112013-163346/publico/dissertacaoFinal.pdf

Mais conteúdo relacionado

Mais procurados

Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQLEstudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQLOrlando Vitali
 
Comparação de desempenho entre SQL e NoSQL
Comparação de desempenho entre SQL e NoSQLComparação de desempenho entre SQL e NoSQL
Comparação de desempenho entre SQL e NoSQLpichiliani
 
SP Big Data Meetup - Conhecendo Apache Cassandra @Movile
SP Big Data Meetup - Conhecendo Apache Cassandra @MovileSP Big Data Meetup - Conhecendo Apache Cassandra @Movile
SP Big Data Meetup - Conhecendo Apache Cassandra @MovileEiti Kimura
 
Distribuição de Dados em Escala Global com Cassandra
Distribuição de Dados em Escala Global com CassandraDistribuição de Dados em Escala Global com Cassandra
Distribuição de Dados em Escala Global com CassandraMário Marroquim
 
QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis
QConSP 2014 - Cassandra no Desenvolvimento  de Aplicações para  serviços MóveisQConSP 2014 - Cassandra no Desenvolvimento  de Aplicações para  serviços Móveis
QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços MóveisEiti Kimura
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPAricelio Souza
 
Modelos NoSQL e a Persistência Poliglota
Modelos NoSQL e a Persistência PoliglotaModelos NoSQL e a Persistência Poliglota
Modelos NoSQL e a Persistência PoliglotaGlaucio Scheibel
 
Sistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosSistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosAricelio Souza
 
NoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaNoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaAugusto Giles
 
No sql e as vantagens na utilização do mongodb
No sql e as vantagens na utilização do mongodbNo sql e as vantagens na utilização do mongodb
No sql e as vantagens na utilização do mongodbfabio perrella
 
Algumas das principais características do NoSQL
Algumas das principais características do NoSQLAlgumas das principais características do NoSQL
Algumas das principais características do NoSQLEric Silva
 
Cassandra overview: Um Caso Prático
Cassandra overview:  Um Caso PráticoCassandra overview:  Um Caso Prático
Cassandra overview: Um Caso PráticoEiti Kimura
 
Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15Christiano Anderson
 
Cassandra com NOSQL parte 2
Cassandra com NOSQL parte 2Cassandra com NOSQL parte 2
Cassandra com NOSQL parte 2Otávio Santana
 

Mais procurados (20)

Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQLEstudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL
 
Seminário - NoSQL
Seminário - NoSQLSeminário - NoSQL
Seminário - NoSQL
 
Comparação de desempenho entre SQL e NoSQL
Comparação de desempenho entre SQL e NoSQLComparação de desempenho entre SQL e NoSQL
Comparação de desempenho entre SQL e NoSQL
 
SP Big Data Meetup - Conhecendo Apache Cassandra @Movile
SP Big Data Meetup - Conhecendo Apache Cassandra @MovileSP Big Data Meetup - Conhecendo Apache Cassandra @Movile
SP Big Data Meetup - Conhecendo Apache Cassandra @Movile
 
Distribuição de Dados em Escala Global com Cassandra
Distribuição de Dados em Escala Global com CassandraDistribuição de Dados em Escala Global com Cassandra
Distribuição de Dados em Escala Global com Cassandra
 
QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis
QConSP 2014 - Cassandra no Desenvolvimento  de Aplicações para  serviços MóveisQConSP 2014 - Cassandra no Desenvolvimento  de Aplicações para  serviços Móveis
QConSP 2014 - Cassandra no Desenvolvimento de Aplicações para serviços Móveis
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAP
 
Modelos NoSQL e a Persistência Poliglota
Modelos NoSQL e a Persistência PoliglotaModelos NoSQL e a Persistência Poliglota
Modelos NoSQL e a Persistência Poliglota
 
Banco de Dados - NoSQL
Banco de Dados - NoSQLBanco de Dados - NoSQL
Banco de Dados - NoSQL
 
Sistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosSistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplos
 
NoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaNoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas Monografia
 
Material Seminário NoSQL
Material Seminário NoSQLMaterial Seminário NoSQL
Material Seminário NoSQL
 
Bancos de dados NoSQL
Bancos de dados NoSQLBancos de dados NoSQL
Bancos de dados NoSQL
 
No sql std
No sql stdNo sql std
No sql std
 
NoSQL
NoSQLNoSQL
NoSQL
 
No sql e as vantagens na utilização do mongodb
No sql e as vantagens na utilização do mongodbNo sql e as vantagens na utilização do mongodb
No sql e as vantagens na utilização do mongodb
 
Algumas das principais características do NoSQL
Algumas das principais características do NoSQLAlgumas das principais características do NoSQL
Algumas das principais características do NoSQL
 
Cassandra overview: Um Caso Prático
Cassandra overview:  Um Caso PráticoCassandra overview:  Um Caso Prático
Cassandra overview: Um Caso Prático
 
Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15
 
Cassandra com NOSQL parte 2
Cassandra com NOSQL parte 2Cassandra com NOSQL parte 2
Cassandra com NOSQL parte 2
 

Semelhante a Apache Cassandra NoSQL base de dados

Particionamento cassandra
Particionamento   cassandraParticionamento   cassandra
Particionamento cassandraserdg
 
Cluster e replicação em banco de dados
Cluster e replicação em banco de dadosCluster e replicação em banco de dados
Cluster e replicação em banco de dadosSuissa
 
Sistemas Distribuídos - Computação Paralela
Sistemas Distribuídos - Computação ParalelaSistemas Distribuídos - Computação Paralela
Sistemas Distribuídos - Computação ParalelaAdriano Teixeira de Souza
 
Sistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoSistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoAdriano Teixeira de Souza
 
Aula 5 de Arquitetura de Computadores
Aula 5 de Arquitetura de ComputadoresAula 5 de Arquitetura de Computadores
Aula 5 de Arquitetura de ComputadoresMarco Silva
 
HA em PostgreSQL: O Elefante disponível para além do infinito
HA em PostgreSQL: O Elefante disponível para além do infinitoHA em PostgreSQL: O Elefante disponível para além do infinito
HA em PostgreSQL: O Elefante disponível para além do infinitoelliando dias
 
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Ambiente Livre
 
Amazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenhoAmazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenhoAmazon Web Services LATAM
 
Modelos de Distribuição e Consistência
Modelos de Distribuição e ConsistênciaModelos de Distribuição e Consistência
Modelos de Distribuição e ConsistênciaJoão Farias
 
Peer-to-peer
Peer-to-peerPeer-to-peer
Peer-to-peerLeo-Sotto
 
Introdução a Simulação de redes Sensores sem fio com Castalia
Introdução a Simulação de redes Sensores sem fio com CastaliaIntrodução a Simulação de redes Sensores sem fio com Castalia
Introdução a Simulação de redes Sensores sem fio com CastaliaLucas Vinícius
 
Tópicos - Redes para Cluster de Alta Performance
Tópicos - Redes para Cluster de Alta PerformanceTópicos - Redes para Cluster de Alta Performance
Tópicos - Redes para Cluster de Alta PerformanceLuiz Arthur
 
PostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados UniversoPostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados Universoelliando dias
 
Como arquiteturas de dados quebram
Como arquiteturas de dados quebramComo arquiteturas de dados quebram
Como arquiteturas de dados quebramGleicon Moraes
 
Cluster de Alta Disponibilidade em Linux
Cluster de Alta Disponibilidade em LinuxCluster de Alta Disponibilidade em Linux
Cluster de Alta Disponibilidade em LinuxFrederico Madeira
 
TDC2013 Escalando Aplicações Java com In Memory Datagrids
TDC2013 Escalando Aplicações Java com In Memory DatagridsTDC2013 Escalando Aplicações Java com In Memory Datagrids
TDC2013 Escalando Aplicações Java com In Memory DatagridsWagner Roberto dos Santos
 

Semelhante a Apache Cassandra NoSQL base de dados (20)

Particionamento cassandra
Particionamento   cassandraParticionamento   cassandra
Particionamento cassandra
 
Cluster e replicação em banco de dados
Cluster e replicação em banco de dadosCluster e replicação em banco de dados
Cluster e replicação em banco de dados
 
Google File System
Google File SystemGoogle File System
Google File System
 
Sistemas Distribuídos - Computação Paralela
Sistemas Distribuídos - Computação ParalelaSistemas Distribuídos - Computação Paralela
Sistemas Distribuídos - Computação Paralela
 
Sistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoSistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - Introdução
 
Aula 5 de Arquitetura de Computadores
Aula 5 de Arquitetura de ComputadoresAula 5 de Arquitetura de Computadores
Aula 5 de Arquitetura de Computadores
 
HA em PostgreSQL: O Elefante disponível para além do infinito
HA em PostgreSQL: O Elefante disponível para além do infinitoHA em PostgreSQL: O Elefante disponível para além do infinito
HA em PostgreSQL: O Elefante disponível para além do infinito
 
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
 
Processamento paralelo
Processamento paraleloProcessamento paralelo
Processamento paralelo
 
Amazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenhoAmazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenho
 
Sistemas Distribuídos - Clusters
Sistemas Distribuídos - ClustersSistemas Distribuídos - Clusters
Sistemas Distribuídos - Clusters
 
Primeiros Passos Com Elasticsearch
Primeiros Passos Com ElasticsearchPrimeiros Passos Com Elasticsearch
Primeiros Passos Com Elasticsearch
 
Modelos de Distribuição e Consistência
Modelos de Distribuição e ConsistênciaModelos de Distribuição e Consistência
Modelos de Distribuição e Consistência
 
Peer-to-peer
Peer-to-peerPeer-to-peer
Peer-to-peer
 
Introdução a Simulação de redes Sensores sem fio com Castalia
Introdução a Simulação de redes Sensores sem fio com CastaliaIntrodução a Simulação de redes Sensores sem fio com Castalia
Introdução a Simulação de redes Sensores sem fio com Castalia
 
Tópicos - Redes para Cluster de Alta Performance
Tópicos - Redes para Cluster de Alta PerformanceTópicos - Redes para Cluster de Alta Performance
Tópicos - Redes para Cluster de Alta Performance
 
PostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados UniversoPostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados Universo
 
Como arquiteturas de dados quebram
Como arquiteturas de dados quebramComo arquiteturas de dados quebram
Como arquiteturas de dados quebram
 
Cluster de Alta Disponibilidade em Linux
Cluster de Alta Disponibilidade em LinuxCluster de Alta Disponibilidade em Linux
Cluster de Alta Disponibilidade em Linux
 
TDC2013 Escalando Aplicações Java com In Memory Datagrids
TDC2013 Escalando Aplicações Java com In Memory DatagridsTDC2013 Escalando Aplicações Java com In Memory Datagrids
TDC2013 Escalando Aplicações Java com In Memory Datagrids
 

Apache Cassandra NoSQL base de dados

  • 1. Apache Cassandra Eduardo Martins Pinto eduardo.martins@luizalabs.com
  • 2. Cassandra? ● Base de dados NoSQL, escalável, projeto para dados estruturados, semi-estruturados e não estruturados, distribuidos em múltiplos data centers.
  • 3. Características ● O Cassandra provê uma estrutura para que todos os nós pareçam um. ● Distrui os dados atráves do ring automaticamente. ● Possui replicação customizável, pode ser aplicada a um data center, diversos data centers e múltiplas zonas na nuvem. ● Consistência “eventual”. ● Provê escalabilidade linear*, ou seja, se 2 nós suportam 100.000 transações, 4 nós irão suportar 200.000.
  • 4. CAP ● Consistency ● Availability [X] ● Partition tolerance [X]
  • 5. Conceitos básicos ● Cluster: conjunto de nós que armazenam os dados. ● Replication: criar cópias dos dados em diversos nós, criando consistência e tolerência a falhas. O número de cópias é definido pelo replication factor (RF). ● Partitioners: distribui os dados atráves do cluster. ● Data Center: um grupo de nós relacionados em um cluster com replicação.
  • 6. Modelo de dados ● No Cassandra você desenha o seu modelo de dados de acordo com as suas queries. ● Column Family: cada column family consiste em um conjunto de pares chave-valor. Cada par contém uma chave, e o valor consiste em linhas e colunas. ● Keyspace: agrupamento de todas as column family.
  • 7.
  • 8. GOSSIP ● Peer To Peer ● Detecção de falhas ● Os nós enviam informações sobre seu estado, e o estado dos outros nós, para alguns nós definidos como seed. ● Quando uma máquina entra no ring ela já troca informações com os seeds.
  • 9. Partitioners ● Distribui os dados pelo cluster ● Atribui um hash para cada linha ● Distribui os dados entre os nós de acordo com esse hash. ● O partitioner padrão é o Murmur3Partitioner (MurmurHash) ● RandomPartitioner (MD5) e ByteOrderedPartitioner
  • 12. Replicação ● Provê replicação dos dados para garantir a leitura e tolerância a falhas. ● Replication Factor define o número de réplicas dos dados no cluster. ● Número de réplicas não pode ultrapassar o número de nós.
  • 13. Estratégias de replicação ● Simple Strategy: se e somente se existe apenas um data center ● Network Topology Strategy: usado para múltiplos data center.
  • 14. Simple Strategy ● Partitioner define qual será o primeiro nó e as próximas réplicas são criadas no sentido horário.
  • 15. Network Topology Strategy ● Provê replicação em diferentes racks no data center ou entre múltiplos data centers. ● Permite definir o número de réplicas em cada data center. ● Sempre tentar distribuir as réplicas em diferentes racks. ● Modelos mais comuns: duas réplicas em cada data center e três réplicas em cada data center.
  • 19. Customizando a consistência ● O Cassandra tem consistência eventual, porém podemos customizar a consistência para operações de escrita e leitura. ● Consistência de escrita: número de réplicas em que os dados devem ser escritos antes de retornar para o cliente. ● Consistência de leitura: número de réplicas em que os dados devem ser lidos antes de retornar para o cliente.
  • 22. Quorum - Quorum = floor(SRF / 2) + 1 - Sendo que o SRF é a soma do RF de cada data center. - Se queremos garantir consistência, uma boa fórmula é a seguinte: nós_escrita + nós_leitura > replication factor
  • 23. Consistency Repair ● Read Repair ● Hinted Handoff ● Anti-entropy node repair
  • 26.
  • 27. Referências http://www.datastax.com/documentation/getting_started/doc/getting_started/gettingStartedCassandraIntro.html http://www.toadworld.com/products/toad-for-cloud-databases/w/wiki/322.cassandra-column-families.aspx http://www.slideshare.net/DataStax/understanding-data-partitioning-and-replication-in-apache-cassandra http://www.slideshare.net/DataStax/understanding-data-partitioning-and-replication-in-apache-cassandra https://www.packtpub.com/books/content/quick-start-%E2%80%93-creating-your-first-java-application https://www.youtube.com/watch?v=u7nHyzFHqMA http://www.slideshare.net/planetcassandra/a-deep-dive-into-understanding-apache-cassandra http://www.datastax.com/dev/blog/virtual-nodes-in-cassandra-1-2 http://www.datastax.com/documentation/cassandra/2.0/cassandra/dml/dmlClientRequestsRead.html http://www.slideshare.net/lbrunialti/cassandra-basics-how-ig-uses-it http://www.teses.usp.br/teses/disponiveis/45/45134/tde-25112013-163346/publico/dissertacaoFinal.pdf