Este site está em conformidade com a Lei Geral de Proteção de Dados (LGPD) e utiliza cookies para oferecer uma melhor experiência ao visitante. Ao navegar, você consente com a nossa Política de Cookies e com nossa Política de Privacidade.

Bancos de Dados NoSQL

5/jun/2013
|
Equipe Triscal

imagem destacada do artigo Bancos de Dados NoSQLBancos de dados NoSQL desempenham um importante papel em aplicações de Big Data. Apesar desta tecnologia não ser tão recente, ela ainda é pouco difundida em termos de uso no mercado corporativo. Vamos descrever resumidamente do que se trata e como esta tecnologia se integra nas soluções de Big Data.

Para entendermos melhor o que são bancos NoSQL, vamos primeiro falar sobre os sistemas gerenciadores tradicionais de bancos de dados relacionais (RDBMS). Eles estão presentes no mundo corporativo há várias décadas e desempenham um papel tecnológico importantíssimo ao gerenciar os dados de forma consistente e segura. A utilização principal desses gerenciadores de bancos de dados está ligada aos sistemas transacionais (OLTP) e aos sistemas de suporte à decisão (OLAP) e, para tal, devem atender a requisitos associados a consistência, integridade e relacionamentos, tais como:

  • controle transacional, consistência para cada sessão, o que podemos resumir com o termo ACID (Atomicidade, Consistência, Isolamento e Durabilidade);
  • chaves estrangeiras e primárias, integridade rígida;
  • linguagem SQL, relacionamentos e joins, possibilidade de realizar a leitura de várias tabelas ao mesmo tempo;
  • consistência em todos os nós do cluster, em qualquer momento.

Existem alguns estudos, entre eles o teorema CAP (CAP Theorem), que estabelecem uma relação antagônica entre consistência e disponibilidade em sistemas distribuídos, ou seja, quanto maior for uma, menor será a outra. Pois bem, diferentemente dos bancos de dados relacionais, os bancos NoSQL privilegiam a disponibilidade em detrimento da consistência com o objetivo de facilitar a escalabilidade em um cluster distribuído de baixo custo. Fica a cargo da aplicação preocupar-se com a integridade dos dados.

Os bancos NoSQL geralmente trabalham com estruturas de dados do tipo chave-valor, nas quais o valor pode assumir o formato JSON (utilizado por diversas redes sociais), XML, BLOBs (imagens, vídeos etc) ou formatos customizados. Geralmente, esses bancos não oferecem SQL nem joins. Essa forma de trabalho possibilita que a tecnologia tenha performance e escalabilidade muitíssimo superiores para consulta e inserção de dados, trabalhando com facilidade enormes volumes, o que a torna uma ferramenta importante quando falamos de Big Data, principalmente em casos de uso Real-Time.

Muitos sites na Internet estão gerenciando os perfis dos consumidores utilizando essa tecnologia, armazenando dados cadastrais e históricos de interações com o usuário. Programas específicos podem então trabalhar esses dados, gerando recomendações personalizadas para o consumidor. Sites de busca e redes sociais também estão entre os grande usuários de bancos de dados NoSQL.

Existem diversas opções open-source e comerciais de bancos de dados NoSQL no mercado. Podemos relacionar algumas: HBase (que utiliza o armazenamento em Hadoop/HDFS), Cassandra, Aerospike, DynamoDB, MongoDB, Couchbase (muito utilizado com aplicações Mobile) e Oracle NoSQL (que possui versões Community e Enterprise).

Big Data é um assunto bastante abrangente e complexo. Estarei postando, sempre que possível, novas matérias sobre o tema. Fique a vontade para comentar meus artigos e para sugerir temas para os próximos posts.

imagem avatar fale conosco

Clique e fale conosco!