Como gerenciar dados em escala com o MongoDB Atlas Online Archive
Avalie esse Tutorial
Vamos ser sinceros: seus dados podem ficar desatualizados e obsoletos rapidamente. Mas só porque os dados não estão sendo usados com tanta frequência como antes, não significa que não sejam ainda valiosos ou que não serão valiosos novamente no futuro. Acho que isso é especialmente verdadeiro para conjuntos de dados como dados de IoT ou conteúdo gerado pelo usuário, como comentários ou postagens. (Quando foi a última vez que você viu seus tweets de 10 anos atrás?) Esta é uma visão em tempo real do envelhecimento dos meus dados de série temporal de IoT.
Ao gerenciar sistemas que têm grandes quantidades de dados ou sistemas que estão crescendo, você pode achar que pagar para salvar esses dados se torna cada vez mais caro a cada dia. Não seria bom se existisse uma maneira de gerenciar esses dados de uma forma que ainda permita que eles sejam utilizáveis por ser fácil de consultar, além de economizar tempo e tempo? Bem, hoje é seu dia de sorte porque com o MongoDB Atlas Online Archive, você pode fazer tudo isso e muito mais!
Com o recurso de Atlas Online Archive no MongoDB Atlas, você pode criar uma regra para mover automaticamente dados acessados com pouca frequência do seu Atlas cluster ativo para armazenamento de objetos na cloud somente leitura gerenciado pelo MongoDB. Depois que seus dados forem arquivados, você terá uma visão unificada do seu Atlas cluster e do seu Atlas Online Archive usando um único endpoint..
Observação: você não pode escrever no Online Archive, pois ele é somente leitura.
Para esta demonstração, configuraremos um Atlas Online Archive para arquivar automaticamente os comentários do conjunto de dados de amostra
sample_mflix.comments
com mais de 10 anos. Em seguida, nos conectaremos ao nosso conjunto de dados usando um único endpoint e executaremos uma query para ter certeza de que ainda podemos acessar todos os nossos dados, estejam eles arquivados ou não.- O recurso Online Archive está disponível em clustersM10 e maiores que executam o MongoDB 3.6 ou posterior. Então, para esta demonstração, você precisará criar um cluster M10 no MongoDB Atlas. Clique aqui para obter informações sobre como configurar um novo MongoDB Atlas cluster.
- Carregar dados de amostra em nosso Atlas cluster garante que cada banco de dados tenha sido semeado. Usarei o
sample_mflix.comments
conjunto de dados para esta demonstração.
Se você ainda não configurou seu cluster gratuito no MongoDB Atlas, agora é um ótimo momento para fazer isso. Você tem todas as instruções nesta publicação no blog.
Os dados dos arquivos do Atlas são baseados nos critérios especificados em uma regra de arquivamento. Os critérios podem ser um dos seguintes:
- Uma combinação de data e número de dias. O Atlas arquiva dados quando a data atual excede a data mais o número de dias especificado na regra de arquivamento.
- Uma consulta personalizada. O Atlas executa a consulta especificada na regra de arquivamento para selecionar os documentos a arquivar.
Para configurar nosso Online Archive, primeiro navegue até a página Cluster do seu projeto, clique no nome do cluster para o qual deseja configurar o Online Archive e clique na guiaOnline Archive.
Em seguida, clique no botão Configure Online Archive (Configurar arquivo on-line) na primeira vez e, posteriormente, no botão Add Archive (Adicionar arquivo) para começar a configurar o Online Archive para sua coleção. Em seguida, você precisará criar uma Regra de Arquivamento especificando o espaço de nome da coleção, que será
sample_mflix.comments
para esta demonstração. Você também precisará especificar os critérios para arquivar documentos. Você pode usar uma consulta personalizada ou uma correspondência de data. Para nossa demonstração, usaremos uma correspondência de datas e arquivaremos automaticamente os comentários com mais de 10 anos (365 dias * 10 anos = 3650 dias). A aparência deve ser a seguinte quando você terminar.Opcionalmente, você pode inserir até dois campos de consulta mais comuns da coleção nos campos Segundo campo de consulta mais comum e Terceiro campo de consulta mais comum, respectivamente. Eles criarão um índice em seus dados arquivados para melhorar o desempenho de suas consultas de arquivos on-line. Para esta demonstração, deixaremos isso como está, mas se você estiver usando dados de produção, certifique-se de analisar quais queries você realizará com mais frequência em seu Online Archive.
Antes de ativar o Atlas Online Archive, é uma boa ideia executar um teste para garantir que você esteja arquivando os dados que pretende arquivar. O Atlas fornece uma query para você testar na tela de confirmação. Estou me conectando ao meu cluster usando o MongoDB Compass para testar essa query, mas fique à vontade para se conectar e executar a query usando qualquer método com o qual você se considere mais confortável. A consulta que estamos testando aqui é esta.
1 db.comments.find({ 2 date: { $lte: new Date(ISODate().getTime() - 1000 \* 3600 \* 24 \* 3650)} 3 }) 4 .sort({ date: 1 })
Quando executamos esta consulta na collection
sample_mflix.comments
, descobrimos que há um total de 50.3k documentos nesta collection e depois de executar nossa consulta para encontrar todos os comentários com mais de 10 anos, descobrimos que 43,451 documentos seriam arquivados usando esta regra. É uma boa ideia examinar os documentos para verificar se esses comentários têm de fato mais de 10 anos.Então, agora que confirmamos que isso está de fato correto e que queremos habilitar essa regra do Online Archive, volte para a página Configurar um Online Archive e clique em Iniciar arquivamento.
Por fim, verifique e confirme sua regra de arquivamento e, em seguida, sua coleção deverá começar a arquivar seus dados!
Observação: depois que seu documento estiver em fila para arquivamento, você não poderá mais editá-lo.
Ok, agora que seus dados foram arquivados, ainda queremos poder usar esses dados, certo? Então, vamos nos conectar ao nosso Arquivo Online e testar se nossos dados ainda estão lá e se ainda podemos consultar nossos dados arquivados, bem como nossos dados ativos.
Primeiro, navegue até a páginaClusters do seu projeto no Atlas e clique no botãoConectar do cluster para o qual você configurou o Atlas Online Archive. Escolha seu método de conexão. Usarei o Compass para este exemplo. Selecione Conectar ao cluster e ao Atlas Online Archive para obter a connection string que permite federar queries no cluster e no Atlas Online Archive.
Depois de navegar até a
sample_mflix.comments
collection, podemos ver que temos acesso a todos os documentos 50.3k dessa collection, mesmo depois de arquivar nossos dados antigos! Isso significa que, do ponto de vista do desenvolvimento, não há mudanças na forma como consultamos nossos dados, já que podemos acessar dados arquivados e dados ativos a partir de um único endpoint! Não é legal?Aqui está! Neste post, exploramos como gerenciar seus dados do MongoDB em escala usando o MongoDB Atlas Online Archive. Criamos um Online Archive para que o Atlas arquive automaticamente os comentários do conjunto de dados do
sample_mflix.comments
que tinham mais de 10 anos. Em seguida, nos conectamos ao nosso conjunto de dados e fizemos uma query para ter certeza de que ainda poderíamos acessar e consultar todos os nossos dados de um endpoint unificado, independentemente de terem sido arquivados ou não. Essa técnica de arquivamento de dados obsoletos pode ser um recurso poderoso para lidar com conjuntos de dados que são enormes e/ou estão crescendo rapidamente, a fim de economizar tempo, dinheiro e custos de desenvolvimento à medida que as solicitações de dados aumentam.Se tiver dúvidas, acesse o site da nossa comunidade de desenvolvedores, no qual os engenheiros e a comunidade do MongoDB ajudarão você a desenvolver sua próxima grande ideia com o MongoDB.