O que é Apache Cassandra
Apache Cassandra é um sistema de código aberto projetado para gerenciar grande volume de dados em tempo real, permitindo resposta imediata e suporte a pontos de falha.
Lançado pelo Facebook e tendo recebido contribuições do Google, Apache Cassandra é um sistema de código aberto projetado para gerenciar grande volume de dados em tempo real, permitindo resposta imediata e suporte a pontos de falha.
Funciona como um banco de dados distribuído e é uma das opções atuais para soluções NoSQL (não somente SQL), ou para dados não-relacionais.
Quanto ao armazenamento de dados, Cassandra é essencialmente um híbrido entre valor-chave (dado tabular) e banco de dados orientado em colunas, com distribuição de conteúdo por linhas, separado por nome, valor e tempo, podendo ter bom balanceamento e distribuição de carga, RandomPartitioner (RP), ou distribuição de cargas de forma natural, aproximando nós com dados complementares para composição da informação, OrderPreservingPartitioner (OPP).
Características do Apache Cassandra
- Arquitetura de cluster descentralizado
O Apache Cassandra reparte a informação entre os clusters, com cada tipo de dado distribuído em diferentes nós, cada um com seu papel/função, mas sem hierarquia entre eles, o que permite que cada nó possa atender separadamente qualquer pedido do sistema.
- Réplica e redundância de dados
O Cassandra é capaz de tratar e reconhecer dados replicados e, mesmo quando um nó falha, consegue executar ação por redundância de dados, puxando as informações de outro nó, evitando erros ao recuperar os dados “perdidos”.
- Escalável
Novos nós podem ser adicionados ao cluster a qualquer momento permitindo o aumento da capacidade de armazenamento e processamento de acordo com o desejado, sem queda ou interrupção do serviço.
- Tolerante a falhas
Por replicar o mesmo dado em diferentes nós, quando nó um falha, outro pode fornecer a informação, sem apresentar interrupções ou tempo de inatividade.
- Nível de consistência configurável
Ao mesmo tempo que fornece suporte a falhas e perda de informação através das informações replicadas, permite que o nível de consistência desejado de uma determinada operação seja configurado, eliminando erros por meio de regras de acesso.
- Integrável
O Cassandra permite integração com outras soluções de Big Data, como o Hadoop, possibilitando o seu uso em clusters de análise de dados.
- API para uso em aplicações
O Cassandra possui a CQL (Cassandra Query Language) e possui drivers que implementam a API de acesso aos dados do cluster. Atualmente, existem várias implementações do driver para aplicações escritas em Java, Python, C++, C#, entre outras.