60

Persistência Poliglota: Indo além do SQL

Embed Size (px)

Citation preview

Page 1: Persistência Poliglota: Indo além do SQL
Page 2: Persistência Poliglota: Indo além do SQL
Page 3: Persistência Poliglota: Indo além do SQL

Persistência Poliglota

Page 4: Persistência Poliglota: Indo além do SQL

Apresentação

Quando o SQL não dá conta?

NOSQL não é melhor que SQL!

Para cada problema, uma solução

Como programar?

Casos de Uso

Cronograma

Page 5: Persistência Poliglota: Indo além do SQL

Ciência da Computação

Computação Móvel

Dev, analista, gerente...

+10 anos programando

- inúmeros projetos entregues

- 5 anos com persistência poliglota

- 2 anos com MongoDB

Page 6: Persistência Poliglota: Indo além do SQL
Page 7: Persistência Poliglota: Indo além do SQL

Quando o SQL não dá conta?

Page 8: Persistência Poliglota: Indo além do SQL
Page 9: Persistência Poliglota: Indo além do SQL
Page 10: Persistência Poliglota: Indo além do SQL
Page 11: Persistência Poliglota: Indo além do SQL
Page 12: Persistência Poliglota: Indo além do SQL

NOSQL não é melhor do que SQL!

Page 13: Persistência Poliglota: Indo além do SQL
Page 14: Persistência Poliglota: Indo além do SQL

Entenda seu problema

Analise as opções

Escolha a ferramenta ideal

NoSQL não é melhor que

SQL!

Page 15: Persistência Poliglota: Indo além do SQL

Performance?

Armazenamento?

Índices?

Normalização excessiva?NoSQL não é melhor que

SQL!

Page 16: Persistência Poliglota: Indo além do SQL
Page 17: Persistência Poliglota: Indo além do SQL
Page 18: Persistência Poliglota: Indo além do SQL

Para cada problema, uma solução!

Page 19: Persistência Poliglota: Indo além do SQL

schema variável?

informações dispersas?

escalonamento?

NOSQL document-basedPara cada problema,

uma solução!

Page 20: Persistência Poliglota: Indo além do SQL
Page 21: Persistência Poliglota: Indo além do SQL
Page 22: Persistência Poliglota: Indo além do SQL
Page 23: Persistência Poliglota: Indo além do SQL

muitas agregações?

muitas inserções?

escalonamento?

NOSQL column-basedPara cada problema,

uma solução!

Page 24: Persistência Poliglota: Indo além do SQL
Page 25: Persistência Poliglota: Indo além do SQL
Page 26: Persistência Poliglota: Indo além do SQL
Page 27: Persistência Poliglota: Indo além do SQL

velocidade?

dados temporários?

escalonamento de índices?

NOSQL key-valuePara cada problema,

uma solução!

Page 28: Persistência Poliglota: Indo além do SQL
Page 29: Persistência Poliglota: Indo além do SQL
Page 30: Persistência Poliglota: Indo além do SQL
Page 31: Persistência Poliglota: Indo além do SQL

relacionamentos complexos?

queries sobre relacionamentos?

grafos?

NOSQL graph-basedPara cada problema,

uma solução!

Page 32: Persistência Poliglota: Indo além do SQL
Page 33: Persistência Poliglota: Indo além do SQL
Page 34: Persistência Poliglota: Indo além do SQL

coleta de estatísticas temporais?

notificações em tempo-real?

agregações por instante?

NOSQL time-series databasePara cada problema,

uma solução!

Page 35: Persistência Poliglota: Indo além do SQL
Page 36: Persistência Poliglota: Indo além do SQL
Page 37: Persistência Poliglota: Indo além do SQL

mais de um modelo?

solução tudo-em-um?

upgrade do SQL tradicional?

NOSQL multi-modelPara cada problema,

uma solução!

Page 38: Persistência Poliglota: Indo além do SQL
Page 39: Persistência Poliglota: Indo além do SQL
Page 40: Persistência Poliglota: Indo além do SQL
Page 41: Persistência Poliglota: Indo além do SQL

Como programar?

Page 42: Persistência Poliglota: Indo além do SQL

Como programar?

Algumas dicas:

1. Arquitetura em Camadas

2. Design Patterns

3. Soluções clássicas:

a. DAO + Gateway + Factory Method + Abstract Factory

b. Repository + Dependency Injection + Inversion of

Control

c. ESB + SOA

Page 43: Persistência Poliglota: Indo além do SQL
Page 44: Persistência Poliglota: Indo além do SQL

Casos de Uso

Page 45: Persistência Poliglota: Indo além do SQL
Page 46: Persistência Poliglota: Indo além do SQL
Page 47: Persistência Poliglota: Indo além do SQL

Caso de Uso: ecommerce

Dados sensíveis:

SQL Tradicional

Page 48: Persistência Poliglota: Indo além do SQL

Caso de Uso: ecommerce

Dados sem estrutura:

document-based

Page 49: Persistência Poliglota: Indo além do SQL

Caso de Uso: ecommerce

Dados temporários:

key-value storage

Page 50: Persistência Poliglota: Indo além do SQL

Caso de Uso: ecommerce

Relacionamentos:

graph-based

Page 51: Persistência Poliglota: Indo além do SQL
Page 52: Persistência Poliglota: Indo além do SQL
Page 53: Persistência Poliglota: Indo além do SQL
Page 54: Persistência Poliglota: Indo além do SQL
Page 55: Persistência Poliglota: Indo além do SQL
Page 56: Persistência Poliglota: Indo além do SQL

Referências

Page 57: Persistência Poliglota: Indo além do SQL
Page 58: Persistência Poliglota: Indo além do SQL
Page 59: Persistência Poliglota: Indo além do SQL

Dúvidas?

Page 60: Persistência Poliglota: Indo além do SQL

Obrigado!