Persistência Poliglota: Indo além do SQL
-
Upload
luiz-fernando-duarte-jr -
Category
Data & Analytics
-
view
2.281 -
download
0
Transcript of Persistência Poliglota: Indo além do SQL
![Page 1: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/1.jpg)
![Page 2: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/2.jpg)
![Page 3: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/3.jpg)
Persistência Poliglota
![Page 4: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/4.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/5.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/6.jpg)
![Page 7: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/7.jpg)
Quando o SQL não dá conta?
![Page 8: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/8.jpg)
![Page 9: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/9.jpg)
![Page 10: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/10.jpg)
![Page 11: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/11.jpg)
![Page 12: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/12.jpg)
NOSQL não é melhor do que SQL!
![Page 13: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/13.jpg)
![Page 14: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/14.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/15.jpg)
Performance?
Armazenamento?
Índices?
Normalização excessiva?NoSQL não é melhor que
SQL!
![Page 16: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/16.jpg)
![Page 17: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/17.jpg)
![Page 18: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/18.jpg)
Para cada problema, uma solução!
![Page 19: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/19.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/20.jpg)
![Page 21: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/21.jpg)
![Page 22: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/22.jpg)
![Page 23: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/23.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/24.jpg)
![Page 25: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/25.jpg)
![Page 26: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/26.jpg)
![Page 27: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/27.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/28.jpg)
![Page 29: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/29.jpg)
![Page 30: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/30.jpg)
![Page 31: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/31.jpg)
relacionamentos complexos?
queries sobre relacionamentos?
grafos?
NOSQL graph-basedPara cada problema,
uma solução!
![Page 32: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/32.jpg)
![Page 33: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/33.jpg)
![Page 34: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/34.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/35.jpg)
![Page 36: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/36.jpg)
![Page 37: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/37.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/38.jpg)
![Page 39: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/39.jpg)
![Page 40: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/40.jpg)
![Page 41: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/41.jpg)
Como programar?
![Page 42: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/42.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/43.jpg)
![Page 44: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/44.jpg)
Casos de Uso
![Page 45: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/45.jpg)
![Page 46: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/46.jpg)
![Page 47: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/47.jpg)
Caso de Uso: ecommerce
Dados sensíveis:
SQL Tradicional
![Page 48: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/48.jpg)
Caso de Uso: ecommerce
Dados sem estrutura:
document-based
![Page 49: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/49.jpg)
Caso de Uso: ecommerce
Dados temporários:
key-value storage
![Page 50: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/50.jpg)
Caso de Uso: ecommerce
Relacionamentos:
graph-based
![Page 51: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/51.jpg)
![Page 52: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/52.jpg)
![Page 53: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/53.jpg)
![Page 54: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/54.jpg)
![Page 55: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/55.jpg)
![Page 56: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/56.jpg)
Referências
![Page 57: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/57.jpg)
![Page 58: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/58.jpg)
![Page 59: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/59.jpg)
Dúvidas?
![Page 60: Persistência Poliglota: Indo além do SQL](https://reader034.fdocument.pub/reader034/viewer/2022052116/5a64c0fd7f8b9a88148b4ec7/html5/thumbnails/60.jpg)
Obrigado!