Upload
jordan-kobellarz
View
260
Download
4
Embed Size (px)
Citation preview
MongoDB: introdução à
sua próxima base de dadosJordan Kobellarz
★ pensando em documentos
★ Mongo Shell & CRUD
★ replicação e sharding
★ quando JAMAIS usar o MongoDB
★ quando dar uma chance ao MongoDB
★ mude seu pensamento
hoje vamos ver:
Pensando em Documentos
“MongoDB é um banco orientado a documentos open-source que permite alta performance, alta
disponibilidade e escalabilidade automática.”
MongoDB - 10gen
★ NoSQL orientado a documentos
★ horizontalmente escalável (Sharding)
★ alta disponibilidade (Replica set)
★ schemaless
características:
★ parecido com um registro de uma tabela
★ chave-valor: JSON / BSON
★ unidade atômica
o que é um documento?
formato JSON
formato BSON
exemplo de documento:
★ parecido com uma tabela
★ conjunto de documentos
★ schemaless
★ não-relacional
o que é uma coleção?
exemplo de coleção:
SQL para MongoDB:
executáveis MongoDB:
Mongo Shell & CRUD
create
delete
read
update
insere
insere
insere
insere
retorna
{...}
retorna
retorna
retorna
retorna
altera
remove
replicação e sharding
★ redundância
★ alta disponibilidade
★ distribuição de carga de leitura
★ distribuição geográfica
por que replicar?
★ distribuição de carga
★ disponiblizar mais RAM ao working set
★ diminuir espaço em disco
★ ler e escrever com mais throughput
por que particionar (fazer sharding)?
quando replicar equando particionar?
replicar sempre que possível
particionar somente quando precisar
quando JAMAIS usar o MongoDB
★ não é ACID compliant
★ é schemaless
★ é não-relacional
★ não possui constraints
sabendo que:
★ transações multi-objeto -> ACID
★ constraints
★ dados estritamente tabulares
★ dados estritamente relacionais (normalizados)
★ as necessidades do negócio são comprovadamente resolvidas com eficiência por um banco relacional
JAMAIS usar MongoDB:
quando dar uma chance ao MongoDB
★ armazena JSON
★ permite alto throughput
★ é schemaless
★ agile friendly
★ permite escalabilidade horizontal automática
sabendo que:
★ armazenar dados não estruturados
★ o schema for instável
★ disponibilidade > consistência
★ precisar escalar horizontalmente
★ análise de dados em tempo real
★ time to market curto
★ equipe pequena e/ou sem DBA
dê uma chance ao MongoDB quando:
Mude seupensamento
“Quando o único instrumento que você tem é um martelo, todo problema que
aparece você trata como um prego”Mark Twain
“O bom analista sabe escolher a ferramenta ideal para cada tipo de
necessidade ”
★ Relacional - integridade
★ Key-value - simplicidade
★ Documento - flexibilidade
★ Colunar - escalabilidade
★ Grafo - complexidade
as ferramentas:
Perguntas? : )