MongoDB: introdução à sua próxima base de dados

51
MongoDB: introdução à sua próxima base de dados Jordan Kobellarz

Transcript of MongoDB: introdução à sua próxima base de dados

Page 1: MongoDB:  introdução à sua próxima base de dados

MongoDB: introdução à

sua próxima base de dadosJordan Kobellarz

Page 2: MongoDB:  introdução à sua próxima base de dados

★ 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:

Page 4: MongoDB:  introdução à sua próxima base de dados

Pensando em Documentos

Page 5: MongoDB:  introdução à sua próxima base de dados

“MongoDB é um banco orientado a documentos open-source que permite alta performance, alta

disponibilidade e escalabilidade automática.”

MongoDB - 10gen

Page 6: MongoDB:  introdução à sua próxima base de dados

★ NoSQL orientado a documentos

★ horizontalmente escalável (Sharding)

★ alta disponibilidade (Replica set)

★ schemaless

características:

Page 7: MongoDB:  introdução à sua próxima base de dados

★ parecido com um registro de uma tabela

★ chave-valor: JSON / BSON

★ unidade atômica

o que é um documento?

Page 8: MongoDB:  introdução à sua próxima base de dados

formato JSON

Page 9: MongoDB:  introdução à sua próxima base de dados

formato BSON

Page 10: MongoDB:  introdução à sua próxima base de dados

exemplo de documento:

Page 11: MongoDB:  introdução à sua próxima base de dados

★ parecido com uma tabela

★ conjunto de documentos

★ schemaless

★ não-relacional

o que é uma coleção?

Page 12: MongoDB:  introdução à sua próxima base de dados

exemplo de coleção:

Page 13: MongoDB:  introdução à sua próxima base de dados

SQL para MongoDB:

Page 14: MongoDB:  introdução à sua próxima base de dados

executáveis MongoDB:

Page 15: MongoDB:  introdução à sua próxima base de dados
Page 16: MongoDB:  introdução à sua próxima base de dados

Mongo Shell & CRUD

Page 17: MongoDB:  introdução à sua próxima base de dados

create

delete

read

update

Page 18: MongoDB:  introdução à sua próxima base de dados

insere

Page 19: MongoDB:  introdução à sua próxima base de dados

insere

Page 20: MongoDB:  introdução à sua próxima base de dados

insere

Page 21: MongoDB:  introdução à sua próxima base de dados

insere

Page 22: MongoDB:  introdução à sua próxima base de dados

retorna

{...}

Page 23: MongoDB:  introdução à sua próxima base de dados

retorna

Page 24: MongoDB:  introdução à sua próxima base de dados

retorna

Page 25: MongoDB:  introdução à sua próxima base de dados

retorna

Page 26: MongoDB:  introdução à sua próxima base de dados

retorna

Page 27: MongoDB:  introdução à sua próxima base de dados

altera

Page 28: MongoDB:  introdução à sua próxima base de dados

remove

Page 29: MongoDB:  introdução à sua próxima base de dados
Page 30: MongoDB:  introdução à sua próxima base de dados

replicação e sharding

Page 31: MongoDB:  introdução à sua próxima base de dados

★ redundância

★ alta disponibilidade

★ distribuição de carga de leitura

★ distribuição geográfica

por que replicar?

Page 32: MongoDB:  introdução à sua próxima base de dados
Page 33: MongoDB:  introdução à sua próxima base de dados

★ 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)?

Page 34: MongoDB:  introdução à sua próxima base de dados
Page 35: MongoDB:  introdução à sua próxima base de dados
Page 36: MongoDB:  introdução à sua próxima base de dados

quando replicar equando particionar?

Page 37: MongoDB:  introdução à sua próxima base de dados

replicar sempre que possível

particionar somente quando precisar

Page 38: MongoDB:  introdução à sua próxima base de dados
Page 39: MongoDB:  introdução à sua próxima base de dados

quando JAMAIS usar o MongoDB

Page 40: MongoDB:  introdução à sua próxima base de dados

★ não é ACID compliant

★ é schemaless

★ é não-relacional

★ não possui constraints

sabendo que:

Page 41: MongoDB:  introdução à sua próxima base de dados

★ 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:

Page 42: MongoDB:  introdução à sua próxima base de dados
Page 43: MongoDB:  introdução à sua próxima base de dados

quando dar uma chance ao MongoDB

Page 44: MongoDB:  introdução à sua próxima base de dados

★ armazena JSON

★ permite alto throughput

★ é schemaless

★ agile friendly

★ permite escalabilidade horizontal automática

sabendo que:

Page 45: MongoDB:  introdução à sua próxima base de dados

★ 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:

Page 46: MongoDB:  introdução à sua próxima base de dados
Page 47: MongoDB:  introdução à sua próxima base de dados

Mude seupensamento

Page 48: MongoDB:  introdução à sua próxima base de dados

“Quando o único instrumento que você tem é um martelo, todo problema que

aparece você trata como um prego”Mark Twain

Page 49: MongoDB:  introdução à sua próxima base de dados

“O bom analista sabe escolher a ferramenta ideal para cada tipo de

necessidade ”

Page 50: MongoDB:  introdução à sua próxima base de dados

★ Relacional - integridade

★ Key-value - simplicidade

★ Documento - flexibilidade

★ Colunar - escalabilidade

★ Grafo - complexidade

as ferramentas:

Page 51: MongoDB:  introdução à sua próxima base de dados

Perguntas? : )