Академический Документы
Профессиональный Документы
Культура Документы
Anderson
Paulucci
Nome do
Professor
Aula 1
Introduo NoSQL
Invaso dos Brbaros
> 40 anos
Era da informao
Introduo NoSQL
SQL
Mainframe
IMS Estrutura hierrquica
Motivaes NoSQL
BIG DATA - Grande volume de dados;
BIG DATA - Velocidade para analise de dados;
BIG DATA - Capturar, armazenar e analisar dados no
estruturados;
Web scale;
Flexibilidade no desenvolvimento;
Nova Arquitetura em Nuvem;
Internet of things Tudo conectado ligado;
SQL Vs NoSQL
SQL
Relacional, processamento
de transaes, concorrncia,
consistncia, baixssima
latncia;
Dificuldades para escalar;
NoSQL
No Relacional, distribudo,
alta performance para e alta
escalabilidade;
Modelo MER;
Normalizao;
RDBMS (SQL)
Regras (Constraints);
Relacionamentos (PK, FK);
Schemas;
Qual o caminho ?
O ouro est aqui!
Key-value
Famlia de Colunas
Documento DB
RDBMS
Tradicional
Social Semantic
Zone
Size
Grafos DB
Complexidade
Distribudo
Open
Scale out
Flexibilidade no Modelo
Grande quantidade de dados
Escalabilidade
Incompatibilidade de impedncia
Diferena entre a estrutura de dados na memria (aplicativo) e o modelo relacional.
Aplicaes
XML
JSON
Caractersticas:
Modelo
Relacional
RDBMS
NoSQL
MongoDB
Persistncia
Poliglota
Document Store
Graph Databases
HBase
MongoDB
DynamoDB
Neo4J
Cassandra
Couchbase
Server
Azure Table
Storage
Infinite Graph
Hypertable
CouchDB
Riak
HyperGraphDB
Amazon
SimpleDB
RethinkDB
Redis
GraphBase
Hypertable
Terrastore
Voldemort
Trinity
...
...
...
...
http://nosql-database.org/
Cluster NoSQL
Cluster DB
Cliente
J-N
Particionamento
Cliente
A-D
Cliente
E-I
Atualizao
Mestre
Consultas
Replicao
Slave 2
Slave 1
Replicao NoSQL
Replicao Mestre Escravo
Ponto nico de
falha
Sistema distribudo
Escalabilidade horizontal para leitura
Cluster A
N Mestre
Ns Escravos
DC Principal
DC Principal
DC Secundrio
DC Principal
Node A
Prioridade = 5
Node B
Prioridade = 5
Node C
Prioridade = 1
Node D
Prioridade = 5
Particionamento NoSQL
Replicao + Particionamento
Sistema distribudo
Cluster A
BRA
N Mestre
Ns Escravos
DC Principal
DC Principal
DC Secundrio
DC Principal
Node A
Prioridade = 5
Node B
Prioridade = 5
Node C
Prioridade = 1
Node D
Prioridade = 5
EUA
N Mestre
Ns Escravos
DC Principal
DC Principal
DC Secundrio
Node E
Prioridade = 5
Node F
Prioridade = 5
Node G
Prioridade = 1
Consistncia NoSQL
A consistncia um fundamento chave para entendermos os modelos de dados NoSQL. Para que
possamos obter mais dados e ganhar escalabilidade pode ser preciso relaxar a consistncia.
deadlock
Consistncia NoSQL
Performance
Conflitos de
Atualizao
Teorema de CAP
Somente possvel obter 2 delas.
CA
mesmos dados
AP
RDBMS
(Oracle,
Mysql, etc)
Dynamo
Voldemort
Aster
Greenplum
Vertica
resposta
Partition Tolerance: Sistema funcional aps
Cassandra
SimpleDB
CouchDB
Riak
Availability
falhas de rede
CAP
Tolerncia a
Parties
Consistency
CP
Big Table
Hbase
MongoDB
Redis
BASE vs ACID
NoSQL
BASE
ACID
SQL
Consistncia fraca;
Primeiro Disponibilidade;
Melhor esforo;
Respostas proximadas;
Agressivo (otimista);
+ Simples;
+ Rpido;
Fcil Evoluo;
Consitncia forte;
Isolamento;
Foco no commit;
Transaes aninhadas;
Disponibilidade ?
Conservador (pessimista);
Difcil Evoluo (ex.
Esquemas);
Orientao ao Agregados
Chave
Valor = Objeto
Endereo
Pedidos
Pagamento
Chave = ID Cliente
Cliente
Valo
r
Loja
Itens Pedidos
Produto
Plataforma
Exemplo MR
Carrinho
de
compras
Sesso
ChaveValor
Pedidos
Concludos
Orientado
Documentos
RDBMS
Estoque e
Vendas
RDBMS
DW/BI
Famlia
De
Colunas
Aula 2
Modelagem NoSQL
Documentos
Modelagem NoSQL
NoSQL = No Join
O que substitui o JOIN ?
Hierarquia;
Duplicar Dados (desnormalizar);
Diferentes modelos para consultas e indexao;
Modelagem NoSQL
Qual a prioridade ?
Alta consistncia ?
Alta performance de leitura ?
Alta performance de escrita ?
Modelagem NoSQL
Como a aplicao acessa e manipula os
dados ?
Read/Write proporo;
Tipos de consultas/atualizaes;
Ciclo de vida e tx. crescimento dos dados;
Analytics/Agregao;
Modelagem NoSQL
Updates [Normalizao Vs Agregados]
Modelagem NoSQL
Relacional
NoSQL
Modelagem NoSQL
Relacional
Documentos
Modelagem NoSQL
Embedado
Cliente
- Nome
- Categoria
- CPF
- Email
Pedidos [ ]
- Itens [ ] date
Endereo [ ]
Loja
- Nome
- Endereo
- Cliente [ ]
- CEP
- Num
Tag [ ]
- Value
Link
Modelagem NoSQL
Ferramentas para acesso:
Schemas Flexveis;
Estruturas embedadas;
ndices secundrios;
Multi-Key Indexes;
Agregao;
$project, $match, $limit, $skip, $sort, $group, $unwind
Parte 1 - Documentos
Relao 1 para 1
Parte 1 - Documentos
Relao 1 para N
Parte 1 - Documentos
Parte 1 - Documentos
Parte 1 - Documentos
Relao N p/ N
Como sua aplicao acessa e manipula os dados ?
Parte 1 - Documentos
Parte 1 - Documentos
Armazenamento Hierrquico.
Parte 1 - Documentos
Exerccio 1 - Documentos
post
comments
id *
post_id
by_user
message
data_time
likes
id *
title
description
url
likes
post_by
tags
id *
post_id
tag
1) Com base na representao do Modelo normalizado acima, crie um modelo para o JSON
otimizado para consultas simples, considerando a relao de 1 para N;
2) Crie uma coleo de documentos chamada exercicio1 com 5 documentos com base no modelo
JSON criado;
3) Aplique uma funo de processamento MapReduce para agrupar a qtd de likes por usurios do
post;
Dvidas