Docs Menu
Docs Home
/ /

Datos de Time Series

En esta guía, puede aprender a utilizar el controlador Ruby para almacenar e interactuar con datos de series de tiempo.

Los datos de series de tiempo se componen de los siguientes componentes:

  • Cantidad medida

  • Marca de tiempo para la medición

  • Metadatos que describen la medición

La siguiente tabla describe situaciones de muestra para las que podría almacenar datos de series de tiempo:

Situación
Cantidad medida
Metadata

Registro de ventas mensuales por industria

Ingresos en USD

Empresa, país

Seguimiento de los cambios meteorológicos

Nivel de precipitación

Ubicación, tipo de sensor

Registro de fluctuaciones en los precios de la vivienda

Precio de alquiler mensual

Ubicación, moneda

Importante

Versión de servidor para colecciones de series temporales

Para crear e interactuar con colecciones de series temporales, debe estar conectado a una implementación que ejecute MongoDB Server 5.0 o posterior.

Para crear una colección de series temporales, debe pasar un hash de opciones que contenga las especificaciones de la colección. Puede especificar las siguientes especificaciones para su colección de series temporales:

  • :timeField: Especifica el campo que almacena una marca de tiempo en cada documento de serie temporal.

  • :metaField: Especifica el campo que almacena metadatos en cada documento de serie temporal.

  • :granularity: Especifica el tiempo aproximado entre marcas de tiempo consecutivas. Los valores posibles son 'seconds', 'minutes' y 'hours'.

  • :bucketMaxSpanSeconds:Establece el tiempo máximo entre marcas de tiempo en el mismo depósito.

  • :bucketRoundingSeconds: Establece el número de segundos en que MongoDB redondea hacia abajo cuando determina la marca de tiempo mínima para un nuevo bucket. Debe ser igual a :bucketMaxSpanSeconds.

Ver Campos de comando en la entrada manual del servidor MongoDB en el create comando para obtener más información sobre estos parámetros.

El siguiente ejemplo utiliza el método Collection#create para crear una colección de series de tiempo denominada october2024 con la opción :timeField` establecida en "timestamp":

client = Mongo::Client.new('<connection string>', database: 'weather')
collection_name = 'october2024'
time_series_options = { timeField: 'timestamp' }
database = client.database
database.command(
create: collection_name,
timeseries: time_series_options
)

Para verificar que ha creado correctamente la colección, imprima una lista de todas las colecciones en su base de datos y filtre por nombre de colección, como se muestra en el siguiente código:

collections = database.list_collections(filter: { name: 'october2024' }).to_a
puts collections
[
{
"name": "october2024",
"type": "timeseries",
"options": {
"timeseries": {
"timeField": "timestamp",
"granularity": "seconds",
"bucketMaxSpanSeconds": 3600
}
},
"info": {
"readOnly": false
}
}
]

Puede insertar datos en una colección de series de tiempo utilizando el método insert_one o insert_many y especificando la medición, la marca de tiempo y los metadatos en cada documento insertado.

Para obtener más información sobre cómo insertar documentos, consulte la Guía deinserción de documentos.

Este ejemplo inserta datos de temperatura de la ciudad de Nueva York en la october2024 colección de series temporales creada en la sección anterior "Crear una colección de series temporales". Cada documento contiene los siguientes campos:

  • temperature, que almacena mediciones de temperatura en grados Fahrenheit

  • location, que almacena metadatos de ubicación

  • timestamp, que almacena la marca de tiempo de la medición

client = Mongo::Client.new('<connection string>', database => 'your_db')
collection = client[:october2024]
document_list = [
{ temperature: 77, location: "New York City", timestamp: DateTime.new(2024, 10, 22, 6, 0, 0) },
{ temperature: 74, location: "New York City", timestamp: DateTime.new(2024, 10, 23, 6, 0, 0) }
]
collection.insert_many(document_list)

Puede utilizar la misma sintaxis y convenciones para consultar los datos almacenados en una colección de series temporales que para realizar operaciones de lectura o agregación en otras colecciones. Para obtener más información sobre estas operaciones, consulte las siguientes guías:

Para obtener más información sobre los conceptos de esta guía, consulte las siguientes entradas del manual de MongoDB Server:

Para obtener más información sobre los métodos mencionados en esta guía, consulte la siguiente documentación de API:

Volver

JSON extendido

En esta página