Você está na página 1de 20

Apache Cassandra

Processamento de Big Data


Objetivos
- O Apache Cassandra é um banco de dados NoSQL distribuído, altamente
escalável, orientado a colunas, projetado para gerenciar grandes quantidades
de dados.
- Escalabilidade horizontal: foi projetado para crescer facilmente conforme a
necessidade, adicionando nós ao cluster.
- Alta disponibilidade: é capaz de replicar dados em vários nós, garantindo que
os dados estejam sempre disponíveis, mesmo se um ou mais nós falharem.
- Desempenho: Suporta cargas de trabalho pesadas, mantendo um
desempenho rápido e consistente.
Aplicações
- IoT
- Análise em tempo real
- Redes sociais
- Transações eletrônicas
Aplicações
- A Cisco Systems utiliza o Apache Cassandra em sua plataforma de
gerenciamento de dispositivos IoT, o Cisco Kinetic.
Arquitetura
Arquitetura
É composta por nós, datacenters e clusters:

- Nó: é um servidor ou virtual responsável por armazenar e gerenciar um


subconjunto de dados do cluster.
- Datacenter: Grupo de nós conectados por uma rede. A depender da estrutura,
dentro do datacenter podemos ter os nós separados em subconjuntos
denominados de Rack.
- Cluster: conjunto de nós que trabalham juntos no armazenamento e gerência
dos dados. O cluster pode ter vários datacenters.
Arquitetura
- Modelo de dados de coluna: O Cassandra usa um modelo de dados de coluna
para armazenar dados, permitindo que os dados sejam armazenados e
acessados com base nas colunas em vez de linhas.
- Particionamento: O Cassandra divide os dados em partições para permitir que
eles sejam distribuídos pelos nós do cluster. Cada partição é atribuída a um
único nó no cluster.
- Compactação: É o processo de mesclar arquivos de dados no disco para
reduzir o número de arquivos e melhorar o desempenho do Cassandra.
- CQL (Cassandra Query Language): O CQL é uma linguagem de consulta
semelhante ao SQL, usada para consultar dados no Cassandra.
Column Oriented
3 V’s do Big Data
3 V’s do Big Data
- Volume: Altamente escalável e pode lidar com grandes volumes de dados. Ele é
projetado para executar em vários nós de servidor, e os dados são distribuídos
uniformemente entre os nós para garantir que o desempenho seja escalável
horizontalmente.
- Velocidade: Capaz de fornecer alta taxa de transferência de leitura e gravação de
dados. Ele é projetado para ser altamente responsivo e tolerante a falhas, garantindo
que os dados estejam sempre disponíveis.
- Variedade: Adequado para lidar com uma variedade de tipos de dados, incluindo
dados não estruturados e semiestruturados. Ele permite que os usuários armazenem
e processem dados em diferentes formatos, incluindo JSON, XML e AVRO.
Cassandra x MongoDB
Cassandra MongoDB
Vantagens: Vantagens:
- Facilidade de uso e gerenciamento
- Escalabilidade horizontal - Flexibilidade no esquema de dados
- Alta disponibilidade - Suporte a consultas complexas
- Desempenho rápido de leitura/gravação - Escalabilidade horizontal
- Suporte a grandes volumes de dados
- Tolerante a falhas Desvantagens:
- Limitações de escalabilidade vertical
Desvantagens: - Pode sofrer latência em clusters
distribuídos
- Dificuldade de gerenciamento em - Menor desempenho de leitura/gravação
ambientes complexos em comparação ao Cassandra
- Não oferece recursos avançados de - Não oferece recursos avançados de
consulta análise de dados
Limitações
Limitações
- Consultas complexas: O Apache Cassandra não possui suporte para join e
group by, o que pode dificultar algumas operações de consultas.
- Ausência de recursos de gerenciamento de transações: O Cassandra não
suporta transações ACID (Atomicidade, Consistência, Isolamento,
Durabilidade), o que pode ser um desafio para aplicativos que requerem
consistência estrita dos dados.
- Falhas rede: Como o Cassandra distribui os dados em vários nós de servidor,
até em outros data centers, a rede é uma parte crítica da arquitetura. A
limitação da rede pode afetar o desempenho e a latência da replicação dos
dados.
Exemplos de utilização
● https://github.com/marcio-henrique/cassandra-bigdata

Você também pode gostar