Upload
alvaro-viebrantz
View
359
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Apresentação sobre diferentes modelos de dados de bancos NoSQL e como as grande empresas utilizam esses produtos para resolver seus problemas.
Citation preview
NoSQL Onde vivem e
Como se alimentam?
Alvaro Viebrantz
"A DBA walks into a NoSQL bar, but turns and leaves because he could't find a Table."
Webtonull
Afinal o que é NoSQL ? Pensamentos iniciais.
NoSQL - Onde Vivem 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.
Afinal o que é NoSQL ? Pensamentos iniciais.
NoSQL - Onde Vivem e Como se Alimentam
“Mas que diabos é isso que está querendo acabarcom meu emprego ?”
DBA em sua zona de conforto.
“NoSQL resolvem todos os problemas do mundo.”Eu, quando comecei a estudar NoSQL.
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 - Onde Vivem e Como se Alimentam
Not Only SQL
Trade offs• NoSQL
• BASE • Consistencia Eventual • Modelo flexível ( Schemaless ) • Escalabilidade Horizontal • Disponibilidade
NoSQL - Onde Vivem e Como se Alimentam
• SQL • ACID = Transações • Consistência Forte • Modelo rigido (Schema) • Escalabilidade Vertical
X
Primeiras Especies Encontradas
NoSQL - Onde Vivem e Como se Alimentam
!‣ 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 - Onde Vivem e Como se Alimentam
BigTable ‣ Onde foi encontrado ?
‣ Google ‣ Familia
‣ Orientado a Colunas ‣ Aplicações
‣ Analytics ‣ Email ‣ Maps
‣ Descendente ‣ HBase
BigTable
Familias principais de NoSQL
NoSQL - Onde Vivem e Como se Alimentam
http://www.nosql-database.org/
Familias principais de NoSQL
NoSQL - Onde Vivem e Como se Alimentam
BigTable GraphKey Value Store Document
http://www.nosql-database.org/
RelacionamentosModelos Agregados
Familias principais de NoSQL
NoSQL - Onde Vivem e Como se Alimentam
BigTable GraphKey Value Store Document
http://www.nosql-database.org/
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 - Onde Vivem e Como se Alimentam
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 - Onde Vivem e Como se Alimentam
ValueKeyeventos.meta.yolab.s03e01
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 - Onde Vivem e Como se Alimentam
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 - Onde Vivem e Como se Alimentam
AplicaçõesEmpresas
Controle de Sessão InstagramCache StackOverflow, Twitter e Instagram
Filas de Processamento Github e Várias libs Contagem de Notificações Tumblr e Instagram
Não tenha medo de usar
• Empresa brasileira
• Boo-Box
• Empresa de publicidade em mídias sociais
NoSQL - Onde Vivem e Como se Alimentam
http://www.slideshare.net/f_mafra/usando-redis-para-otimizar-o-sistema-boobox
AplicaçõesArmazenamento 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
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 - Onde Vivem e Como se Alimentam
Ebay
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 - Onde Vivem e Como se Alimentam
Ebay
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 - Onde Vivem e Como se Alimentam
Ebay
pages:{pageURLHash}:{userSession}1h
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 - Onde Vivem e Como se Alimentam
Ebay
pages:{pageURLHash}:{userSession}1h
pages:{pageURLHash}:*
Quantidade de usuários na ultima
hora.
• 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 - Onde Vivem e Como se Alimentam
• 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 - Onde Vivem e Como se Alimentam
Familia Document Store
NoSQL - Onde Vivem e Como se Alimentam
Aplicações
• Agregados de dados, Desnormalização e Compatibilidade de Modelos
NoSQL - Onde Vivem e Como se Alimentam
Produtoid
titulovalor
Usuarioid
nome
Enderecoid
descricaocidade_idusuario_id
n1
Pedidoid
endereco_idusuario_id
Itemid
produto_idpedido_id
qtde valor
n
1
n1
n 1
n
1
Aplicações
• Agregados de dados, Desnormalização e Compatibilidade de Modelos
NoSQL - Onde Vivem e Como se Alimentam
Produtoid
titulovalor
Usuarioid
nome
Enderecoid
descricaocidade_idusuario_id
n1
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 - Onde Vivem e Como se Alimentam
http://www.gonow.com.br/blog/2011/07/29/o-mongodb-aplicado-ao-cartolafc-da-globo-com/
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 - Onde Vivem 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
Outras Aplicações
• Logs de vários tipos
• Real-time Analytics
• Log de dados temporais
• Visitas, Crash, Busca, etc
NoSQL - Onde Vivem e Como se Alimentam
Outras Aplicações
• Logs de vários tipos
• Real-time Analytics
• Log de dados temporais
• Visitas, Crash, Busca, etc
NoSQL - Onde Vivem 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
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 - Onde Vivem 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
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 - Onde Vivem e Como se Alimentam
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 - Onde Vivem e Como se Alimentam
Familia Graph Store Funcionamento
• Armazenamento de nós e seus arestas.
• Teoria dos Grafos
• Nós e arestas podem possuir atributos
NoSQL - Onde Vivem e Como se Alimentam
Qual o Menor Caminho entre Cuiabá e Brasilia ?
Familia Graph Store Aplicação
• Recomendações em geral
• Amigos em rede sociais
NoSQL - Onde Vivem e Como se Alimentam
Familia Graph Store Aplicação
• Recomendações em geral
• Amigos em rede sociais
NoSQL - Onde Vivem e Como se Alimentam
Paulo
João
Familia Graph Store Aplicação
• Recomendações em geral
• Amigos em rede sociais
NoSQL - Onde Vivem e Como se Alimentam
João e Paulo são amigos ?
Familia Graph Store Aplicação (continuação)
• Recomendações em geral
• Produtos baseados em compras passadas
NoSQL - Onde Vivem e Como se Alimentam
Alvaro
Familia Graph Store Aplicação (continuação)
• Recomendações em geral
• Produtos baseados em compras passadas
NoSQL - Onde Vivem e Como se Alimentam
Alvaro gostaria de um produtoque seus amigos também compraram ?
Big PlayersNoSQL - Onde Vivem e
Como se Alimentam
Analise de Impacto
LogisticaDetecção de Fraude
Gerenciamento de Data Center
Recomendação de Seguidores FlockDB
Ecossistema Poliglota
• Escolher a melhor ferramenta para o trabalho.
• Nenhuma ferramenta deve resolver todos os problemas.
NoSQL - Onde Vivem e Como se Alimentam
Ecossistema Poliglota
• Escolher a melhor ferramenta para o trabalho.
• Nenhuma ferramenta deve resolver todos os problemas.
NoSQL - Onde Vivem e Como se Alimentam
X
SQL NoSQL
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 - Onde Vivem e Como se Alimentam
Redis
User Session
MongoDB
Catalogo Produtos
RDBMS
Financeiro
Neo4J
Recomen dações
Dynamo
CarrinhoRDBMS
Relatórios
RDBMS
Financeiro
Cassandra
LogAtividades
NoSQL - Onde Vivem e Como se Alimentam
Perguntas e Respostas
That`s all folks
NoSQL - Onde Vivem e Como se Alimentam
Perguntas e Respostas