Cómo usar MongoDB con series de tiempo

Cómo usar MongoDB con series de tiempo

“Insertar, actualizar, localizar, eliminar y agregarse son todas las operaciones que se pueden realizar en una colección de series de tiempo, tal como están en una colección estándar. Detrás de la cortina, la diferencia fundamental existe. Cuando inserta datos en MongoDB, se convierte en un formato de almacenamiento óptimo. Una serie de tiempo es más simple y más eficiente de consulta que una colección regular.

Las colecciones de series de tiempo se tratan como vistas de escritura no materializadas en MongoDB. Los datos se guardan de manera más eficiente, conservando el espacio del disco, y un índice interno basado en el tiempo se construye automáticamente. En lugar de Snappy, el algoritmo ZSTD se utiliza de forma predeterminada para comprimir los datos. La nueva compresión tiene una relación más alta, requiere menos potencia de la CPU y es particularmente adecuada para el análisis de series de tiempo con diferencias menores entre documentos.

Es posible cambiar el algoritmo de compresión en el futuro, aunque esto no se alienta. Cuando inserta un documento, una colección de series de tiempo no se construye automáticamente como otras colecciones. Debe crearse expresamente."

¿Qué es la serie de tiempo en MongoDB en Ubuntu 20?.04?

Una base de datos de series de tiempo es una base de datos personalizada que se crea para almacenar datos creados a partir de un flujo constante de valores junto con una marca de tiempo de manera eficiente. La aplicación más común es almacenar datos de equipos sensoriales que ofrecen puntos de datos a intervalos regulares, pero ahora se emplean para atender una gama mucho más amplia de aplicaciones.

Los siguientes son algunos ejemplos de posibles aplicaciones:

  • Datos de Internet de las cosas
  • Los servicios web, aplicaciones e infraestructura están bajo vigilancia constante.
  • Estimación de ventas
  • Comprensión de tendencias financieras
  • Se están procesando datos de autos autónomos u otros objetos físicos.

Una base de datos especializada de la serie temporal utiliza tecnologías de compresión para reducir la cantidad de espacio necesario y al mismo tiempo proporciona canales de acceso para profundizar en los datos. Esto mejora la recuperación de datos y el rendimiento de la agregación cuando se utilizan filtros de rango de tiempo. Son más rentables que utilizar una base de datos relacional tradicional.

Los valores en una serie de tiempo generalmente no deberían cambiar una vez que se hayan registrado; por lo tanto, se designan solo como insertos o puntos de datos inmutables. La acción de actualización es extremadamente rara una vez que se han guardado los datos.

Directrices para el almacenamiento de datos de la serie temporal de MongoDB en Ubuntu 20.04

Tenemos algunas pautas para los datos de la serie temporal en MongoDB, que se describen a continuación.

  • Considere las características de datos y los patrones de consulta mientras ajusta sus datos para MetaField y TimeField apropiados.
  • Cuando sea posible, combine los datos de la serie temporal y las colecciones de series de tiempo.
  • Las medidas individuales o conjuntos de mediciones deben guardar como un documento y agregar en lotes al utilizar una colección de series de tiempo.
  • Personalice nuestra granularidad de datos sobre los valores de atributos de nuestro MetaField, o los pares distintos de nuestro MetaField único, basado en nuestro ritmo de admisión de datos.

Cómo usar MongoDB de la serie temporal en Ubuntu 20.04

Cuando se trabaja con datos de series temporales, generalmente necesita más que solo almacenamiento; También necesita una funcionalidad de lectura y escritura rápidas, así como capacidades de consulta avanzada. MongoDB ahora maneja los datos de la serie temporal de forma nativa, a partir de MongoDB 5.0. Las siguientes opciones deben especificarse al dar una colección de series de tiempo en MongoDB:

El comando createCollection () se puede usar para iniciar una nueva colección de series de tiempo.

TimeField: La opción TimeField debe usarse al crear una colección de series de tiempo. TimeField denota la descripción de la propiedad en cada documento que contiene la fecha. También debemos considerar las siguientes alternativas:

MetaField: El metafield especifica el nombre de la columna en cada documento que contiene metadatos. El MetaField actúa como una etiqueta o etiqueta que permite que las colecciones de series de tiempo identifiquen la fuente de una serie de tiempo. Este campo no debería, y solo debería, cambiar con el tiempo.

Granularidad: Si se suministra un metafield coincidente, el atributo de granularidad especifica la brecha temporal entre documentos. La granularidad estándar es "segundos", lo que indica una tasa de admisión de alta frecuencia para cada serie de tiempo definida por el MetaField. La granularidad podría ajustarse a "segundos", "minutos" o "horas", y se puede cambiar en cualquier momento para empeorar. Sin embargo, debido a que no puede cambiar la granularidad de "minutos" a "segundos", es mejor comenzar con la granularidad más fina y avanzar hasta una granularidad más dura.

Adelección de los puntos de vista: Finalmente, si tiene la intención de eliminar los datos después de un período específico, podemos incluir el campo de los segundos expirantes especifica cuántos segundos deben pasar antes de que los documentos expiren y se destruyan automáticamente.

Inserte documentos con series de tiempo en MongoDB

Por lo menos, cada documento agregado a la colección de series de tiempo debe definir el TimeField. La fecha es el TimeField en el documento de ilustración a continuación. Vale la pena señalar que TimeField se puede denominar lo que quieras siempre que sea del tipo BSON o una fecha. Cualquiera de las técnicas para insertar documentos en otras colecciones de MongoDB se puede utilizar para agregar documentos a una colección de series de tiempo. Para esto, hemos creado una colección de "Vvisor web" de la siguiente manera:

Se debe incluir una sola medida en cada documento que insertamos. Use el siguiente comando para insertar muchos documentos a la vez:

Recuperación de datos de series de tiempo en MongoDB en Ubuntu 20.04

Los documentos de la serie temporal se pueden consultar como los documentos de otras colecciones de MongoDB. Por ejemplo, con el shell MongoDB, hemos utilizado un hallazgo para buscar un documento en la colección de visitantes web () de la siguiente manera.

La consulta anterior muestra los siguientes resultados, como puede ver:

La agregación en los datos de la serie temporal en MongoDB en Ubuntu 20.04

Aquí, hemos utilizado una tubería agregada como para agregar más funcionalidad de consulta. El siguiente ejemplo de tuberías de agregación combina todos los documentos mediante datos de medición y luego ofrece el promedio de todas las mediciones del visitante tomadas ese día de un sitio web:

Cuando ejecutamos la tubería de agregación en la colección de sitios web de sitios web, la salida generó el promedio del documento del visitante de la colección "Sitio web" de la siguiente manera:

Conclusión

Hay muchos datos de series de tiempo, pero mantenerlos y acceder puede ser difícil. MongoDB obtuvo soporte nativo para la serie de tiempo, haciendo que trabajar con datos de la serie temporal sea considerablemente más fácil, más rápido y menos costoso. Hemos dado una breve introducción con algunas pautas para usar la serie de tiempo en MongoDB. Tenemos algunas ilustraciones de series de tiempo que demuestran cómo podemos usar series de tiempo en la colección MongoDB de algunas maneras posibles.