Docs Menu
Docs Home
/ /

Acerca de las consultas de datos de series de tiempo

MongoDB agrupa documentos con coincidencias Metacampos para optimizar el almacenamiento y la latencia de consulta de datos de series temporales. Su elección de metaField tiene el mayor impacto en la optimización de las consultas en su aplicación.

Consultar una colección de series temporales se realiza de la misma manera que consultar una colección estándar de MongoDB. Para ver un ejemplo de consulta y una canalización de agregación, consulte Consultar una colección de series temporales. Para consultar las prácticas recomendadas de consulta, consulte Prácticas recomendadas de consulta.

Las consultas sobre datos de series temporales suelen centrarse en una sola serie temporal de la colección. Por ejemplo, considere una colección de series temporales que rastrea datos bursátiles utilizando el siguiente esquema:

{
_id: 573a1397f29313caabce8347,
"ticker": "MDB",
"timestamp": ISODate("2024-07-24T13:45:00.000Z"),
"price": 248.21,
"volume": 6930
}

La colección tiene las siguientes configuraciones:

timeseries: {
timeField: "timestamp",
metaField: "ticker",
granularity: "seconds"
}

MongoDB agrupa los documentos con valores ticker coincidentes. En lugar de tener que buscar coincidencias en todos los campos de todos los documentos, el servidor solo tiene que comparar con el metaField, en este caso ticker, para limitar el rango de búsqueda a una única serie temporal. Esto se ajusta al caso de uso esperado, que consiste en buscar actividad en una sola acción. Un usuario que busca información sobre acciones de MongoDB (MDB) no necesita considerar los resultados de Amazon (AMZN).

La segunda dimensión principal para consultar datos de series temporales es el tiempo. Dado que MongoDB agrupa documentos con un valor metaField idéntico y valores timeField cercanos, se reduce aún más el alcance de una consulta a un rango de segmentos. Las transacciones recientes se guardan en memoria, lo que facilita la transmisión de datos en tiempo real.

A partir de la versión 8.0, MongoDB puede ejecutar ciertas consultas de series de tiempo mediante procesamiento por bloques. Esta mejora del rendimiento procesa las consultas en "bloques" de datos, en lugar de en valores individuales. El procesamiento de bloques mejora la velocidad de ejecución de las consultas y el rendimiento cuando se trabaja con colecciones de series de tiempo.

El procesamiento de bloques mejora significativamente el rendimiento y reduce la sobrecarga de las canalizaciones de agregación de ejecución prolongada que comienzan con las siguientes etapas:

  • $match

  • $sort, si se utiliza en el timeField

  • $group

En comparación con las consultas de series temporales ejecutadas en MongoDB 7.0 o versiones anteriores, el procesamiento de bloques para datos de series temporales en MongoDB 8.0 puede gestionar mayores volúmenes de datos y, en algunos casos, mejorar el rendimiento en más del 200% para operaciones y ​​consultas analíticas. Para obtener más información sobre las mejoras de rendimiento en $group MongoDB,8.0 consulte Mejoras de rendimiento.

Nota

La cantidad de mejora del rendimiento puede variar según la configuración de tus cargas de trabajo e instancias de base de datos.

MongoDB habilita automáticamente el procesamiento de bloques para las consultas de series temporales elegibles. No se puede especificar manualmente si una consulta utiliza procesamiento de bloques. Para comprobar si su consulta de series temporales utiliza procesamiento de bloques, consulte en la salida del plan de stages explicación.

Volver

shardCollection

En esta página