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: indica quando o ponto de dados foi registrado.
Metadados: um rótulo ou tag que identifica uma série de dados e raramente muda. Os metadados são armazenados em um
metaField
. Não é possível adicionar um campometaField
a um documento de série temporal após a criação. Os metadados também são conhecidos comosource
.Métricas: pontos de dados individuais monitorados em períodos incrementais, frequentemente exibidos como pares chave-valor que variam ao longo do tempo. As métricas também são conhecidas como valores.
Medições: documentos que contêm dados para todas as métricas em um ponto específico no tempo. Uma medição inclui o tempo, os metadados e todas as métricas registradas naquele momento.
Esta tabela mostra exemplos de dados de série temporal:
Exemplo | Métricas | 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.
O exemplo a seguir mostra um documento de medição de dados meteorológicos:
{ "timestamp": ISODate("2025-08-19T12:00:00Z"), "metaField": { "sensorId": "A1234", "location": { "city": "New York", "state": "NY" } }, "temperature": 25.4, "humidity": 48.2, "pressure": 1012.5, "windSpeed": 5.2, "windDirection": "NW" }
Neste exemplo, a medição contém:
Um carimbo de data/hora indicando quando os dados foram registrados.
Metadados que identificam o sensor e a sua localização.
Múltiplas métricas, incluindo temperatura, umidade, pressão, velocidade do vento e direção, coletadas no momento especificado.
Coleções de Time Series
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.
Você pode criar coleção de séries temporais na IU para implantações hospedadas no MongoDB Atlas.
Benefícios
Comparadas com coleções normais, armazenar dados de série temporal em coleções de série temporal melhora a eficiência da query e reduz o uso do disco para dados de série temporal e índices secundários.
A coleção de séries temporais utiliza um formato de armazenamento em colunas subjacente e armazena dados em ordem de tempo com um índice clusterizado criado automaticamente. O formato de armazenamento em colunas 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
Comportamento
As coleções de séries temporais se comportam como collections normais. Você pode inserir e consultar seus dados normalmente.
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.
Ao query coleção de séries temporais, você opera em um documento por medida. Queries on time series collections take advantage of the optimized internal storage format and return results faster.
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.
Fragmentação de zona
A fragmentação de zona não oferece suporte a coleções de séries temporais. O balanceador sempre distribui dados em coleções de séries temporais fragmentadas uniformemente entre todos os fragmentos no cluster.
Índice interno
Quando você cria uma coleção de séries temporais, o MongoDB cria automaticamente um índice interno agrupado no campo de tempo. Este índice melhora a eficiência da query e reduz o uso do disco. Para saber mais sobre os benefícios de desempenho dos índices clusterizados, consulte Coleções clusterizadas.
O índice interno não é listado quando você executa listIndexes
.
Observação
Se você inserir um documento em uma coleção com um valor timeField
antes 1970-01-01T00:00:00.000Z
ou depois 2038-01-19T03:14:07.000Z
, o MongoDB registrará um aviso e impedirá que algumas otimizações de query usem o índice interno. Criar um índice secundário no timeField
para recuperar o desempenho da query e resolver o aviso de log.
Começar
Para começar a usar coleções de séries temporais, consulte Criar e consultar uma coleção de séries temporais.