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 rara vez cambia. Los metadatos se almacenan en un
metaFieldNo se puede agregar un campometaFielda un documento de serie temporal 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 consultas y reduce el uso del disco para los datos de series de tiempo y índices secundarios.
Las colecciones de series temporales utilizan un formato de almacenamiento en columnas subyacente y almacenan los datos en orden cronológico mediante un índice agrupado generado automáticamente. Este formato ofrece las siguientes ventajas:
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
Las colecciones de series temporales se comportan como colecciones normales. Puede insertar y consultar sus datos como lo haría normalmente.
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 las consultas, puede agregar manualmente índices secundarios en los campos de medición o en cualquier campo de su 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
Al crear una colección de series temporales, MongoDB crea automáticamente un índice agrupado interno en el campo de tiempo. Este índice mejora la eficiencia de las consultas y reduce el uso de disco. Para obtener más información sobre las ventajas de rendimiento de los índices agrupados,consulte Colecciones agrupadas.
El índice interno no aparece cuando se listIndexes ejecuta.
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.