top of page

Sobre Online Archive — MongoDB

Atualizado: 1 de jun.

Nesse artigo vamos falar um pouco Online Archive, vou separar esse assunto em 2 artigos:


  • Uma visão sobre Online Archive

  • Online Archive na prática


Como o conteúdo é extenso vou fazer o máximo para sintetizar as informações e garantir que você tenha um bom entendimento sobre a ferramenta. Então, vamos lá!


O Online Archive é uma funcionalidade no Atlas MongoDB, onde é realizada a moção dos dados acessados com pouca frequência do seu Cluster Atlas para uma instância de banco de dados federado (somente leitura) gerenciado pela MongoDB em um armazenamento de objetos na nuvem (bucket S3).

Após o arquivamento dos dados você tem a opção de visualizar de forma unificada os dados do seu Cluster Atlas (dados quentes), com os dados do Online Archive (dados frios).


💡 Lembrando que o Online Archive é configurado a nível de collection.

Por que usar Online Archive?


Uma pergunta pra você: o que você faz com os dados que não são acessados com tanta frequência?

Uma base de dados com alto volume de dados impacta em duas grandes questões para as companhias, CUSTO e PERFORMANCE. Nesse caso aprender a desenhar um plano de ciclo de vida do dado é vital para que se tenha um ambiente performático e rentável.

Mantendo apenas os dados mais relevantes e acessados no cluster principal, o desempenho das consultas e operações no banco de dados operacional é otimizado.

Com Online Archive você resolve os problemas de uma base inflada e um custo elevado, de forma automática e gerenciada pela Atlas, sem necessidade de fazer qualquer movimentação de dados manualmente ou ter que dobrar seu custo pagando com recurso de máquina.


Pense em alguns pontos sobre o arquivamento:

  • Minha aplicação utilizada TODA minha base de dados?

  • Quais os critério/regra para que um dado seja arquivado? (isso vai te ajudar na construção da regra de arquivamento)

  • Por quanto tempo um registro deve permanecer na base quente? (isso te ajudará a definir o ponto de ínicio do arquivamento)

  • Existe alguma regulamentação que especifique por quanto tempo um dado deve estar armazenado no bucket? (isso te ajudará a definir o tempo em que os dados ficarão no bucket)


O que avaliar antes de usar Online Archive?


Antes de realizar qualquer processo de arquivamento é necessário que haja uma maturidade quanto ao entendimento da necessidade daquele dado em uma base quente, a base de dados produtiva. O processo de arquivamento apesar de simples é sério, e precisa ser muito bem construído, do contrário pode gerar maiores custos e enormes problemas de performance.

Só devem ser arquivados dados que não serão alterados e que terão um baixíssimo ou raros processos de consulta. Isso porque, o processo de recuperação e consulta dos dados não é o mesmo de uma base quente, e além de incorrer diretamente no custo possui uma performance diferente de um cluster comum.

Os dados arquivados não podem ser alterados e além disso a regra de arquivamento precisa ser muito bem definida para garantir que o processo esteja de acordo com as regras do produto


Preparando meu hardware


O Online Archive é executado no Cluster Atlas e utiliza os mesmos recursos da sua base de dados, como CPU, IOPS e etc. Se o seu cluster estiver executando as cargas de trabalho no limite do recurso, você poderá ter problemas. Por isso, certifique-se de que seu cluster Atlas tenha recursos em suficiente antes de ativar o Online Archive.

Se o seu cluster estiver chegando a índices acima de 70% de uso de CPU, por exemplo, recomendo-lhe subir mais um tier da máquina. De forma a garantir que haja recurso suficiente para continuar a executar os processos rotineiros e o processo do Online Archive.



Como é feito o arquivamento


O Atlas arquiva dados com base nos critérios especificados em uma regra de arquivamento, que tratemos mais detalhes no artigo Online Archive na prática.

A partir disso o Atlas move os dados para o Online Arquive, tranferindo para um armazenamento de objeto totalmente gerenciado e removendo o dado do cluster Atlas (base quente).

Um pré-requisito do processo de configuração do Online Archive é a existência de um índice performático no campo, ou no caso da query personalizada, nos campos que estão sendo utilizados como regra de arquivamento. Veja que não se trata apenas de ter ou não um índice, é necessário que ele seja performático.

Se o número de documentos digitalizados em relação ao número de documentos retornados for igual ou maior que 10, o resultado da consulta acionará um erro Index Sufficiency Warning


Particionamento


Além do critério de busca também precisamos configurar o critério de particionamento. Quando executamos o arquivamento, estes dados são armazenados no bucket e nessa estrutura não temos os índices. Por este motivo essa etapa do particionamento é muito importante, pois a as estruturas que definirmos nos ajudarão no processo de consulta dos registros.

O objetivo, portanto, é que sejam escolhidos os campos que são frequentemente utilizados na busca dos registros, e estes campos devem ser configurados na ordem em que são pesquisados. O que tornará o processo de busca mais eficiente, influindo no custo.

Podemos criar até 2 níveis de partição, caso optemos pela regra de particionamento por query, e 3 níveis quando usamos o campo de data(campo de data + 2 níveis).


Expiração de Dados


É possível configurar o limite de até 25 anos para que os dados fiquem armazenados e após o período definido sejam deletados do bucket.

Esta regra de expiração de dados entra em vigor 24horas depois de você definir o Limite de idade para exclusão


Acessando os dados arquivados


O Atlas libera 2 opções de conexão aos dados arquivados:


  • Endpoint federado que conecta no cluster Atlas (dados quente) e no Online Archive (dados frio) ao mesmo tempo. Nesse caso é possível fazer consulta nos dois lugares pelo mesmo endpoint (porém não é uma opção fortemente recomendada).


  • Endpoint direto para o Online Archive


Neste artigo falamos mais sobre uma visão geral e básica de uso do Online Archive, nos demais artigos entrarei em maiores detalhes.

Ficou com alguma dúvida ou quer contribuir com alguma informação?Deixe aqui nos comentários (:






Comments


bottom of page