nosql onde vivem e como se alimentam ? (evento yolab s03e01 03/2014)

44
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

Upload: alvaro-viebrantz

Post on 25-May-2015

356 views

Category:

Data & Analytics


0 download

DESCRIPTION

Apresentação sobre diferentes modelos de dados de bancos NoSQL e como as grande empresas utilizam esses produtos para resolver seus problemas.

TRANSCRIPT

Page 1: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

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

Page 2: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

Alvaro Viebrantz Analista de TI - Sefaz-MT

!Blog = ?

[email protected]

!@alvinhuuu

Page 3: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

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.

Page 4: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

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.

Page 5: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

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

Page 6: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

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

Page 7: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

Primeiras Especies Encontradas

NoSQL - Onde Vivem e Como se Alimentam

Page 8: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

!‣ 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

Page 9: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

Familias principais de NoSQL

NoSQL - Onde Vivem e Como se Alimentam

http://www.nosql-database.org/

Page 10: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

Familias principais de NoSQL

NoSQL - Onde Vivem e Como se Alimentam

BigTable GraphKey Value Store Document

http://www.nosql-database.org/

Page 11: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

RelacionamentosModelos Agregados

Familias principais de NoSQL

NoSQL - Onde Vivem e Como se Alimentam

BigTable GraphKey Value Store Document

http://www.nosql-database.org/

Page 12: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

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

Page 13: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

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

Page 14: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

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

Page 15: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

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

Page 16: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

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

Page 17: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

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

Page 18: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

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

Page 19: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

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

Page 20: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

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.

Page 21: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

• 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

Page 22: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

• 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

Page 23: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

Familia Document Store

NoSQL - Onde Vivem e Como se Alimentam

Page 24: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

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

Page 25: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

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

Page 26: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

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/

Page 27: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

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

Page 28: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

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

Page 29: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

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

Page 30: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

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

Page 31: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

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

Page 32: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

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

Page 33: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

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 ?

Page 34: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

Familia Graph Store Aplicação

• Recomendações em geral

• Amigos em rede sociais

NoSQL - Onde Vivem e Como se Alimentam

Page 35: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

Familia Graph Store Aplicação

• Recomendações em geral

• Amigos em rede sociais

NoSQL - Onde Vivem e Como se Alimentam

Page 36: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

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 ?

Page 37: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

Familia Graph Store Aplicação (continuação)

• Recomendações em geral

• Produtos baseados em compras passadas

NoSQL - Onde Vivem e Como se Alimentam

Page 38: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

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 ?

Page 39: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

Big PlayersNoSQL - Onde Vivem e

Como se Alimentam

Analise de Impacto

LogisticaDetecção de Fraude

Gerenciamento de Data Center

Recomendação de Seguidores FlockDB

Page 40: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

Ecossistema Poliglota

• Escolher a melhor ferramenta para o trabalho.

• Nenhuma ferramenta deve resolver todos os problemas.

NoSQL - Onde Vivem e Como se Alimentam

Page 41: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

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

Page 42: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

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

Page 43: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

NoSQL - Onde Vivem e Como se Alimentam

Perguntas e Respostas

Page 44: NoSQL Onde Vivem e Como se Alimentam ? (Evento yoLab s03e01 03/2014)

That`s all folks

NoSQL - Onde Vivem e Como se Alimentam

Perguntas e Respostas