Como usar o MongoDB com as séries temporais

Como usar o MongoDB com as séries temporais

“Inserir, atualizar, localizar, excluir e agregar são todas as operações que podem ser executadas em uma coleção de séries temporais, assim como estão em uma coleção padrão. Por trás da cortina, a diferença fundamental existe. Quando você insere dados no MongoDB, eles são convertidos em um formato ideal de armazenamento. Uma série temporal é mais simples e mais eficiente em consulta do que uma coleção regular.

As coleções de séries temporais são tratadas como vistas escritas não materiais em MongoDB. Os dados são salvos com mais eficiência, conservando o espaço do disco e um índice interno baseado no tempo é construído automaticamente. Em vez de Snappy, o algoritmo ZSTD é usado por padrão para comprimir os dados. A nova compactação tem uma proporção mais alta, requer menos energia da CPU e é particularmente adequada para análise de séries temporais com pequenas diferenças entre documentos.

É possível mudar o algoritmo de compressão no futuro, embora isso não seja incentivado. Quando você insere um documento, uma coleção de séries temporais não é construída automaticamente como outras coleções. Deve ser criado expressamente.”

O que é série temporal em MongoDB no Ubuntu 20.04?

Um banco de dados de séries temporais é um banco de dados personalizado que é criado para armazenar dados criados a partir de um fluxo constante de valores, juntamente com um registro de data eficiência com eficiência. A aplicação mais comum é armazenar dados de equipamentos sensoriais que fornecem pontos de dados em intervalos regulares, mas agora eles são empregados para servir uma gama muito mais ampla de aplicações.

A seguir, alguns exemplos de possíveis aplicações:

  • Dados da Internet das Coisas
  • Serviços da Web, aplicativos e infraestrutura estão todos sob vigilância constante.
  • Estimando vendas
  • Entendimento de tendências financeiras
  • Dados de carros autônomos ou outros objetos físicos estão sendo processados.

Um banco de dados especializado em séries temporais usa tecnologias de compactação para reduzir a quantidade de espaço necessária, ao mesmo tempo em que fornece aos canais de acesso para se aprofundar nos dados. Isso aprimora a recuperação de dados e o desempenho da agregação ao usar filtros de intervalo de tempo. Eles são mais econômicos do que utilizar um banco de dados relacional tradicional.

Os valores em uma série temporal geralmente não devem mudar depois de serem gravados; Portanto, eles são designados apenas como inserção ou pontos de dados imutáveis. A ação de atualização é extremamente rara quando os dados foram salvos.

Diretrizes para o armazenamento de dados de séries temporais de MongoDB no Ubuntu 20.04

Temos algumas diretrizes para dados de séries temporais em MongoDB, que são descritas abaixo.

  • Considere os recursos de dados e padrões de consulta enquanto ajusta seus dados para metafield e campo apropriado.
  • Quando possível, combine dados de séries temporais e coleções de séries temporais.
  • Medidas ou conjuntos de medidas individuais devem ser salvos como um documento e adicionados em lotes ao utilizar uma coleção de séries temporais.
  • Personalize nossa granularidade de dados sobre os valores de atributo de nosso metafield, ou os pares distintos de nosso metafield exclusivo, com base em nosso ritmo de entrada de dados.

Como usar o MongoDB da série temporal no Ubuntu 20.04

Ao trabalhar com dados de séries temporais, você normalmente precisa de mais do que apenas armazenamento; Você também precisa de funcionalidade de leitura e gravação rápida, bem como recursos avançados de consulta. O MongoDB agora lida com dados de séries temporais nativamente, a partir de MongoDB 5.0. As seguintes opções devem ser especificadas ao fornecer uma coleção de séries temporais em MongoDB:

O comando createCollection () pode ser usado para iniciar uma nova coleção de séries temporais.

timefield: A opção Timefield deve ser usada ao criar uma coleção de séries temporais. O campo de tempo indica a descrição da propriedade em cada documento que contém a data. Devemos também considerar as seguintes alternativas:

Metafield: O Metafield especifica o nome da coluna em cada documento que contém metadados. O Metafield atua como uma etiqueta ou tag que permite que as coleções de séries temporais identifiquem uma fonte de série temporal. Este campo não deve, e apenas deve mudar com o tempo.

Granularidade: Se um metafield correspondente for fornecido, o atributo de granularidade especifica a lacuna temporal entre os documentos. A granularidade padrão é "segundos", indicando uma taxa de entrada de alta frequência para cada série temporal definida pelo Metafield. A granularidade pode ser ajustada para "segundos", "minutos" ou "horas" e pode ser alterada a qualquer momento para piorar. No entanto, porque você não pode mudar a granularidade de "minutos" para "segundos", é melhor começar com granularidade mais fina e trabalhar até uma granularidade mais dura.

ExpireafterSeconds: Finalmente, se você pretende excluir dados após um período especificado, podemos incluir o campo ExtireArFterSends especifica quantos segundos devem passar antes que os documentos expirem e sejam destruídos automaticamente.

Insira documentos com séries temporais em MongoDB

No mínimo, cada documento adicionado à coleção de séries temporais deve definir o campo de tempo. A data é o campo de tempo no documento de ilustração abaixo. Vale a pena notar que o campo de tempo pode ser chamado o que você quiser, desde que seja do tipo BSON ou uma data. Qualquer uma das técnicas para inserir documentos em outras coleções do MongoDB pode ser usada para adicionar documentos a uma coleção de séries temporais. Para isso, criamos uma coleção de "webvisitores" da seguinte maneira:

Uma única medição deve ser incluída em cada documento que inserimos. Use o seguinte comando para inserir muitos documentos de uma só vez:

Recuperação de dados de séries temporais em MongoDB no Ubuntu 20.04

Os documentos da série temporal podem ser consultados como os documentos de outras coleções de MongoDB. Por exemplo, com o shell do MongoDB, usamos um encontro para procurar um documento na coleção Webvisitors () da seguinte maneira, como segue.

A consulta anterior mostra os seguintes resultados, como você pode ver:

Agregação em dados de séries temporais em MongoDB no Ubuntu 20.04

Aqui, usamos um pipeline agregado, como adicionar mais funcionalidade de consulta. O exemplo de agregação a seguir combina todos os documentos por dados de medição e, em seguida, entrega a média de todas as medidas do visitante realizadas naquele dia de um site:

Quando executamos o pipeline de agregação no site de coleções Websitisitors, a saída gerou a média do documento do visitante da coleção “WebsiteVisitors” da seguinte forma:

Conclusão

Existem muitos dados de séries temporais, mas manter e acessá-los pode ser difícil. O MongoDB ganhou suporte nativo para séries temporais, tornando o trabalho com dados da série temporal consideravelmente mais fácil, mais rápida e mais barata. Demos uma breve introdução com algumas diretrizes para o uso de séries temporais em MongoDB. Temos algumas ilustrações de séries temporais que demonstram como podemos usar séries temporais na coleção MongoDB de algumas maneiras possíveis.