3. Big Data - Definição
O que não é:
3Imagem disponível em: <http://bit.ly/1HD7Q5V>
4. Big Data - Definição
O que é:
● Termo nasceu nos anos 90, na NASA.
● Descrição de grandes conjuntos de dados complexos que desafiavam os
limites computacionais tradicionais de:
○ captura
○ processamento
○ análise
○ armazenamento
4
5. Big Data - Definição
O que é:
“Conjuntos de dados extremamente amplos e que, por este motivo, necessitam de
ferramentas especialmente preparadas para lidar com grandes volumes, de forma que
toda e qualquer informação nestes meios possa ser encontrada, analisada e
aproveitada em tempo hábil.” [ALECRIM, 2013]
“Transformação na forma como a informação é captada, processada e disseminada em
todos os níveis da sociedade.” [AVOYAN, 2013]
“Análise de grandes quantidades de dados para a geração de resultados importantes
que, em volumes menores, dificilmente seriam alcançados.” [ALECRIM, 2013]
5
6. Big Data - Definição
MAS E AÍ? O QUE É ISSO???
CONCEITO DA ANÁLISE DE GRANDE
QUANTIDADE DE DADOS ESTRUTURADOS E
NÃO ESTRUTURADOS, GERANDO
INFORMAÇÕES ANTES NÃO RELACIONADAS.
6
7. Big Data - Contextualização
● Emails
● Blogs
● Redes Sociais
● Aplicações
● Gadgets
● IoT
● Cidades Inteligentes
7Imagem disponível em: <http://bit.ly/1JmL7ve>
8. Big Data - Contextualização
Crescimento na produção e fluxo de dados.
8
0 a 2003:
5 exabytes
até 2012:
2.7 zettabytes
até 2015:
8.1 zettabytes
Fonte: Intel Brasil em <http://bit.ly/1ObiC7g>
1 exabyte =
1.000.000.000 de
GB
1 zettabyte =
1.000.000.000 de
TB
Imagem disponível em: <http://bit.ly/1HD7XP2>
9. Big Data - Contextualização
9
Fontes: http://canaltech.com.br/noticia/redes/Estudo-preve-aumento-de-10x-no-trafego-global-de-dados-moveis-ate-2019/
http://olhardigital.uol.com.br/noticia/trafego-de-redes-sociais-mais-que-dobra-em-um-ano/39461
http://www1.folha.uol.com.br/tec/2015/02/1595790-redes-sociais-e-videos-lideram-trafego-de-web-movel-no-mundo-diz-estudo.shtml
10. Big Data - Contextualização
10
Fonte: http://www.cisco.com/web/PT/press/articles/2015/20150203.html
11. Big Data - Motivação
● Forma como estas informações são tratadas
● Informação é dinheiro!
● 1kg de ferro (R$ 3,81) vs. 1kg de satélite (U$$ 50.000)
● Uso destas informações como ativos empresariais
11
12. Big Data - Objetivos
Ter, a partir de análise de dados em massa,
informações valiosas sobre o que se analisa.
12
13. Big Data - Objetivos
Objetivos distintos:
● Combater o câncer
Em parceria com um consórcio da área de saúde, a IBM está usando seu supercomputador Watson para
escanear mutações genéticas e descobrir o melhor tratamento para cada tipo de câncer.
● Medir inflação
Em São Francisco,a startup Premise paga 700 colaboradores que tiram fotos do preço e disponibilidade
de alguns produtos nas prateleiras de 25 cidades na Ásia, América Latina (incluindo o Brasil) e Estados Unidos.
Reunidos, os dados são usados para medir inflação.
● Acabar com engarrafamentos
A Prefeitura de Dublin fez um acordo com IBM e usou câmeras e GPS para monitorar trânsito da cidade
a fim de evitar congestionamentos e a lotação de transportes públicos.
● Oferecer filmes
Hoje, o Netflix já usa dados de big data para indicar filmes para os usuários do site de acordo com suas
preferências.
13
14. Big Data - Objetivos
Objetivos distintos:
● Prever fim de namoro
Um algoritmo no Facebook analisou 8,6 bilhões de conexões de 1,3 milhão de usuários do Facebook
para aprender a prever quando um namoro está perto do fim.
● Evitar suicídios
O Durkheim é um projeto que acompanha redes sociais para detectar palavras e frases que
caracterizem o autor como um potencial suicida.
● Encontrar namorados
O OkCupid e outros sites de encontro já usam big data para identificar entre seus usuários cadastrados
quais são aqueles que tem a maior chance de formar casais com potencial de dar certo.
● Eleger candidatos
Nas eleições de 2012, Barack Obama recolheu por 18 meses dados sobre seus eleitores na internet. Isso
permitiu uma melhor compreensão dos interesses e preocupações do eleitorado e, provavelmente, o ajudou a
ser reeleito presidente dos EUA.
14
15. Big Data - Objetivos
Objetivos distintos:
● Evitar fraudes
Em parceria com a Accenture, uma grande operadora de celular brasileira (que a Accenture não conta
qual é por razões contratuais) desenvolveu um sistema baseado em big data voltado para a indústria
financeira. Ao informar dados relativos à localização de smartphones, a novidade pretende inibir as fraudes
nas compras com cartão.
● Espionar pessoas
Em 2013, Edward Snowden revelou a existência na NSA do X-Keyscore, que captura todo o conteúdo que
trafega na conexão interceptada para, depois, analisá-lo e extrair os dados desejados. Só em 2012, agências
federais dos EUA gastaram 5 bilhões de dólares com pesquisas em big data - o investimento deve chegar a 8
bilhões de dólares em 2017.
● Ganhar a Copa!!!
A Seleção Alemã usou uma solução de big data chamada Match Insights. O aplicativo deixa técnicos e
preparadores processarem todo o volume de informações que é gerado em uma partida ou mesmo na
preparação. Dessa forma, eles avaliam situações de jogo e descobrem o que é mais indicado para cada um da
equipe fazer nos treinos.
15
16. Big Data - Como Funciona
5 Vs do Biga Data
● Volume
● Variedade
● Velocidade
● Veracidade*
● Valor*
16
17. Big Data - Como Funciona
● Bancos Comuns, por que não?
○ Elasticidade
○ Padrão ACID (atomicidade, consistência, isolamento, durabilidade)
● O Big Data se baseia nas propriedades do padrão BASE
(basicamente disponível, estado leve, eventualmente consistente).
17
18. Big Data - Estudos de Caso
● IBM Many Eyes
● IBM Watson Analytics
18
manyeyes
Imagem disponível em: <http://bit.ly/1Oii5Av>
19. NoSQL
O que não é:
NoSQL não significa uma
negação ao SQL
19
Imagem disponível em: <http://bit.ly/1SriphD>
20. NoSQL
O que é:
NoSQL significa uma alternativa aos bancos de
dados relacionais.
20Imagem disponível em: <http://bit.ly/1e4CXia>
21. NoSQL - Definição
Segundo seu autor, Carlo Strozzi(2007), o
NoSQL "é completamente distinto do
modelo relacional e portanto deveria ser
mais apropriadamente chamado ‘NoREL’ ou
algo que produzisse o mesmo efeito".
21
22. NoSQL - Contextualização
● Popularização da Internet
● Crescimento na quantidade de dados
● Redes sociais
● Dados gerados através de dispositivos móveis
● Análise de dados
22
24. NoSQL - Motivação
● Escalabilidade
● Suporte a dados semiestruturados, não
estruturados ou complexos
● Necessidade de mais desempenho
● Dificuldades do SQL com distribuição
horizontal
24
25. NoSQL - Motivação
● Então o NoSQL é a solução
para todos os problemas?
● Bancos relacionais são mais indicados em
situações nas quais os dados são muito
importantes e não pode haver nenhuma
quebra de referência. Ex.: Transações
bancárias
25Imagem disponível em: <http://bit.ly/1Objqci>
26. NoSQL - Porque SGBDs não são recomendados?
Modelo de garantia baseado no ACID
Inviabiliza a distribuição de dados de forma elástica
Esse tipo de controle é quase inviável se dados e
processamento são divididos em vários nós
26
27. NoSQL - Teorema CAP
O Teorema CAP (Consistency,
Availability, Partition tolerance)
diz que só é possível garantir
duas dessas propriedades
simultaneamente em um
ambiente de processamento
distribuído de grande porte.
27
28. NoSQL - Como funciona
NoSQL utiliza o paradigma BASE, trazendo uma sensível
garantia de consistência dos dados, se comparados aos
SGBDs tradicionais.
BA -> se um nó cair, os outros continuam processando
Ss/Ec -> o banco está sempre em estado leve, de
mudanças, de acordo com as entradas de dados. Com o
tempo, consigue desenvolver um padrão de consistência.
28
29. NoSQL - Tipos de armazenamento
Há vários tipos de armazenamento, com
características específicas
Isso possibilita que cada banco seja usado para
uma finalidade diferente
29
30. NoSQL - Key/Value Store (Chave/Valor)
É o tipo mais simples.
Há uma chave e um valor para a mesma.
Aguenta mais carga de dados.
Possui a maior escalabilidade.
30Imagem disponível em:
<http://bit.ly/1gCE4Yl>
Imagem disponível em: <http://bit.ly/1I8o6Q3>Imagem disponível em: <http://bit.ly/1J1l54S>
31. NoSQL - Column Oriented Store
Bancos de dados relacionais que possuem
características do NoSQL.
Dados armazenados em colunas.
31Imagem disponível em:http://bit.ly/1TKNS0F Imagem disponível em: http://bit.ly/1RHEKMH Imagem disponível em: http://bit.ly/1KeZ9Vq
33. NoSQL - Wide Columns Store
Suporta várias linhas e colunas.
Permite subcolunas.
33Imagem disponível em: <http://bit.ly/1CHXPaS> Imagem disponível em: <http://bit.ly/1e1orba> Imagem disponível em: <http://bit.ly/1LaWEn8l>
34. NoSQL - Document Store
Baseados em documentos XML e JSON.
Podem ser localizados por ID único ou
qualquer registro no documento.
34Imagem disponível em: <http://bit.ly/1DhPeGQ> Imagem disponível em: <http://bit.ly/1JiVRL5> Imagem disponível em: <http://bit.ly/1I3FDuJ>
35. NoSQL - Graph Store
Mais complexo
Guarda objetos ao invés de registros.
35Imagem disponível em: <http://bit.ly/1M6DyxH> Imagem disponível em: <http://bit.ly/1M6DG0r> Imagem disponível em: <http://bit.ly/1HyGqhE>
36. NoSQL - Modelagem
A modelagem relacional é feita a partir de
uma estrutura de dados disponível. Que
respostas eu tenho?
A modelagem NoSQL é feita a partir de
padrões de acesso específicos do aplicativo.
Que perguntas eu tenho?
36
37. NoSQL - Modelagem
Na modelagem NoSQL é preciso ter uma
compreensão mais profunda de Estruturas de
Dados que na modelagem relacional.
A desnormalização e duplicação de dados é
muito importante nos bancos não relacionais.
Existem várias técnicas para modelar,
dependendo do tipo de banco NoSQL.
37
38. NoSQL - Modelagem
A desnormalização consiste em copiar os
mesmos dados em vários documentos ou
tabelas, com o objetivo de simplificar o
processamento de consultas
38
39. NoSQL - Modelagem
Algumas técnicas de modelagem:
● Desnormalização
● Agregação
● Agregados atômicos
● Chaves enumeráveis
● Redução de dimensionalidade
39
40. NoSQL - Estudo de Caso
40
Imagem disponível em: <http://bit.ly/1GmUCIz>
41. NoSQL - Estudo de Caso - Netflix
A empresa utiliza três tipos de bancos NoSQL:
● SimpleDB (Key/Value)
● HBase (Wide Columns)
● Cassandra (Wide Columns)
41
42. NoSQL - Estudo de Caso - Netflix
Por que usar SimpleDB?
● A Netflix utiliza o serviço AWS, da Amazon.
Como o SimpleDB também é da Amazon,
esta foi uma escolha natural.
● Operações como vários atributos chave de
linha e operações em lote também fizeram
diferença na escolha.
42
43. NoSQL - Estudo de Caso - Netflix
Por que usar HBase?
● Ele está muito ligado ao Hadoop
● Possibilita a escrita de consultas em tempo
real
● Possibilita combinar consultas HBase com o
lote Map-Reduce do Hadoop
43
44. NoSQL - Estudo de Caso - Netflix
Por que usar Cassandra?
● Grande capacidade de escalabilidade
● Consegue replicar dados assincronamente
através de múltiplas regiões geográficas
● Escala dinamicamente, adicionando
servidores sem necessidade de reiniciar ou
re-shard
44
46. Q & A
1. Qual o conceito de Big Data?
R. Análise de grande quantidade de dados estruturados e não estruturados, gerando
informações antes não relacionadas.
2. Quais são as 5 características que definem o Big Data? (5 Vs)
R. Volume, Variedade, Velocidade, Veracidade, Valor
3. Por que é difícil trabalhar com Big Data nos bancos tradicionais?
R. Bancos tradicionais comprometem a elasticidade, são padrão ACID. O Big Data se
baseia nas propriedades do padrão BASE.
46
47. Q & A
4. O que é NoSQL?
R. É uma alternativa aos bancos de dados relacionais, devido a necessidade de mais
desempenho, suporte a dados complexos e escalabilidade.
5. O NoSQL é sempre o mais indicado em todos os casos?
R. Não! Os bancos relacionais são mais indicados se os dados forem muito importantes
e não puder haver quebra de referência.
6. Cite três tipos de armazenamento utilizados pelos bancos NoSQL:
R. Key⁄Value Store, Wide Columns Store, Document Store, Graph Store, Column
Oriented Store
47
48. Conclusão & Perguntas
Trabalho apresentado ao Professor Pablo, como requisito parcial para a obtenção de aprovação na
disciplina de Banco de Dados II, do curso de Bacharelado em Sistemas de Informação, no Instituto
Federal de Educação, Ciência e Tecnologia da Bahia. Vitória da Conquista, Julho de 2015.
Allexandre Sampaio Italo Miranda
48
49. Referências
ALECRIM, Emerson. O que é Big Data?. 2015. Disponível em: <http://www.infowester.com/big-data.php> Acesso em: 25 mar.
2015.
AVOYAN, Hovhannes. Big Data – O que é e por que é importante – Parte 01. 2013. Disponível em:
<http://imasters.com.br/gerencia-de-ti/tendencias/big-data-o-que-e-e-por-que-e-importante-parte-01/> Acesso em: 25 mar. 2015.
AVOYAN, Hovhannes. Big Data – O que é e por que é importante – Parte 02. 2013. Disponível em:
<http://imasters.com.br/tecnologia/big-data-o-que-e-e-por-que-e-importante-parte-02/> Acesso em: 25 mar. 2015.
AVOYAN, Hovhannes. Big Data – O que é e por que é importante – Parte 03. 2013. Disponível em:
<http://imasters.com.br/gerencia-de-ti/tendencias/big-data-o-que-e-e-por-que-e-importante-parte-03/> Acesso em: 25 mar. 2015.
AVOYAN, Hovhannes. Big Data – O que é e por que é importante – Parte 04. 2013. Disponível em:
<http://imasters.com.br/gerencia-de-ti/tendencias/big-data-o-que-e-e-por-que-e-importante-parte-04/> Acesso em: 25 mar. 2015.
COUTINHO, Emanuel F. (et al). Elasticidade em Computação na Nuvem: Uma Abordagem Sistemática. 31º Simpósio Brasileiro
de Redes de Computadores e Sistemas Distribuídos – SBRC 2013. Disponível em:
<http://sbrc2013.unb.br/files/anais/minicursos/minicurso-5.pdf> Acesso em: 20 jul. 2015.
49
50. Referências
CRIVELINI, Wagner. Minhas primeiras impressões sobre o NoSQL. 2013. Disponível em: <http://imasters.com.br/banco-de-
dados/minhas-primeiras-impressoes-sobre-o-nosql/> Acesso em: 25 mar. 2015.
FINLLEY, Klint. A grande lista de casos para usar NoSQL. 2011. Disponível em: <http://imasters.com.br/artigo/21646/banco-de-
dados/a-grande-lista-de-casos-para-usar-nosql/> Acesso em: 25 mar. 2015.
FRANÇA, Guilherme. Entenda melhor o NoSQL e o Big Data. 2013. Disponível em: <http://blog.websolute.com.br/entenda-
melhor-o-nosql-e-o-big-data/> Acesso em: 25 mar. 2015.
GUIMARÃES, Saulo P. 30 casos que mostram o impacto do big data no seu dia a dia. 2014. Disponível em:
<http://exame.abril.com.br/tecnologia/noticias/30-casos-mostram-o-impacto-do-big-data-no-dia-a-dia> Acesso em: 25 mar. 2015.
HAMANN, Renan. Do bit ao Yottabyte: conheça os tamanhos dos arquivos digitais [infográfico]. 2011. Disponível em:
<http://www.tecmundo.com.br/infografico/10187-do-bit-ao-yottabyte-conheca-os-tamanhos-dos-arquivos-digitais-infografico-.htm>
Acesso em: 04 mai. 2015.
HARVEY, Cynthia . 50 Top Open Source Tools for Big Data. 2012. Disponível em: <http://www.datamation.com/data-center/50-
top-open-source-tools-for-big-data-1.html> Acesso em: 30 abr. 2015.
50
51. Referências
IANNI, Vinicius. Introdução aos bancos de dados NoSQL. 2012. Disponível em: <http://www.devmedia.com.br/introducao-aos-
bancos-de-dados-nosql/26044> Acesso em: 25 mar. 2015.
INTELBRASIL. Afinal, o que é BIG DATA?. 2013. Disponível em: <https://www.youtube.com/watch?v=u0ux8D9skpM> Acesso
em: 26 abr. 2015.
KATSOV, Ilya. NOSQL DATA MODELING TECHNIQUES. 2012. Disponível em:
<https://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/> Acesso em: 18 jul. 2015.
LIST OF NOSQL DATABASES. 2015. Disponível em: <http://nosql-database.org/> Acesso em: 25 mar. 2015.
MAYUMI, Priscila. Recursos para aprender noSQL. 2013. Disponível em: <http://imasters.com.br/banco-de-dados/recursos-para-
aprender-nosql/> Acesso em: 25 mar. 2015.
MERIAT, Vitor. Azure Table Storage e o NoSQL – Conceitos, ACID, BASE e o Big Data. 2013. Disponível em:
<http://www.vitormeriat.com.br/azure-table-storage-e-o-nosql-conceitos-acid-base-e-o-big-data/> Acesso em: 15 jul. 2015.
51
52. Referências
NASCIMENTO, Jean. NoSQL – você realmente sabe do que estamos falando?. 2010. Disponível em:
<http://imasters.com.br/artigo/17043/banco-de-dados/nosql-voce-realmente-sabe-do-que-estamos-falando/> Acesso em: 25 mar.
2015.
PRITCHETT, Dan. Base: An Acid Alternative. Queue - Object-Relational Mapping. Volume 6, 3ª edição. May/June 2008. Páginas
48-55.
ACM New York, NY, USA. Disponível em: <http://dl.acm.org/citation.cfm?id=1394128> Acesso em: 20 jul. 2015.
ROGENSKI, Renato. Uma entrevista didática sobre Big Data. 2013. Disponível em:
<http://exame.abril.com.br/tecnologia/noticias/uma-entrevista-didatica-sobre-big-data> Acesso em: 25 mar. 2015.
TARIFA, Alexandre. O que é big data e como usar na sua pequena empresa. 2014. Disponível em:
<http://exame.abril.com.br/pme/noticias/o-que-e-big-data-e-como-usar-na-sua-pequena-empresa> Acesso em: 25 mar. 2015.
TAURION, Cezar. A revolução do Big Data está prestes a acontecer. 2012. Disponível em:
<http://imasters.com.br/artigo/23437/banco-de-dados/a-revolucao-do-big-data-esta-prestes-a-acontecer/> Acesso em: 25 mar.
2015.
52
53. Referências
VARDANYAN, Mikayel. Um olhar sobre alguns bancos de dados NoSQL. 2012. Disponível em:
<http://imasters.com.br/artigo/22034/banco-de-dados/um-olhar-sobre-alguns-bancos-de-dados-nosql/> Acesso em: 25 mar. 2015.
VIEGAS, Fernanda. Planejamento de Vendas - O que é Big Data?. TEDx São Paulo. 2009. Disponível em:
<https://www.youtube.com/watch?v=sZf8F0dziJA> Acesso em: 26 abr. 2015.
VIEIRA, Marcos Rodrigues (et al). Bancos de Dados NoSQL: Conceitos, Ferramentas, Linguagens e Estudos de Casos no
Contexto de Big Data. Minicurso no Simpósio Brasileiro de Bancos de Dados - SBBD 2012. Disponível em:
<http://data.ime.usp.br/sbbd2012/artigos/pdfs/sbbd_min_01.pdf> Acesso em: 26 abr. 2015.
53
Notas do Editor
Ao contrário do que muitos pensam, NoSQL não é uma negação ao SQL, mas sim uma alternativa aos bancos de dados relacionais. Na verdade o nome pegou por causa dos nomes de bancos de dados relacionais populares no mercado, como MySQL, MS SQL, PosgreSQL, entre outros.
Não se pode enxergar o NoSQL como um substituto para o SQL, até porque existem muitos sistemas que utilizam os dois tipos. O próprio autor do NoSQL afirmou que o nome mais apropriado seria NoRel, como uma alternativa aos bancos de dados relacionais.
Ao longo dos anos, a internet se popularizou muito, até se tornar o fenômeno que é atualmente. Essa popularização fez crescer bastante a quantidade de dados, e isso se intensifica com a chegada das redes sociais. Nessa evolução tecnológica, os dispositivos móveis desempenham um papel importantíssimo, pois grandes quantidades de dados são gerados a cada segundo pelos milhões de dispositivos espalhados pelo planeta. Esse crescimento no número de dados gera um problema: como realizar a análise para obter informações?
Notícia do site BBC Brasil, de abril de 2015. Na manchete é possível perceber a popularização da internet no Brasil. Metade da população com acesso à Internet e grande parte acessa pelo celular.
SGBDs tradicionais tem problemas quando o assunto é escalabilidade, pois quanto maior é o tamanho, mais caro se torna a escalabilidade. Às vezes pelo custo de novas máquinas, às vezes pela necessidade de aumentar o número de especialistas nos bancos de dados utilizados. Os não relacionais permitem uma escalabilidade mais barata e menos trabalhosa, porque não exigem máquinas super potentes e são de fácil manutenção.Além disso, os bancos NoSQL podem trabalhar com dados semiestruturados, vindos de diversas origens. Para lidar com grandes volumes de dados, é necessário mais desempenho. Nos bancos NoSQL, é possível escalar dividindo as tarefas em várias tarefas menores, que podem ser executadas ao mesmo tempo por vários processadores.
Os bancos NoSQL não podem substituir os relacionais, porque nem sempre podem ser utilizados. Nas situações em que os dados são muito importantes e não pode haver quebra de referência, é melhor utilizar bancos relacionais, pois estes são baseados no padrão ACID. Um exemplo de situação na qual os SGBDs tradicionais são mais recomendados é o de uma transação bancária. Não pode haver quebra de referência. Os dados tem que estar todos corretos.
A baixa elasticidade de BDs convencionais comprometem seu funcionamento com grandes cargas de dados. A elasticidade é a característica que um banco tem de aumentar ou reduzir seus recursos de acordo com a demanda , sem interrupções e em tempo de execução.
O terorema CAP diz que apenas 2 das características que ele engloba podem ser alcançadas em uma aplicação. A consistência diz respeito à execução correta de uma operação. A disponibilidade diz respeito aos resultados corretos e em tempo de uma operação. A particionalidade é o conceito de se ter uma operação completa mesmo que alguns componentes estejam indisponíveis.
NoSQL utiliza o paradigma BASE (basically available, soft state, eventually consistent), trazendo uma sensível garantia de consistência dos dados, se comparados aos SGBDs tradicionais. Esta definição ainda é um pouco rasa e imprecisa, mas genericamente quer dizer:
BA -> se um nó cair, os outros continuam processando.
Ss/Ec -> o banco está sempre em estado leve, de mudanças, de acordo com as entradas de dados. Com o tempo, consegue desenvolver um padrão de consistência.
Foram surgindo vários tipos de bancos de dados não relacionais, que trabalham dediferentes maneiras, com várias formas de armazenamento. Assim, é possível atender melhoras necessidades dos clientes desse tipo de bancos.
Esse tipo de banco armazena objetos indexados por chaves. A busca pelos objetos é feita por meio das suas chaves. Os bancos do tipo chave/valor são os que aguentam maior carga de dados e que tem a maior escalabilidade
Essa estrutura torna a escrita um pouco mais difícil, tornando o banco de dados tradicional mais apropriado quando se quer processar informações on line, e o banco orientado a colunas mais apropriado para processamento analítico on line.
São bancos nos quais os dados são coleções de atributos e valores, onde um atributo pode ser multivalorado. Os documentos armazenados não precisam possuir estrutura em comum. Essa característica permite o armazenamento de dados semiestruturados. Os documentos são localizados por id único ou por qualquer registro contido no documento.
É o tipo mais complexo de armazenamento. Os bancos desse tipo guardam objetos. Está diretamente ligado ao modelo de grafos. Este modelo é mais interessante quando a estrutura dos dados é tão importante quanto os próprios dados. O modelo orientado a grafos possui três componentes: nós (vértices), relacionamentos (arestas) e as propriedades (atributos). Assim, o banco de dados é um conjunto de grafos, no qual cada par de nós pode ser conectado por mais de uma aresta.
A modelagem dos bancos NoSQL muitas vezes começa com consultas específicas da aplicação, diferente dos modelos relacionais, nos quais começa-se com uma ideia geral da aplicação, para depois ir construindo as consultas. Por isso diz-se que a modelagem relacional parte da pergunta “Que respostas eu tenho?”, enquanto a modelagem não-relacional parte da pergunta “Que perguntas eu tenho?”.
Para realizar a modelagem não-relacional é necessário conhecer mais profundamente as Estruturas de Dados utilizadas que na relacional, pois o tipo de dado utilizado e a forma como os dados vão se conectar serão importantes para decidir as técnicas mais apropriadas.
A maioria das técnicas gira em torno da desnormalização, que consiste em copiar os dados em várias tabelas, de forma que o processamento de consultas fique mais rápido.
A empresa adotou três tipos de bancos, cada um com uma finalidade diferente dentro de seu sistema. Segundo Yury Izrailevsky (Diretor de infraestrutura de nuvem e sistemas), para o serviço disponibilizado pela Netflix a disponibilidade é mais importante que a consistência, e os bancos NoSQL permitem uma disponibilidade maior.
A Netflix utiliza um serviço da Amazon chamado AWS, que é um serviço completo de computação em nuvem. O SimpleDB também foi criado pela Amazon, portanto foi natural que esse banco fosse escolhido. Além disso, o SimpleDB permite realizar operações com vários atributos chave, operações em lote. Essas funcionalidades também ajudaram a empresa a escolher o banco.
A Netflix escolheu o HBase porque ele está intimamente ligado ao Hadoop, e pode escrever consultas em tempo real. O lado ruim é que sacrifica um pouco de disponibilidade para ter mais consistência. Mas ele permite combinar consultas HBase com o lote Map-Reduce do Hadoop e isso é uma grande vantagem.
O Cassandra foi escolhido porque tem grande capacidade de escalabilidade, fazendo isso dinamicamente adicionando servidores sem nem precisar reiniciar. Além disso, o Cassandra replica dados de forma assíncrona, através de múltiplas regiões geográficas. Então o mesmo conteúdo pode ser exibido em vários locais, sem a necessidade de estarem sincronizados.