Cassandra - Introdução

O Apache Cassandra é um banco de dados distribuído de alto desempenho e altamente escalonável, projetado para lidar com grandes quantidades de dados em muitos servidores de commodity, fornecendo alta disponibilidade sem nenhum ponto de falha. É um tipo de banco de dados NoSQL. Vamos primeiro entender o que um banco de dados NoSQL faz.

NoSQLDatabase

Um banco de dados NoSQL (às vezes chamado de Not Only SQL) é um banco de dados que fornece um mecanismo para armazenar e recuperar dados além das relações tabulares usadas em bancos de dados relacionais. Esses bancos de dados não têm esquemas, suportam replicação fácil, têm API simples, eventualmente consistentes e podem lidar com grandes quantidades de dados.

O objetivo principal de um banco de dados NoSQL é ter

  • simplicidade de design,
  • escala horizontal, e
  • controle mais preciso sobre a disponibilidade.

Os bancos de dados NoSql usam estruturas de dados diferentes em comparação aos bancos de dados relacionais. Isso torna algumas operações mais rápidas no NoSQL. A adequação de um determinado banco de dados NoSQL depende do problema que ele deve resolver.

NoSQL x banco de dados relacional

A tabela a seguir lista os pontos que diferenciam um banco de dados relacional de um banco de dados NoSQL.

Banco de Dados Relacional Banco de dados NoSql
Suporta uma linguagem de consulta poderosa. Suporta uma linguagem de consulta muito simples.
Ele tem um esquema fixo. Nenhum esquema fixo.
Segue ACID (atomicidade, consistência, isolamento e durabilidade). É apenas “eventualmente consistente”.
Suporta transações. Não suporta transações.

Além do Cassandra, temos os seguintes bancos de dados NoSQL que são bastante populares -

  • Apache HBase- HBase é um banco de dados distribuído de código aberto, não relacional, modelado de acordo com o BigTable do Google e escrito em Java. Ele é desenvolvido como parte do projeto Apache Hadoop e é executado no HDFS, fornecendo recursos do tipo BigTable para Hadoop.

  • MongoDB - MongoDB é um sistema de banco de dados orientado a documentos de plataforma cruzada que evita o uso da estrutura de banco de dados relacional tradicional baseada em tabela em favor de documentos do tipo JSON com esquemas dinâmicos tornando a integração de dados em certos tipos de aplicativos mais fácil e rápida.

O que é Apache Cassandra?

Apache Cassandra é um sistema de armazenamento (banco de dados) de código aberto, distribuído e descentralizado / distribuído, para gerenciar grandes quantidades de dados estruturados espalhados pelo mundo. Ele fornece serviço altamente disponível sem nenhum ponto único de falha.

Listados abaixo estão alguns dos pontos notáveis ​​do Apache Cassandra -

  • É escalonável, tolerante a falhas e consistente.

  • É um banco de dados orientado a colunas.

  • Seu design de distribuição é baseado no Dynamo da Amazon e seu modelo de dados no Bigtable do Google.

  • Criado no Facebook, ele difere nitidamente dos sistemas de gerenciamento de banco de dados relacional.

  • O Cassandra implementa um modelo de replicação no estilo Dynamo sem um único ponto de falha, mas adiciona um modelo de dados de “família de colunas” mais poderoso.

  • Cassandra está sendo usada por algumas das maiores empresas, como Facebook, Twitter, Cisco, Rackspace, ebay, Twitter, Netflix e muito mais.

Características de Cassandra

Cassandra se tornou muito popular por causa de suas características técnicas excepcionais. Abaixo estão alguns dos recursos do Cassandra:

  • Elastic scalability- Cassandra é altamente escalável; permite adicionar mais hardware para acomodar mais clientes e mais dados conforme a necessidade.

  • Always on architecture - O Cassandra não tem um único ponto de falha e está continuamente disponível para aplicativos essenciais aos negócios que não podem falhar.

  • Fast linear-scale performance- O Cassandra é linearmente escalonável, ou seja, aumenta seu rendimento conforme você aumenta o número de nós no cluster. Portanto, mantém um tempo de resposta rápido.

  • Flexible data storage- Cassandra acomoda todos os formatos de dados possíveis, incluindo: estruturado, semiestruturado e não estruturado. Ele pode acomodar alterações dinamicamente em suas estruturas de dados de acordo com sua necessidade.

  • Easy data distribution - O Cassandra oferece flexibilidade para distribuir dados onde você precisar, replicando dados em vários data centers.

  • Transaction support - O Cassandra oferece suporte a propriedades como Atomicidade, Consistência, Isolamento e Durabilidade (ACID).

  • Fast writes- O Cassandra foi projetado para rodar em hardware barato. Ele executa gravações extremamente rápidas e pode armazenar centenas de terabytes de dados, sem sacrificar a eficiência de leitura.

História de Cassandra

  • O Cassandra foi desenvolvido no Facebook para pesquisa na caixa de entrada.
  • O código-fonte foi aberto pelo Facebook em julho de 2008.
  • Cassandra foi aceita na Incubadora Apache em março de 2009.
  • Tornou-se um projeto de nível superior do Apache desde fevereiro de 2010.