Visão geral de bancos de dados NoSQL

Índice:

Visão geral de bancos de dados NoSQL
Visão geral de bancos de dados NoSQL
Anonim

A sigla NoSQL foi criada em 1998. Muitas pessoas pensam que NoSQL é um termo pejorativo criado para cutucar o SQL. Na realidade, o termo significa não apenas SQL. A ideia é que ambas as tecnologias possam coexistir e cada uma tenha seu lugar. O movimento NoSQL tem sido notícia nos últimos anos, pois muitos dos líderes da Web 2.0 adotaram uma tecnologia NoSQL. Empresas como Facebook, Twitter, Digg, Amazon, LinkedIn e Google usam NoSQL de uma forma ou de outra. Vamos detalhar o NoSQL para que você possa explicá-lo ao seu CIO ou até mesmo aos seus colegas de trabalho.

Image
Image

NoSQL surgiu de uma necessidade

Armazenamento de dados: Os dados digitais armazenados no mundo são medidos em exabytes. Um exabyte é igual a um bilhão de gigabytes (GB) de dados. De acordo com Internet.com, a quantidade de dados armazenados adicionados em 2006 foi de 161 exabytes. Apenas 4 anos depois, em 2010, a quantidade de dados armazenados será de quase 1.000 ExaBytes, o que representa um aumento de mais de 500%. Em outras palavras, há muitos dados armazenados no mundo e eles continuarão crescendo.

Dados Interconectados: Os dados continuam a ficar mais conectados. A criação da web fomentada em hiperlinks, blogs têm pingbacks e todo grande sistema de rede social tem tags que unem as coisas. Os principais sistemas são construídos para serem interconectados.

Estrutura de dados complexa: NoSQL pode lidar facilmente com estruturas de dados aninhadas hierárquicas. Para realizar a mesma coisa no SQL, você precisaria de várias tabelas relacionais com todos os tipos de chaves. Além disso, existe uma relação entre desempenho e complexidade dos dados. O desempenho pode diminuir em um RDBMS tradicional, pois armazenamos as enormes quantidades de dados necessários em aplicativos de rede social e na web semântica.

O que é NoSQL?

Acho que uma maneira de definir o NoSQL é considerar o que ele não é. Não é SQL e não é relacional. Como o nome sugere, não é um substituto para um RDBMS, mas o complementa. O NoSQL foi projetado para armazenamentos de dados distribuídos para necessidades de dados de grande escala. Pense no Facebook com seus 500.000.000 usuários ou no Twitter que acumula Terabits de dados todos os dias.

Em um banco de dados NoSQL, não há esquema fixo e nem junções. Um RDBMS "aumenta" obtendo hardware cada vez mais rápido e adicionando memória. O NoSQL, por outro lado, pode tirar vantagem do "escalonamento". O dimensionamento horizontal refere-se à distribuição da carga em muitos sistemas de commodities. Este é o componente do NoSQL que o torna uma solução barata para grandes conjuntos de dados.

Categorias NoSQL

O mundo NoSQL atual se encaixa em 4 categorias básicas.

  1. Key-values Stores são baseadas principalmente no Dynamo Paper da Amazon, que foi escrito em 2007. A ideia principal é a existência de uma tabela de hash onde existe uma chave única e um ponteiro para um determinado item de dados. Esses mapeamentos geralmente são acompanhados por mecanismos de cache para maximizar o desempenho.
  2. Column Family Stores foram criadas para armazenar e processar grandes quantidades de dados distribuídos por muitas máquinas. Ainda existem chaves, mas elas apontam para várias colunas. No caso do BigTable (modelo Column Family NoSQL do Google), as linhas são identificadas por uma chave de linha com os dados classificados e armazenados por essa chave. As colunas são organizadas por família de colunas.

  3. Bancos de dados de documentos foram inspirados no Lotus Notes e são semelhantes aos armazenamentos de valores-chave. O modelo é basicamente documentos com versão que são coleções de outras coleções de valores-chave. Os documentos semiestruturados são armazenados em formatos como JSON.
  4. Graph Databases são construídos com nós, relacionamentos entre notas e as propriedades dos nós. Em vez de tabelas de linhas e colunas e a estrutura rígida do SQL, é usado um modelo de gráfico flexível que pode ser dimensionado em muitas máquinas.

Principais jogadores NoSQL

Os principais players do NoSQL surgiram principalmente por causa das organizações que os adotaram. Algumas das maiores tecnologias NoSQL incluem:

  • Dynamo: O Dynamo foi criado pela Amazon.com e é o banco de dados NoSQL de valor-chave mais proeminente. A Amazon precisava de uma plataforma distribuída altamente escalável para seus negócios de comércio eletrônico, então desenvolveu o Dynamo. O Amazon S3 usa o Dynamo como mecanismo de armazenamento.
  • Cassandra: Cassandra foi open source pelo Facebook e é um banco de dados NoSQL orientado a colunas.
  • BigTable: BigTable é o banco de dados orientado a colunas proprietário do Google. O Google permite o uso do BigTable, mas apenas para o Google App Engine.
  • SimpleDB: SimpleDB é outro banco de dados da Amazon. Usado para Amazon EC2 e S3, faz parte do Amazon Web Services que cobra taxas dependendo do uso.
  • CouchDB: O CouchDB junto com o MongoDB são bancos de dados NoSQL orientados a documentos de código aberto.
  • Neo4J: Neo4j é um banco de dados gráfico de código aberto.

Consultando NoSQL

A questão de como consultar um banco de dados NoSQL é o que mais interessa aos desenvolvedores. Afinal, dados armazenados em um banco de dados enorme não fazem bem a ninguém se você não puder recuperá-los e mostrá-los aos usuários finais ou serviços da web. Os bancos de dados NoSQL não fornecem uma linguagem de consulta declarativa de alto nível como o SQL. Em vez disso, consultar esses bancos de dados é > PREFIX foaf:

SELECT ?url

FROM

WHERE {

?contributor foaf:name "Jon Foobar".

?contribuinte foaf:weblog ?url.

}

Futuro do NoSQL

Organizações que têm grandes necessidades de armazenamento de dados estão olhando seriamente para o NoSQL. Aparentemente, o conceito não está ganhando tanta força em organizações menores. Em uma pesquisa realizada pela Information Week, 44% dos profissionais de TI de negócios nunca ouviram falar de NoSQL. Além disso, apenas 1% dos entrevistados relataram que o NoSQL faz parte de sua direção estratégica. Claramente, o NoSQL tem seu lugar em nosso mundo conectado, mas precisará continuar evoluindo para obter o apelo de massa que muitos pensam que poderia ter.

Recomendado: