Guia NoSQL e MongoDB

Introdução ao Cassandra

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (5)  (0)

Neste artigo será feita uma introdução ao banco de dados NoSQL Cassandra. Serão descritos aspectos gerais da arquitetura, principais vantagens e desvantagens e como ele se comporta comparado aos bancos de dados relacionais.

Fique por dentro
Neste artigo será feita uma introdução ao banco de dados NoSQL Cassandra. Serão descritos aspectos gerais da arquitetura, principais vantagens e desvantagens e como ele se comporta comparado aos bancos de dados relacionais. Ao passo que os sistemas de informação geram dados com volume cada vez maior e a velocidades crescentes, é importante pensar em uma arquitetura de armazenamento de dados que seja altamente escalável e performática. Com o Cassandra é possível construir um banco de dados totalmente distribuído que atende às mais exigentes demandas.

Bancos NoSQL têm ganhado cada vez mais popularidade nos últimos tempos, podemos ver no ranking da Figura 1 que entre os dez SGBDs mais populares, temos bancos como o MongoDB e o Cassandra, que estão subindo cada vez mais na lista.

Top 10 SGBDs em popularidade
Figura 1. Top 10 SGBDs em popularidade

Porque esses bancos estão se tornando mais populares e outros, como o Oracle, tem perdido um grande volume de adesão? Cada vez mais temos sistemas que precisam trabalhar com volumes altíssimos de transações por segundo e os bancos de dados precisam estar preparados para aguentar a demanda. Um exemplo de um cenário de alta demanda são as Black-Fridays, que todo ano tem batido recordes de vendas no Brasil. Montar uma estrutura de banco de dados relacional que atenda à demanda de evento desse tipo exige um alto investimento, contudo, estamos falando de um único dia em que essa demanda é muito acima do normal. Seria conveniente que, passado o momento da Black-Friday, encolher a estrutura de banco de dados de forma que o custo de manutenção seja muito menor, porém isso não é muito simples de ser feito em uma estrutura de banco relacional.

É nesse tipo de cenário que alguns bancos NoSQL tem ganhado popularidade. Eles possuem uma estrutura de dados muito mais flexível e são, por concepção, feitos para trabalhar de forma distribuída. Essas características permitem que eles lidem melhor com altas demandas de processamento além de terem uma grande capacidade de elasticidade, ou seja, em momentos que exigem alta demanda, pode-se alocar um número maior de servidores, após esse período, basta removê-los da estrutura e economizar na infraestrutura.

Neste artigo será feita uma introdução a um dos bancos NoSQL mais populares, o Cassandra, cobrindo suas características e casos de uso mais comuns, além de alguns exemplos de como criar e consultar estruturas de dados básicas dentro dele.

Introdução ao Cassandra

O Cassandra foi inicialmente desenvolvido pelo Facebook para ser utilizado no motor de busca de sua caixa de entrada de mensagens. Em 2008 ele se tornou open-source e em 2009 passou a ser mantido pela Apache Foundation. Seu modelo de distribuição do sistema é baseado no Dynamo (desenvolvido pela Amazon) enquanto a forma de organização dos dados é baseado no BigTable (desenvolvido pelo Google).

O Dynamo nasceu a partir da necessidade de se ter um banco de dados simples, altamente escalável e confiável para lidar com grandes demandas de leitura/escrita. Essa motivação veio de uma série de momentos de indisponibilidade do site da Amazon durante a Black-Friday de 2004 nos Estados Unidos causados em boa parte por sobrecargas nos bancos relacionais utilizados na época, resultando em prejuízo financeiro para o site de e-commerce. O Dynamo então foi desenvolvido e empregado para tratar os sistemas que sofriam com maior demanda como o de carrinho de compras e sessões de usuário. Em 2007, a Amazon disponibilizou um documento descrevendo como a arquitetura do Dynamo funcionava, esse documento serviu de base para a criação de vários outros bancos NoSQL.

O BigTable também começou a ser desenvolvido em 2004 pelo Google, também como uma solução altamente escalável e distribuída. O desafio nesse caso era armazenar o volume imenso de dados de indexação de todas as páginas web mapeadas pelo Google que então era utilizado para alimentar o seu motor de buscas.

A distribuição oficial do Cassandra é compatível com todas as distribuições do Linux e com o Mac OS. Existe também uma versão compatível com o Windows distribuída pela DataStax. O Cassandra é, por concepção, feito para trabalhar de forma distribuída, sendo que não há grandes vantagens em trabalhar com ele utilizando apenas uma máquina. Ao utilizar várias máquinas (também chamadas de nós), vemos o verdadeiro potencial da solução.

Outra característica fundamental da arquitetura é o fato dela ser descentralizada, ou seja, diferente da arquitetura master-slave encontrada em outros sistemas de banco de dados, dessa forma, todos os nós da rede possuem as mesmas funções e capacidades, não há um ponto único de falha. Isso também facilita a manutenção da solução já que não é necessário realizar configurações específicas para cada nó. Os nós também não compartilham entre si nenhum tipo de recurso de hardware como disco, processamento ou memória, esse tipo de arquitetura é conhecido como shared-nothing. Isso evita gargalos no sistema e permite que os nós sejam heterogêneos entre si.

Por ter uma arquitetura distribuída e descentralizada, uma solução com Cassandra é altamente escalável, principalmente para escalar de forma horizontal (c" [...]

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?