Los datos de series de tiempo son una secuencia de puntos de datos en la que se obtienen perspectivas al analizar los cambios a lo largo del tiempo.
Los datos de series de tiempo generalmente incluyen los siguientes componentes:
Hora: Indica cuándo se registró el punto de datos.
Metadatos: una etiqueta que identifica una serie de datos y que rara vez cambia. Los metadatos se almacenan en un
metaField. No se puede añadir un campo demetaFielda un documento de serie de tiempo después de crearlo. Los metadatos también se conocen comosource.Métricas: Puntos de datos individuales que se rastrean en intervalos de tiempo, a menudo se muestran como pares clave-valor que varían con el tiempo. Las métricas también se denominan valores.
Mediciones: Documentos que contienen datos de todas las métricas en un punto específico. Una medición incluye el tiempo, los metadatos y todas las métricas registradas en ese momento.
Esta tabla muestra ejemplos de datos de series de tiempo:
Ejemplo | Métricas | Metadata |
|---|---|---|
Datos de acciones | Precio de las acciones | Mercado de valores |
Datos del clima | Temperatura | Identificador del sensor, ubicación |
Visitantes del sitio web | Conteo de vistas | URL |
Para un almacenamiento eficiente de datos de series de tiempo, MongoDB ofrece colecciones de series de tiempo.
En el siguiente ejemplo se muestra un documento de medición para datos 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" }
En este ejemplo, la medición contiene:
Una marca de tiempo que indica cuándo se registraron los datos.
Metadatos que identifican el sensor y su ubicación.
Múltiples métricas, incluyendo temperatura, humedad, presión, velocidad y dirección del viento, recopiladas en el momento dado.
Colecciones de series de tiempo
Nuevo en la versión 5.0.
Las colecciones de series de tiempo almacenan eficientemente los datos de series de tiempo. En las colecciones de series de tiempo, los registros guardados se organizan de manera que los datos de la misma fuente se almacenen junto a otros puntos de datos de un momento similar en el tiempo.
Puedes crear colecciones de series de tiempo en la interfaz de usuario para implementaciones alojadas en MongoDB Atlas.
Beneficios
En comparación con las colecciones normales, almacenar datos de series de tiempo en colecciones de series de tiempo mejora la eficiencia de las queries y reduce el uso de disco para datos de series de tiempo y índices secundarios.
Las colecciones de series temporales utilizan un formato de almacenamiento columnar subyacente y almacenan datos en orden temporal con un índice agrupado creado automáticamente. El formato de almacenamiento columnar proporciona los siguientes beneficios:
Reducción de la complejidad para trabajar con datos de series de tiempo
Mejora en la eficiencia de los query
Menor uso del disco
Reducción de E/S para operaciones de lectura
Aumento del uso de la caché de WiredTiger
Comportamiento
La colección de series de tiempo se comporta como colecciones normales. Puedes insertar y query tus datos como normalmente lo harías.
MongoDB trata las colecciones de series de tiempo como vistas no materializadas editables respaldadas por una colección interna. Cuando se insertan datos, la colección interna organiza automáticamente los datos de series de tiempo en un formato de almacenamiento optimizado.
Al consultar colecciones de series temporales, se opera con un documento por medición. Las consultas en colecciones de series temporales aprovechan el formato de almacenamiento interno optimizado y generan resultados más rápidamente.
Tip
Para mejorar el rendimiento de la query, puedes agregar manualmente índices secundarios en los campos de métricas o en cualquier campo de tu colección de series de tiempo.
Importante
Característica incompatible con versiones anteriores
Se deben descartar las colecciones de series de tiempo antes de realizar una degradación:
MongoDB 6.0 o posterior a MongoDB 5.0.7 o anterior.
MongoDB 5.3 a MongoDB 5.0.5 o versiones anteriores.
Partición por zonas
La partición por zonas no admite colecciones de series de tiempo. El balanceador siempre distribuye los datos en colecciones de series de tiempo fragmentadas de manera uniforme en todos los fragmentos del clúster.
Índice Interno
Cuando creas una colección de series de tiempo, MongoDB crea automáticamente un índice agrupado interno en el campo de tiempo. Este índice mejora la eficiencia de las query y reduce el uso de disco. Para aprender más sobre los beneficios de rendimiento de los índices agrupados, consulta Colección con índice clusterizado.
El índice interno no se muestra cuando ejecutas listIndexes.
Nota
Si inserta un documento en una colección con un timeField valor antes de 1970-01-01T00:00:00.000Z o después 2038-01-19T03:14:07.000Z de, MongoDB registra una advertencia e impide que algunas optimizaciones de consultas utilicen el índice interno. Cree un índice secundario en timeField para recuperar el rendimiento de las consultas y resolver la advertencia del registro.
Empezar
Para comenzar a utilizar colecciones de series de tiempo,consulte Crear y consultar una colección de series de tiempo.