Vídeo: NoSQL Database Tutorial | Types of NoSQL Databases in Terms of Storage | Big Data Tutorial 2024
As lojas de dados NoSQL originalmente se inscreveram na noção "Just Say No to SQL" (parafraseando de um campanha de publicidade antidrogas na década de 1980), e eles foram uma reação às limitações percebidas dos bancos de dados relacionais (baseados em SQL). Não é que essas pessoas odiassem o SQL, mas estavam cansadas de forçar as cavilhas quadradas em buracos redondos, resolvendo problemas que os bancos de dados relacionais não eram projetados.
Um banco de dados relacional é uma ferramenta poderosa, mas para alguns tipos de dados (como pares de valores-chave ou gráficos) e alguns padrões de uso (como armazenamento em grande escala) um banco de dados relacional apenas isn ' t prático. E quando se trata de armazenamento de alto volume, o banco de dados relacional pode ser caro, tanto em termos de custos de licença de banco de dados quanto de custos de hardware. (Os bancos de dados relacionais são projetados para trabalhar com hardware de nível empresarial.)
Assim, com o movimento NoSQL, programadores criativos desenvolveram dezenas de soluções para diferentes tipos de problemas de armazenamento e processamento de dados espinhosos. Esses bancos de dados NoSQL tipicamente fornecem escalabilidade maciça por meio de agrupamento e são muitas vezes projetados para permitir alto débito e baixa latência.
O nome NoSQL é um pouco enganador porque muitos bancos de dados que se encaixam na categoria têm têm suporte SQL (em vez de suporte "NoSQL"). Pense em seu nome em vez disso como "Not Only SQL". "
As ofertas do NoSQL disponíveis hoje podem ser divididas em quatro categorias distintas, com base em seu design e propósito:
-
lojas de valor-chave: Esta oferta fornece uma maneira de armazenar qualquer tipo de dados sem ter que usar um esquema. Isso contrasta com os bancos de dados relacionais, onde você precisa definir o esquema (a estrutura da tabela) antes que qualquer dado seja inserido. Uma vez que as lojas de valores-chave não requerem um esquema, você tem grande flexibilidade para armazenar dados em muitos formatos.
Em uma loja de valores-chave, uma linha simplesmente consiste em uma chave (um identificador) e um valor, que pode ser qualquer coisa de um valor inteiro para uma grande cadeia de dados binários. Muitas implementações de lojas de valor-chave são baseadas no papel Dynamo da Amazon.
-
Lojas familiares de colunas: Aqui você possui bancos de dados em que as colunas são agrupadas em famílias de colunas e armazenadas em conjunto no disco.
Em termos estritos, muitos desses bancos de dados não são orientados por coluna, porque eles são baseados no papel BigTable do Google, que armazena os dados como um mapa ordenado multidimensional.
-
Lojas de documentos: Esta oferta baseia-se em coleções de documentos codificados e formatados de forma semelhante para melhorar a eficiência.As lojas de documentos permitem que documentos individuais em uma coleção incluam apenas um subconjunto de campos, portanto somente os dados necessários são armazenados. Para conjuntos de dados esparsos, onde muitos campos geralmente não são preenchidos, isso pode se traduzir em economias de espaço significativas.
Em contraste, colunas vazias em tabelas de banco de dados relacionais ocupam espaço. As lojas de documentos também permitem a flexibilidade do esquema, pois somente os campos necessários são armazenados e novos campos podem ser adicionados. Mais uma vez, em contraste com os bancos de dados relacionais, as estruturas das tabelas são definidas na frente antes da armazenagem dos dados e a alteração das colunas é uma tarefa tediosa que impacta todo o conjunto de dados.
-
Banco de dados de gráficos: Aqui você tem bancos de dados que armazenam estruturas de gráficos - representações que mostram coleções de entidades (vértices ou nós) e suas relações (bordas) entre si. Essas estruturas permitem que bancos de dados de gráficos sejam extremamente adequados para armazenar estruturas complexas, como as relações de ligação entre todas as páginas da web conhecidas. (Por exemplo, as páginas da web individuais são nós e as bordas que os conectam são links de uma página para outra.)
Google, é claro, é toda a tecnologia de gráfico e inventou um mecanismo de processamento de gráfico chamado Pregel para alimentar seu PageRank algoritmo. (E sim, há um papel branco em Pregel.) Na comunidade Hadoop, existe um projeto Apache chamado Giraph (baseado no documento Pregel), que é um mecanismo de processamento de gráficos projetado para processar gráficos armazenados em HDFS.
As opções de armazenamento e processamento de dados disponíveis no Hadoop são, em muitos casos, implementações das categorias NoSQL listadas aqui. Isso irá ajudá-lo a avaliar melhor as soluções que estão disponíveis para você e ver como o Hadoop pode complementar armazéns de dados tradicionais.