padrões de acesso não são conhecidos • Quando há necessidade de consultas flexíveis • Quando há a necessidade de garantir as restrições acima de qualquer outra questão • Quando utilizar SQL é uma vantagem • Quando os padrões de acesso são conhecidos • Quando as chaves primárias são conhecidas • Quando o dado é naturalmente “não relacional” • Quando alto desempenho e baixa latência são requisitos do negócio
seu sistema Padrões de acesso (locação de imóveis) Leitura • Procurar imóveis por localização • Recuperar todos os detalhes do imóvel pela identificação • Recuperar todos os alugueis de um imóvel (do ponto de vista do dono do imóvel) • Recuperar todos os imóveis alugados (do ponto de vista do usuário) • Recuperar todos os imóveis (do ponto de vista do dono do imóvel) • .... Escrita • Adicionar um novo imóvel • Alugar um imóvel • ...
“imovel” id_dono titulo descricao pais cidade TABELA id_imovel data_inicio data_fim id_usuario • Adicionar um novo imóvel • Recuperar todos os detalhes do imóvel pela identificação • Alugar um imóvel • Recuperar todos os alugueis de um imóvel (do ponto de vista do dono do imóvel)
“imovel” id_dono titulo descricao pais cidade TABELA id_imovel data_inicio data_fim id_usuario ? ? id_imovel id_dono titulo descricao • Adicionar um novo imóvel • Recuperar todos os detalhes do imóvel pela identificação • Alugar um imóvel • Recuperar todos os alugueis de um imóvel (do ponto de vista do dono do imóvel) • Procurar imóveis por localização
“imovel” id_dono titulo descricao pais cidade pais#cida de TABELA id_imovel data_inicio data_fim id_usuário GSI1 pais#cidade id_imovel id_dono titulo descricao • Adicionar um novo imóvel • Recuperar todos os detalhes do imóvel pela identificação • Alugar um imóvel • Recuperar todos os alugueis de um imóvel (do ponto de vista do dono do imóvel) • Procurar imóveis por localização
“imovel” id_dono titulo descricao pais cidade pais#cida de TABELA id_imovel data_inicio data_fim id_usuário GSI1 pais#cidade id_imovel id_dono titulo descricao GSI2 id_usuario data_inicio data_fim id_imovel • Adicionar um novo imóvel • Recuperar todos os detalhes do imóvel pela identificação • Alugar um imóvel • Recuperar todos os alugueis de um imóvel (do ponto de vista do dono do imóvel) • Procurar imóveis por localização • Recuperar todos os imóveis alugados (do ponto de vista do usuário)
“imovel” id_dono titulo descricao pais cidade pais#cid ade TABELA id_imovel data_inicio data_fim id_usuário GSI1 pais#cidade id_imovel id_dono titulo descricao GSI2 id_usuario data_inicio data_fim id_imovel GSI3 id_dono id_imovel titulo descricao pais cidade • Adicionar um novo imóvel • Recuperar todos os detalhes do imóvel pela identificação • Alugar um imóvel • Recuperar todos os alugueis de um imóvel (do ponto de vista do dono do imóvel) • Procurar imóveis por localização • Recuperar todos os imóveis alugados (do ponto de vista do usuário) • Recuperar todos os imóveis (do ponto de vista do dono do imóvel) https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-general-nosql-design.html#bp-general-nosql-design-concepts
consistente por segundo ou duas leituras eventuais por segundo, para um item até 4 KB • Para efeito de cálculo, o tamanho do item deve ser arredondado para o próximo múltiplo de 4 KB (uma leitura de 2.5 KB vai consumir 4KB)
Número de itens lidos por segundo: 5 • RCU para leitura consistente: 10=>12=>12/4=3=>3*5=>15 • RCU para leitura eventualmente consistente: 10=>12=>12/4=3=>3*5=>15=>15/2=7.5=>8
por segundo para um item até 1 KB • Para efeito de cálculo, o tamanho do item deve ser arredondado para o próximo múltiplo de 1 KB (uma leitura de 429 KB vai consumir 1KB)
capacidade provisionada considerando os “picos” vai ser “desperdiçada” nos momentos de menos acesso. Nos momentos de menos pico não pagamos por recursos provisionados, mas não utilizados. Resolve o problema do modelo provisionado, mas não é perfeito, já que o processo de autoscaling pode levar vários minutos para provisionar o que é necessário. Não é necessário se preocupar com o Throttling e, no limite, monitoramento de capacidade. O foco é atender o negócio. Melhor se considerarmos o tráfego previsível e constante Melhor se considerarmos o tráfego previsível Melhor se considerarmos que não temos como prever o tráfego (sem padrão). Requer bom monitoramento dos limites de leitura/escrita Requer bom monitoramento dos limites de leitura/escrita Não requer bom monitoramento dos limites de leitura/escrita Pagamento por hora Pagamento por hora Pagamento por requisição