O aumento da complexidade e evolução dos softwares nos leva a querer melhores formas de consultar e inserir informações. Atualmente existem dois modelos de armazenamento de dados: noSQL e Relacional, o primeiro devido ao alto desempenho na manipulação de grandes quantias de dados está presente nas aplicações de empresas de sucesso mundial como as de redes sociais, e-commerce,etc, e o segundo amplamente utilizado por ser seguro e confiável. Diante dessas informações é comum ter dúvida de qual modelo utilizar. Nessa palestra você aprenderá sobre persistência poliglota que propõe a coexistência de vários modelos na mesma aplicação e demonstraremos um case de uso em um e-commerce.
1. Entenda como as grandes empresas
utilizam múltiplas abordagens de
armazenamento de dados de forma
eficiente.
2. OLÁ!
Eu sou Leonardo Farias
Analista de sistemas, professor e Mestrando na UFRPE.
CSM, MSP, MTA
leoroberto@gmail.com
@profleoroberto
facebook.com/tleofarias
6. Conjunto de dados (Interação Unidade)
Agrupados como devem ser acessados
Facilitam o Gerenciamento em clusters
Utilizado pelos BDS: chave e valor,
documentos e família de colunas
Agregados
8. Banco de dados
de Documentos
Banco de dados
de Chave e Valor
Banco de dados
de Grafos
Banco de dados
de Família de Coluna
9. Banco de Dados Chave e Valor
É uma Tabela hash simples.
Acesso é feito por meio da chave primária.
Altamente escalável
🔑
🔑
🔑
🔑
10. Casos apropriados para uso
Armazenando informações de sessão.
Perfis de usuários, preferências.
Dados de carrinhos de compras.
Quando não usar
Relacionamento entre dados.
Transações com múltiplas operações.
Consulta por dados nos valores.
Operações por conjuntos.
Banco de Dados Chave e Valor🔑
11. Banco de Documentos
Armazena documentos (XML, JSON, etc)
Consulta dados dentro dos atributos.
Agregados / Visões materializadas
12. Casos apropriados para uso
Registro de eventos (log)
Gerenciamento de Conteúdo (CMS),
plataformas de blog
Análises web ou em tempo real (analytics)
Aplicativos de e-commerce (Esquemas
flexíveis para produtos e pedidos)
Quando não usar
Transações complexas que abranjam
diferentes operações(em multiplos
documentos)
Consultas em estruturas agregadas
variáveis.
Banco de Dados de Documentos
13. Banco de Dados Família de Colunas
Armazena em linha, pares de chave e valor
Grupos de dados acessados em conjunto
Mantém dados relacionados juntos
👪
🔑
🔑
🔑
14. Casos apropriados para uso
Registro de eventos (log)
Gerenciamento de Conteúdo (CMS),
plataformas de blog
Quando não usar
Quando necessário uso de transações
ACID (consultas com SUM e AVG).
Alto custo para alterar/mudar as
consultas CQL
Banco de Dados Família de Coluna👪
15. Banco de Dados Grafos
Possibilita encontrar padrões
Podemos percorrer como quiser
Dados interpretados de várias formas
Significância direcional arestas
👪
👪
👪
👪
16. Casos apropriados para uso
Dados conectados (Qualquer domínio rico
em links)
Roteamento, envio e serviços baseados
em localização
Mecanismos de recomendações
Quando não usar
Atualizações em lote (grande número de
entidades atualizadas de uma vez)
Banco de Dados de Grafos
19. Cada BD tem sua característica
+1 BD pode
ser a solução
Depende do
cenário um
BD pode ser
melhor que o
outro
BDs
Relacionais
devem ser
considerados
21. “
Martin Fowler
Uso de várias tecnologias de armazenamento de dados,
escolhidas com base na maneira como os dados estão
sendo usados por aplicativos individuais.
22.
23. Caso de Uso
- Parte mais pesada da App
- Produtos possuem atributos diferentes
- Consultas rápidas
BD de Documentos
- Eliminar joins e inner joins
- Consultas mais rápidas
(agregados)
- Estrutura elástica
- Sessão temporária (cód produto)
- Deixa de existir no final
- Não precisa persistir o dado
- Dados simples, podem ficam na
memória.
BD Chave-valor
- Não gera I/O disco
- Mantem os dados na memória
- ID da sessão e um dicionário
(produtos e qtds)
Catálogo de
Produto Carrinho de
Compras
Recomendações
De Produtos
Dados dos clientes e
Pagamentos
- Recomendações de outros
baseado em outros usuários e
outros parâmetros.
- “Seus amigos compraram esse
produto”
- Parte mais crítica e sensível dos dados
- Possui muitos relacionamentos
BD de Grafos
- Comportamentos são
armazenados e servirão de
indicação posterior.
BD Relacional
- Amplamente utilizado
- Geralmente homologados
e certificados.
24. Dicas de como escolher o BD
Dica 1
Dividir para conquistar... Selecione
cenários mais comuns, dependentes
de desempenho e que não parecem
se adaptar ao modelo atual.
Dica 2
Observe os recursos atuais e veja
como o uso dos dados é apropriado.
Dica 3
Faça experiências criando um
software, experimente os BDs (BDs
relacionais devem ser
considerados)!
Dica 4
A única forma pela qual você pode
avaliar o desempenho
apropriadamente é criando algo,
executando e testando!
Dica 5
Você precisará criar cargas e
volumes de dados representativos.
Dica 6
Se necessário, permaneça com o
padrão.