banco de dados

Banco de dados NoSQL e sua utilização para big data

Guardar informações é crucial para o desenvolvimento humano. O banco de dados é uma forma organizada de armazenar e gerenciar informações. Através dele, é possível obter históricos, guardar dados estratégicos, promover a continuidade de inovações e tecnologias.

As informações que eram guardadas antes em imensas bibliotecas, hoje são armazenadas em grandes servidores de banco de dados.

banner livro web analytics

Como já comentei algumas vezes, dados são de grande valor para o mundo moderno e, como um ativo tão importante, precisam ser organizados e guardados em bancos de dados que são, nada mais nada menos, que coleções de informações que possuem algum tipo de relação entre si.

Bancos de dados podem armazenar diversos tipos de informações, desde pessoais até operações empresariais complexas. Alguns deles podem processar quantidades massivas de informações, o que atualmente é absolutamente necessário, visto o volume de informações geradas diariamente.

O que são bancos de dados NoSQL?

Quando se trata de bancos de dados, temos os estruturados e não estruturados.

Os bancos de dados estruturados, são baseados na linguagem SQL (Structured Query Language ou Linguagem de Consulta Estruturada), enquanto os não estruturados são conhecidos como NoSQL (Not Only SQL).

Em bancos de dados estruturados há uma organização relacional com linhas e colunas. Os dados estão normalizados, muitas vezes existem regras e tratamentos para seu pré-armazenamento.

Conhecidos como bancos não estruturados, os NoSQL são não relacionais, capazes de processar dados multiestruturados. Eles possibilitam o armazenamento em diversos formatos, dispensam a normalização, não possuem restrições de integridade e possuem modelos transacionais flexíveis.

Quando devo usar um ou outro? 

Tudo depende do que você precisa resolver. Por exemplo, se você está trabalhando com uma coleção de dados que exige uma estrutura rígida, precisa haver integridade, com regras e normalização, talvez seja mais adequado um banco de dados estruturado. 

Caso queira organizar sessões de usuários em seu site, logs de acesso a um servidor, um banco de dados não estruturado pode atender.

Quando você trabalha com quantidade massiva de dados, oriundos de vários sistemas, muitos deles estarão estruturados, com organização mais rígida, e outros não. Nesses casos pode ser necessário utilizar um modelo mais flexível, não estruturado.

Imagine uma empresa e seus diversos sistemas. Ela pode ter sistemas de CRM, cadastros de produtos, fornecedores, financeiro, além de servidores com armazenamento de documentos. Muitos desses documentos podem ter informações relacionadas com os sistemas da empresa, só que por serem de estruturas de armazenamento não se conversam. Bancos de dados não estruturados podem ajudar a resolver essa situação.

estrutura de banco de dados nosql
Data Warehouse, que pode ser NoSQL, recebendo dados de diversos sistemas.

Tipos de banco de dados NoSQL

Existem alguns bancos de dados conhecidos nesse padrão, voltados para alguns tipos específicos de processamento.

Grafos

Banco de dados de grafos são muito utilizados para redes sociais, medicina, estudos de genética, para exibição e análises de redes, entre outras aplicações que exigem relação de grafos. O foco deles é descobrir como os grafos se relacionam. Através deles é possível determinar características da amostra estudada, gostos, grupos sociais, preferências de compras por produtos, entre outras informações.

Eles possuem características de rapidez nas consultas realizadas. No R, por exemplo, existem bibliotecas bem interessantes para manipulação de dados de grafos que podem ser combinadas com esses bancos.

Alguns dos bancos de dados mais conhecidos para essa utilização são o ArangoDB, Neo4J e o Titan.

Documentos

Outro tipo interessante de banco de dados NoSQL, muito popular nesse meio, é o banco de dados orientado a documentos. Nessa categoria, temos o MongoDB, que é amplamente utilizado para guardar registros através do formato JSON (JavaScript Object Notation) — trata-se de um formato de troca de dados derivado do JavaScript. É possível notar que o modelo lembra um pouco o XML.

O MongoDB é indexado, não tem schema fixo, trabalha com diversos tipos de dados, como strings, inteiros, booleanos, arrays, entre outros.

Trata-se de um banco de dados de código aberto (free software) que começou a ser desenvolvido em 2007. Ele oferece alta disponibilidade, comandos simples e muitas possibilidades de utilização.

Colunas ordenadas

Existem outras modalidades. São também de bancos de dados NoSQL orientados em colunas, excelentes para armazenamento de dados analíticos e informações gerenciais, entre outras aplicações. 

A maior parte dos seus comandos são baseados em combinar dados de colunas para análise de informações.

Através deles é possível ter melhor compreensão dos dados analisados e um grande poder de escala.

Um dos mais conhecidos é o Apache Cassandra, um banco de dados baseado no Bigtable do Google.

Existe também o Apache HBase, que é um banco de dados em código aberto, escrito em Java, possui recursos semelhantes ao Bigtable. Ele foi projetado para armazenar dados frequentes juntos em um único local para agilizar suas consultas. Ele não suporta Joins, sendo assim, todos os dados que serão acessados ficam juntos. Eles são distribuídos em clusters. 

Chave-Valor

É um banco de dados simples, de duas colunas, que se baseia em uma chave-valor. Sendo assim, ele possui um campo chave do tipo string, atuando como identificador, e outro destinado a valor, com as informações. Chave está associada à coluna, atuando como um identificador. 

Podem ser adequados para documentos, sessões de usuários, logs, longos cadastros etc. Um dos mais conhecidos é o Amazon DynamoDB.

Conclusões

Principalmente em projetos de big data, onde há quantidade massiva de dados, sendo necessário para o trabalho modelos mais flexíveis, não relacionais, a utilização de bancos de dados NoSQL é interessante, pois os dados virão de vários sistemas e, dessa forma, podem ter múltiplas estruturas e, mesmo assim, serem organizados em um só local. 

Sendo assim, será mais fácil trabalhar com grandes quantidades de dados e prover aos analistas, informações importantes oriundas de várias fontes de dados.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *