NoSQL e Dados

Para atenderem requisitos de flexibilidade, disponibilidade e desempenho das aplicações que lidam com grande volume de dados, novos modelos de armazenamento foram criados e denominados NoSQL. Uma abreviação de Not only SQL (“Não somente SQL”), pois essa abordagem abdica da integridade ACID para oferecer maior desempenho e escalabilidade às soluções de Big Data.

Uma solução é considerada escalável se for capaz de manter desempenho desejável mesmo com adição de novos usuários, funcionalidades e dados. Nos modelos de dados relacionais, esse desempenho é conseguido com adição de recursos computacionais aos servidores de banco. Uma escalabilidade vertical.

No processamento de dados em Big Data usa-se computação paralela, onde um conjunto de máquinas independentes (cluster) dividem a carga de trabalho em tarefas menores. Executando de forma distribuída uma quantidade de dados que apenas uma delas seria incapaz de processar. Uma escalabilidade horizontal.

Escalabilidade: Vertical x Horizontal. (MARQUESONE, 2016)
Escalabilidade: Vertical x Horizontal. (MARQUESONE, 2016)

A escalabilidade horizontal oferece inúmeras vantagens à execução de aplicações de Big Data, tais como: permitir que o desempenho da aplicação seja aperfeiçoado de acordo com a demanda, redução de custos para fazer um upgrade da infraestrutura, e por fim, oferece a possibilidade de escalabilidade ilimitada, principalmente em ambientes de computação em nuvem. (MARQUESONE, 2016)

O NoSQL propõe tecnologias complementares, e não substitutivas, ao modelo relacional de acordo com características de cada negócio e arquitetura.

Existem diversas implementações de bancos não relacionais, apresentando vantagens e desvantagens ao consultar e recuperar registros, com performance e escalabilidade variáveis. Eles são classificados de acordo com a estrutura de armazenamento dos dados. Segundo Paniz (2016), os principais tipos são:

Chave-valor: todos os registros fazem parte da mesma coleção de elementos e a coisa que todos eles têm em comum é uma chave única;

Colunar: todos os registros fazem parte da mesma tabela, mas cada um deles pode ter colunas diferentes;

Documento: cada registro fica armazenado em uma coleção específica, mas mesmo dentro de uma coleção, não existe um esquema fixo para os registros;

● Grafo: os registros são nós em um grafo interligados por relacionamentos.

Não existe modelo único adequado para todos os cenários de aplicações, visto que cada solução requer necessidades específicas. Um e-commerce que precisa recomendar produtos em tempo-real para seus clientes tem requisitos diferentes de uma aplicação que armazena dados genéticos para analisá-los.

Figura 1.3 - Exemplo de solução híbrida de armazenamento de dados. (MARQUESONE, 2016)
Exemplo de armazenamento híbrido de dados. (MARQUESONE, 2016)

Inclusive numa mesma aplicação, serviços distintos podem utilizar bancos de dados específicos, garantindo um bom funcionamento e performance. Conforme Marquesone (2016, p.62), a tendência é que empresas adotem soluções híbridas com diferentes modelos de bancos de dados, relacionais e NoSQL.

Referências

MARQUESONE, Rosangela. Big Data: Técnicas e Tecnologias para extração de valor dos dados. Editora Casa do Código, 220p, São Paulo, 2016. Disponível em: <http://www.casadocodigo.com.br/products/livro-big-data>.

PANIZ, David. NoSQL: como armazenar os dados de uma aplicação moderna. Editora Casa do Código, São Paulo, 2016. Disponível em: <https://www.casadocodigo.com.br/products/livro-nosql>.

Anúncios

Deixe uma resposta