Menu Docs
Página inicial do Docs
/
Manual do MongoDB

Séries temporais

Nesta página

  • Coleções de Time Series
  • Benefícios
  • Comportamento
  • metaFields
  • Começar

Dados de séries temporais são uma sequência de pontos de dados na qual insights são obtidos analisando as mudanças ao longo do tempo.

Os dados de série temporal geralmente são compostos destes componentes:

  • Hora em que o ponto de dados foi registrado.

  • metadados (às vezes chamados de fonte), que é um rótulo ou etiqueta que identifica uma série de dados e raramente muda. Os metadados são armazenados em um metaField. Você não pode adicionar metaFields a documentos de time series depois de criá-los. Para obter mais informações sobre o comportamento e a seleção de metaFields, consulte metaFields.

  • Medições (às vezes chamadas de métricas ou valores), que são os pontos de dados rastreados em incrementos no tempo. Geralmente, são pares de valor-chave que mudam com o tempo.

Esta tabela mostra exemplos de dados de série temporal:

Exemplo
Medição
Metadata
Dados das ações
Preço das ações
Código de ações, câmbio
Dados meteorológicos
Temperatura
Identificador do sensor, localização
Visitantes do website
Contagem de visualizações
URL

Para armazenamento eficiente de dados de séries temporais, o MongoDB fornece coleções de séries temporais.

Novidades na versão 5.0.

As coleções de séries temporais armazenam dados de séries temporais de forma eficiente. Em coleções de séries temporais, as gravações são organizadas para que os dados da mesma fonte sejam armazenados junto com outros pontos de dados de um ponto no tempo semelhante.

Comparadas com coleções normais, armazenar dados de séries temporais em coleções de séries temporais melhora a eficiência da query e reduz o uso do disco para dados de séries temporais e índices secundários. O MongoDB 6.3 e versões posteriores criam automaticamente um índice composto nos campos de tempo e metadados para novas coleções de séries temporais.

As coleções de séries temporais utilizam um formato de armazenamento em colunas subjacente e armazenamento dados em ordem de tempo. Esse formato oferece os seguintes benefícios:

  • Menos complexidade para trabalhar com dados de séries temporais

  • Mais eficiência da query

  • Uso de disco reduzido

  • Menos E/S em operações de leitura

  • Aumento do uso de cache do WiredTiger

As coleções de séries temporais geralmente se comportam como outras coleções do MongoDB. Você insere e executa consulta de dados como de costume.

Aviso

As expressões de correspondência nos comandos de atualização e exclusão só podem especificar o metaField. Você não pode atualizar outros campos em um documento de série temporal. Para obter mais detalhes, consulte Limitações de exclusão e atualização de séries temporais.

O MongoDB trata as coleções de séries temporais como visualizações não materializadas graváveis, apoiadas por uma collection interna. Quando você insere dados, a collection interna organiza automaticamente os dados de série temporal em um formato de armazenamento otimizado.

Iniciando no MongoDB 6,3: se você criar uma nova coleção de séries temporais, o MongoDB também gera um índice composto nos campos metaField e timeField. Para melhorar o desempenho da consulta, as consultas em coleções de séries temporais usam o novo índice composto. O índice composto também usa o formato de armazenamento otimizado.

Dica

Para melhorar o desempenho da query, você pode adicionar índices secundários manualmente em campos de medição ou em qualquer campo em sua coleção de séries temporais

Importante

Funcionalidade incompatível com versões anteriores

Você deve descartar coleções de séries temporais antes de fazer downgrade:

  • MongoDB 6.0 ou posterior para MongoDB 5.0.7 ou anterior.

  • MongoDB 5.3 para MongoDB 5.0.5 ou anterior.

Aviso

Não tente criar uma coleção de séries temporais ou visualizar com o nome system.profile. .MongoDB 63 e versões posteriores retornam um erro IllegalOperation se você tentar fazê-lo. Falha nas versões anteriores do MongoDB.

Os documentos de séries temporais podem conter um MetaField opcional para agrupar conjuntos de documentos, tanto para otimização do armazenamento interno quanto para eficiência de queries. Um MetaField raramente deve mudar e pode ser de qualquer tipo de dados. Um metaField pode ser um objeto e pode conter subcampos. Depois de definir um campo como MetaField, você pode alterar o valor do MetaField, mas não pode redefinir o MetaField como outro campo. Por exemplo, se você criar documentos de séries temporais com o MetaField definido como campo A, não poderá converter posteriormente um campo B em MetaField. No entanto, se o valor de MetaField A for um objeto, você poderá adicionar novos subcampos ao campo A.

Observação

O uso de uma array como metaField pode causar um comportamento inesperado de coleção porque a igualdade da matriz depende de uma ordem específica.

O MongoDB usa o metaField para particionar dados para organização e recuperação eficientes. Quando você cria uma coleção de séries temporais, o MongoDB agrupa documentos em buckets. Os documentos em um bucket compartilham um valor metaField idêntico e têm valores timeField próximos.

O número de buckets em uma coleção de séries temporais depende do número de valores exclusivos de metaField. Coleções com valores de MetaField refinados ou dinâmicos podem gerar mais compartimentos de curta duração e pouco compactados do que coleções com MetaCampos simples que raramente ou nunca são alterados. Valores de metaField refinados e dinâmicos normalmente diminuem a eficiência do armazenamento e da consulta.

O MongoDB cria automaticamente um índice composto no metaField e no timeField de uma coleção de séries temporais.

  • Selecione campos que raramente ou nunca mudam como parte do seu MetaField.

  • Se possível, selecione identificadores ou outros valores estáveis que sejam comuns em expressões de filtro como parte de seu metaField.

  • Evite selecionar campos que não sejam usados para filtragem como parte do seu MetaField. Em vez disso, use esses campos como medidas.

Para começar a usar coleções de séries temporais, consulte Criar e consultar uma coleção de séries temporais.

Voltar

Referência