O documento fornece uma introdução sobre NoSQL, discutindo suas principais famílias (Key-Value Store, Document Store, Column Store, Graph Store), exemplos de bancos de dados para cada família e casos de uso comuns. O documento também discute conceitos-chave como escalabilidade, consistência e a abordagem poliglota para bancos de dados.
Criando soluções de IoT usando Javascript de Ponta a Ponta: do Hardware até a...
NoSQL Onde Vivem e Como se Alimentam ?
1. NoSQL
Onde vivem e
Como se alimentam?
AlvaroViebrantz
"A DBA walks into a NoSQL bar,
but turns and leaves because he could't find a Table."
Webtonull
3. Afinal o que é NoSQL ?
Pensamentos iniciais.
NoSQL - OndeVivem e
Como se Alimentam
“Finalmente estou livre (de schema) !!!”
Desenvolvedor que não curte ficar modelando tabelas.
“É melhor que qualquer banco relacional !!! ”
Desenvolvedor utilizando pela primeira vez MongoDB.
4. Afinal o que é NoSQL ?
Pensamentos iniciais.
NoSQL - OndeVivem e
Como se Alimentam
“Mas que diabos é isso que está querendo acabar
com meu emprego ?”
DBA em sua zona de conforto.
“NoSQL resolvem todos os problemas do mundo.”
Eu, quando comecei a estudar NoSQL.
5. O que é NoSQL então ?
• Surgiu por conta da nova leva de aplicações que surgiram com
a Web 2.0.
• Modelos de dados diferenciado.
• Grande quantidade de dados.
• Distribuição de dados.
• Escalabilidade.
NoSQL - OndeVivem e
Como se Alimentam
Not Only SQL
6. Trade offs
• NoSQL
• BASE
• Consistencia Eventual
• Modelo flexível ( Schemaless )
• Escalabilidade Horizontal
• Disponibilidade
NoSQL - OndeVivem e
Como se Alimentam
• SQL
• ACID = Transações
• Consistência Forte
• Modelo rigido (Schema)
• Escalabilidade Vertical
X
8. !
‣ Onde foi encontrado ?
‣ Amazon
‣ Familia
‣ Orientado a Chave-Valor
‣ Aplicações
‣ Session
‣ Carrinho de compras
‣ Catalogo de Produtos
‣ Descendente
‣ Riak
DynamoDB
Primeiras Especies Encontradas
NoSQL - OndeVivem e
Como se Alimentam
BigTable
‣ Onde foi encontrado ?
‣ Google
‣ Familia
‣ Orientado a Colunas
‣ Aplicações
‣ Analytics
‣ Email
‣ Maps
‣ Descendente
‣ HBase
BigTable
9. Familias principais de NoSQL
NoSQL - OndeVivem e
Como se Alimentam
http://www.nosql-database.org/
10. Familias principais de NoSQL
NoSQL - OndeVivem e
Como se Alimentam
BigTable GraphKeyValue Store Document
http://www.nosql-database.org/
12. Familia Key-Value Store
• Basicamente armazena qualquer coisa a partir de uma chave.
• Completamente sem Schema (Schemaless)
• Operações básicas
• Get, Set, Delete
• Outras operações especificas por implementação
NoSQL - OndeVivem e
Como se Alimentam
13. Familia Key-Value Store
• Basicamente armazena qualquer coisa a partir de uma chave.
• Completamente sem Schema (Schemaless)
• Operações básicas
• Get, Set, Delete
• Outras operações especificas por implementação
NoSQL - OndeVivem e
Como se Alimentam
ValueKey
eventos.meta.
yolab.s03e01
14. Redis
Especie rara de Key-Value
• Servidor de Estruturas de Dados
• Listas, Filas, Conjuntos, etc…
• Chaves podem ter tempo de expiração.
• Chaves podem ser consultadas com wildcard.
NoSQL - OndeVivem e
Como se Alimentam
15. Redis
Especie rara de Key-Value
• Servidor de Estruturas de Dados
• Listas, Filas, Conjuntos, etc…
• Chaves podem ter tempo de expiração.
• Chaves podem ser consultadas com wildcard.
NoSQL - OndeVivem e
Como se Alimentam
Aplicações
Empresas
Controle de Sessão Instagram
Cache StackOverflow, Twitter e Instagram
Filas de Processamento Github e Várias libs
Contagem de Notificações Tumblr e Instagram
16. Não tenha medo de usar
• Empresa brasileira
• Boo-Box
• Empresa de publicidade em mídias sociais
NoSQL - OndeVivem e
Como se Alimentam
http://www.slideshare.net/f_mafra/usando-redis-para-otimizar-o-
sistema-boobox
Aplicações
Armazenamento de sessões de usuários
Cache de produtos de terceiros
Busca em catálogos de produtos de terceiros
Validação de visualizações e clicks de produtos
17. Redis
Exemplo de aplicação
• Mostrar em tempo-real usuários online vendo um
produto/página nos últimos X minutos ou horas.
• E-Commerce, Leilões, Compras Coletivas, etc.
NoSQL - OndeVivem e
Como se Alimentam
Ebay
18. Redis
Exemplo de aplicação
• Mostrar em tempo-real usuários online vendo um
produto/página nos últimos X minutos ou horas.
• E-Commerce, Leilões, Compras Coletivas, etc.
NoSQL - OndeVivem e
Como se Alimentam
Ebay
19. Redis
Exemplo de aplicação
• Mostrar em tempo-real usuários online vendo um
produto/página nos últimos X minutos ou horas.
• E-Commerce, Leilões, Compras Coletivas, etc.
NoSQL - OndeVivem e
Como se Alimentam
Ebay
pages:{pageURLHash}:{userSession}
1h
20. Redis
Exemplo de aplicação
• Mostrar em tempo-real usuários online vendo um
produto/página nos últimos X minutos ou horas.
• E-Commerce, Leilões, Compras Coletivas, etc.
NoSQL - OndeVivem e
Como se Alimentam
Ebay
pages:{pageURLHash}:{userSession}
1h
pages:{pageURLHash}:*
Quantidade de
usuários na ultima
hora.
21. • Key-Value com um pouco mais de estrutura
• Valor armazenado utiliza formatos como XML, JSON, BSON
• Estrutura de documentos flexíveis.
• Consultas por campos dos documentos.
• Inserção de documentos e atualização de campos
Familia Document Store
NoSQL - OndeVivem e
Como se Alimentam
22. • Key-Value com um pouco mais de estrutura
• Valor armazenado utiliza formatos como XML, JSON, BSON
• Estrutura de documentos flexíveis.
• Consultas por campos dos documentos.
• Inserção de documentos e atualização de campos
Familia Document Store
NoSQL - OndeVivem e
Como se Alimentam
24. Aplicações
• Agregados de dados, Desnormalização e Compatibilidade de
Modelos
NoSQL - OndeVivem e
Como se Alimentam
Produto
id
titulo
valor
Usuario
id
nome
Endereco
id
descricao
cidade_id
usuario_id
n1
Pedido
id
endereco_id
usuario_id
Item
id
produto_id
pedido_id
qtde
valor
n
1
n
1
n 1
n
1
25. Aplicações
• Agregados de dados, Desnormalização e Compatibilidade de
Modelos
NoSQL - OndeVivem e
Como se Alimentam
Produto
id
titulo
valor
Usuario
id
nome
Endereco
id
descricao
cidade_id
usuario_id
n1
26. Case Brasileiro - globo.com
• Utilizando MongoDB ao invés de MySQL em alguns projetos.
• Porque ?
• Performance
• Administração simples e transparente
• Principalmente modelo de dados
NoSQL - OndeVivem e
Como se Alimentam
http://www.gonow.com.br/blog/2011/07/29/o-mongodb-aplicado-ao-cartolafc-da-globo-com/
27. Case Brasileiro - globo.com
• Utilizando MongoDB ao invés de MySQL em alguns projetos.
• Porque ?
• Performance
• Administração simples e transparente
• Principalmente modelo de dados
NoSQL - OndeVivem e
Como se Alimentam
Catalogo de videos
Receitas (Duh!)
http://www.gonow.com.br/blog/2011/07/29/o-mongodb-aplicado-ao-cartolafc-da-globo-com/
Mural
28. Outras Aplicações
• Logs de vários tipos
• Real-time Analytics
• Log de dados temporais
• Visitas, Crash, Busca, etc
NoSQL - OndeVivem e
Como se Alimentam
29. Outras Aplicações
• Logs de vários tipos
• Real-time Analytics
• Log de dados temporais
• Visitas, Crash, Busca, etc
NoSQL - OndeVivem e
Como se Alimentam
Real-time Analytics
para Apps moveis
Logs de buscas
Metadados
Logs de atividades
(Login, pagamentos,etc)
Alimentam o sistema de
detecção de fraudes
30. Familia Column Store
Clones do BigTable
• Bilhões de linhas x Milhões de colunas
• Orientado a coluna x Orientado a linhas
• Dados esparsos
• Quantidade massiva de dados
NoSQL - OndeVivem e
Como se Alimentam
Facebook Pai
Twitter
Contar coisas (Botão de Tweet)
Netflix
Distribuição por Região e Disponibilidade
Facebook
Messages
Twitter
Analytics
Netflix
Consistencia e Distribuição
31. Familia Graph Store
Foco em relacionamentos
• Mas os banco relacionais não são feitos de relacionamentos ?
• Custoso
• Inserções comprometidas
• Buscas Complexas
• “Poucos dados” mas muitas ligações
NoSQL - OndeVivem e
Como se Alimentam
32. Familia Graph Store
Foco em relacionamentos
• Mas os banco relacionais não são feitos de relacionamentos ?
• Custoso
• Inserções comprometidas
• Buscas Complexas
• “Poucos dados” mas muitas ligações
NoSQL - OndeVivem e
Como se Alimentam
33. Familia Graph Store
Funcionamento
• Armazenamento de nós e seus arestas.
• Teoria dos Grafos
• Nós e arestas podem possuir atributos
NoSQL - OndeVivem e
Como se Alimentam
Qual o Menor Caminho entre Cuiabá e Brasilia ?
37. Familia Graph Store
Aplicação (continuação)
• Recomendações em geral
• Produtos baseados em compras passadas
NoSQL - OndeVivem e
Como se Alimentam
38. Alvaro
Familia Graph Store
Aplicação (continuação)
• Recomendações em geral
• Produtos baseados em compras passadas
NoSQL - OndeVivem e
Como se Alimentam
Alvaro gostaria de um produto
que seus amigos também compraram ?
39. Big Players
NoSQL - OndeVivem e
Como se Alimentam
Analise de Impacto
Logistica
Detecção de Fraude
Gerenciamento de Data Center
Recomendação de Seguidores
FlockDB
40. Ecossistema Poliglota
• Escolher a melhor ferramenta para o trabalho.
• Nenhuma ferramenta deve resolver todos os problemas.
NoSQL - OndeVivem e
Como se Alimentam
41. Ecossistema Poliglota
• Escolher a melhor ferramenta para o trabalho.
• Nenhuma ferramenta deve resolver todos os problemas.
NoSQL - OndeVivem e
Como se Alimentam
X
SQL NoSQL
42. Persistencia Poliglota
• Resolve problemas específicos
• Torna possível novas formas de obtenção de dados e de valor
no que o usuário produz.
NoSQL - OndeVivem e
Como se Alimentam
Redis
User
Session
MongoDB
Catalogo
Produtos
RDBMS
Financeiro
Neo4J
Recomen
dações
Dynamo
Carrinho
RDBMS
Relatórios
RDBMS
Financeiro
Cassandra
Log
Atividades