Explore o novo chatbot do Developer Center! O MongoDB AI chatbot pode ser acessado na parte superior da sua navegação para responder a todas as suas perguntas sobre o MongoDB .

Saiba por que o MongoDB foi selecionado como um líder no 2024 Gartner_Magic Quadrupnt()
Desenvolvedor do MongoDB
Centro de desenvolvedores do MongoDB
chevron-right
Produtos
chevron-right
MongoDB
chevron-right

Construindo com padrões: o padrão computado

Ken W. Alger, Daniel Coupal3 min read • Published Jan 11, 2022 • Updated May 16, 2022
MongoDB
Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
Analisamos várias maneiras de armazenar dados de forma ideal na série Construindo padrões. Agora, vamos dar uma olhada em um aspecto diferente do projeto de esquema. Apenas armazenar dados e disponibilizá-los não é, normalmente, tão útil. A utilidade dos dados se torna muito mais aparente quando podemos calcular valores a partir deles. Qual é a receita total de vendas do mais recente Amazon Alexa? Quantos espetadores assistiram ao último filme de blockbuster? Esses tipos de perguntas podem ser respondidos a partir de dados armazenados em um banco de dados de dados, mas devem ser calculados.
No entanto, a execução desses cálculos toda vez que são solicitados torna-se um processo que consome muitos recursos, especialmente em conjuntos de dados enormes. Ciclos de CPU, acesso ao disco e memória, todos podem estar envolvidos.
Pense em um aplicativo da web de informações de filme. Toda vez que visitamos o aplicativo para procurar um filme, a página fornece informações sobre o número de cinemas em que o filme foi exibido, o número total de pessoas que assistiram ao filme e a receita geral. Se o aplicativo precisar computar constantemente esses valores para cada visita à página, ele poderá usar muitos recursos de processamento em filmes populares
No entanto, na maioria das vezes, não precisamos saber esses números exatos. Poderemos fazer os cálculos em segundo plano e atualizar o documento de informações do filme principal de vez em quando. Esses cálculos nos permitem mostrar uma representação válida dos dados sem precisar colocar um esforço extra na CPU.

O padrão computado

O Padrão Computado é utilizado quando temos dados que precisam ser computados repetidamente em nosso aplicativo. O Padrão Computado também é utilizado quando o padrão de acesso a dados faz uso intensivo de leitura; por exemplo, se você tiver 1,000,000 leituras por hora, mas apenas 1,000 gravações por hora, fazer a computação no momento de uma gravação dividiria o número de cálculos por um fator 1000.
Em nosso exemplo de banco de dados de filmes, podemos fazer os cálculos com base em todas as informações de exibição que temos em um determinado filme, calcular o (s) resultado (s) e armazená-los com as informações sobre o filme em si. Em um ambiente de baixa gravação, o cálculo pode ser feito em conjunto com qualquer atualização dos dados de origem. Quando há gravações mais regulares, os cálculos podem ser feitos em intervalos definidos, por exemplo, a cada hora. Como não estamos interferindo nos dados de origem nas informações de triagem, podemos continuar a executar novamente os cálculos existentes ou executar novos cálculos a qualquer momento e saber que obteremos os resultados corretos.
Outras estratégias para realizar o cálculo podem envolver, por exemplo, adicionar um carimbo de data/hora ao documento para indicar quando ele foi atualizado pela última vez. O aplicativo pode então determinar quando o cálculo precisa ocorrer. Outra opção pode ser ter uma fila de cálculos que precisam ser feitos. É melhor deixar a seleção da estratégia de atualização para o desenvolvedor do aplicativo.

Caso de uso de amostra

O Padrão Computado pode ser utilizado sempre que os cálculos precisarem ser executados em relação aos dados. Os conjuntos de dados que precisam de somas, como receitas ou visualizadores, são um bom exemplo, mas dados de séries temporais, catálogos de produtos, aplicativos de visualização única e provisionamento de evento também são principais candidatos a esse padrão.
Este é um padrão que muitos clientes implementaram. Por exemplo, um cliente faz consultas de agregação maciça em dados de veículos e armazena os resultados para que o servidor mostre as informações nas próximas horas.
Uma editora compila todos os tipos de dados para criar listas ordenadas como o "100 Best... ". Essas listas só precisam ser regeneradas de vez em quando, enquanto os dados subjacentes podem ser atualizados em outros momentos.

Conclusão

Esse poderoso padrão de design permite uma redução no volume de trabalho da CPU e maior desempenho dos aplicação . Ele pode ser utilizado para aplicar uma computação ou operação em dados em uma coleção e armazenar o resultado em um documento. Isso permite evitar que o mesmo cálculo seja feito repetidamente. Sempre que seu sistema estiver executando os mesmos cálculos repetidamente e você tiver uma alta taxa de leitura para gravação, considere o Padrão Computado.
Já percorremos mais de um terceiro da série Construindo com Padrões. Da próxima vez, examinaremos os recursos e benefícios do Padrão de Subconjunto e como ele pode ajudar com problemas de falta de memória.

Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
Relacionado
Tutorial

Começando com Kotlin e MongoDB no lado do servidor


Oct 08, 2024 | 6 min read
Tutorial

A grande migração contínua: trabalhos do CDC com o Confluent Cloud e o Relational Migrator


Aug 23, 2024 | 11 min read
Artigo

Mapeando Termos e Conceitos do SQL para o MongoDB


Oct 01, 2024 | 15 min read
Tutorial

Compressão de rede MongoDB: uma situação em que todos ganham


Aug 13, 2024 | 6 min read
Sumário
  • O padrão computado