Como usar regras de arquivamento personalizadas e o particionamento no MongoDB Atlas Online Archive
Avalie esse Tutorial
A partir de 2022 de junho , a funcionalidade anteriormente conhecida como Atlas Data Lake agora é chamada de Atlas Data Federation. A funcionalidade do Atlas Data Federation permanece inalterada e você pode saber mais sobre ele aqui. O Atlas Data Lake permanecerá na Atlas Platform, com funcionalidades recém-introduzidos que você pode aprender aqui.
Ok, então você configurou um simples MongoDB Atlas Online Archive, e agora você deve estar se perguntando: "O que vem a seguir?" Neste post, abordaremos alguns casos de uso mais avançados do Online Archive, incluindo a configuração de regras de arquivamento personalizadas e como melhorar o desempenho da consulta por meio do particionamento.
- O recurso Atlas Online Archive está disponível em clusters 3 M10e superiores que executam MongoDB . 6 ou posterior. Portanto, para esta demonstração, você precisará criar um cluster M10 no MongoDB Atlas. Clique aqui para obter informações sobre como configurar um novo cluster do MongoDB Atlas ou confira Como gerenciar dados em escala com o MongoDB Atlas Online Archive.
- Carregar dados de amostra em nosso Atlas cluster garante que cada banco de dados tenha sido semeado. Usarei o
sample_analytics.customers
conjunto de dados para esta demonstração.
Criar uma regra do Online Archive com base na data faz sentido para muitas situações de arquivamento, como o arquivamento automático de documentos com mais de X anos ou que foram atualizados pela última vez há Y meses. Mas e se você quiser ter mais controle sobre o que é arquivado? Alguns exemplos de dados que podem ser elegíveis para serem arquivados são:
- Dados que foram sinalizados para arquivamento por um administrador.
- Produtos descontinuados em seu site de comércio eletrônico.
- Dados de usuários que encerraram suas contas em sua plataforma (a menos que sejam cidadãos europeus).
- Dados de funcionários que não trabalham mais na sua empresa.
Existem muitos motivos pelos quais você pode querer definir regras personalizadas para arquivar seus dados frios. Vamos analisar como você pode conseguir isso usando regras de arquivamento personalizadas com o MongoDB Atlas Online Archive. Para esta demonstração, configuraremos um arquivo automático de todos os usuários na collection
sample_analytics.customers
que têm o campo "ativo" definido como false
.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 Configurar Atlas Online Archive pela primeira vez e no botão Adicionar Arquivo posteriormente para começar a configurar o Atlas Online Archive para sua collection. Em seguida, você precisará criar uma regra de arquivamento especificando o namespace da collection, que será
sample_analytics.customers
.Você também precisará especificar seus critérios personalizados para arquivar documentos. Você pode especificar os documentos que gostaria de filtrar para arquivamento com uma consulta do MongoDB, em JSON, da mesma forma que escreveria filtros no MongoDB Atlas.
Observação: você pode usar qualquer query válida do MongoDB Query Language (MQL), no entanto, não pode usar o argumento de documento vazio ({}) para retornar todos os documentos.
Para recuperar os documentos preparados para arquivamento, usaremos o seguinte comando de localização. Isso recuperará todos os documentos que tenham o campo `ativo` definido como `falso` ou que não tenham uma chave `ativo`.
1 { $or: [ 2 { active: false }, 3 { active: null } 4 ] }
Continue configurando seu arquivo e pronto!
Observação: é sempre uma boa ideia executar primeiro suas queries personalizadas no mongo shell para garantir que você esteja arquivando os documentos corretos.
Observação: depois que você iniciar um arquivo e um documento do MongoDB estiver na fila para arquivamento, não será mais possível editar o documento.
Uma das razões pelas quais arquivamos dados é acessá-los e consultá-los no futuro, se por algum motivo ainda precisarmos usá-los. Na verdade, você pode estar acessando esses dados com frequência! É por isso que é útil poder particionar seus dados arquivados e acelerar os tempos de consulta. Com o Atlas Online Archive, você pode especificar os dois campos consultados com mais frequência na sua coleção para criar partições no seu arquivo on-line.
Campos com uma cardinalidade moderada a alta (ou o número de elementos em um conjunto ou agrupamento) são boas opções para serem usados como partição. As consultas que não contêm esses campos exigirão uma verificação completa da coleção de todos os documentos arquivados, o que levará mais tempo e aumentará seus custos. No entanto, é um pouco mais de um equilíbrio.
Por exemplo, os campos com baixa cardinalidade não particionarão bem os dados e, portanto, não melhorarão muito o desempenho. No entanto, isso pode ser bom para consultas de intervalo ou varreduras de coleções, mas resultará em um desempenho rápido de arquivamento.
Campos com cardinalidade média a alta particionarão melhor os dados, levando a um melhor desempenho geral da consulta, mas talvez um desempenho de arquivamento um pouco mais lento.
Campos com cardinalidade extremamente alta, como
_id
, levarão a um desempenho ruim de query para tudo, exceto "point queries" que query em _id, e levarão a um pior desempenho de arquivamento devido à gravação de muitas partições.Observação: o Online Archive é distribuído por MongoDB Atlas Data Lake. Para saber mais sobre como as partições aprimoram as queries no Data Lake, consulte Estrutura de dados no armazenamento de objetos na nuvem - Amazon S3 ou Armazenamento de blobs no Microsoft Azure.
Os campos especificados são usados para dividir seus dados arquivados para otimizar o desempenho da consulta. As partições são semelhantes às pastas. Você pode mover qualquer campo para a primeira posição da partição se você consultar frequentemente por esse campo.
A ordem dos campos listados no caminho é importante da mesma forma que nos índicescompostos . Os dados no caminho especificado são particionados primeiro pelo valor do primeiro campo e, em seguida, pelo valor do próximo campo e assim por diante. O Atlas suporta consultas nos campos especificados utilizando as partições.
Você pode especificar os dois campos consultados com mais frequência em sua collection e ordená-los do campo mais consultado na primeira posição para o campo menos consultado na segunda posição. Por exemplo, suponha que você esteja configurando o Atlas Online Archive para sua collection
customers
no banco de dadossample_analytics
. Se seu campo arquivado estiver definido com a regra de arquivamento personalizada em nosso exemplo acima, seu primeiro campo consultado for username
e seu segundo campo consultado for email
, sua partição terá a seguinte aparência:1 /username/email
O Atlas cria partições primeiro para o campo
username
, seguido pelo email
. O Atlas utiliza as partições para consultas nos seguintes campos:- o campo
username
. - o campo
username
e o campo {email
Observação: o valor de um campo de partição pode ter no máximo 700 caracteres. Documentos com valores que excedam 700 caracteres não são arquivados.
Para obter mais informações sobre como fazer a partição de dados em seu Online Archive,consulte a documentação.
Nesta publicação, abordamos alguns casos de uso avançados do Online Archive para ajudá-lo a aproveitar esse recurso do MongoDB Atlas. Inicializamos um projeto de demonstração para mostrar como definir regras de arquivamento personalizadas com o Atlas Online Archive, bem como melhorar o desempenho da consulta por meio do particionamento de seus dados arquivados.
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.