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

Post on 12-Apr-2017

258 views 4 download

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

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