Overview
En esta guía, puede aprender cómo utilizar el driver 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ías almacenar datos de series de tiempo:
Situación | Cantidad medida | Metadata |
|---|---|---|
Registro de ventas mensuales por industria | Ganancia 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 |
Crear una colección de series de tiempo
Importante
Versión del servidor para colecciones de series de tiempo
Para crear e interactuar con colecciones de series temporales, debes estar conectado a una implementación que ejecute MongoDB Server 5.0 o posterior.
Para crear una colección de series de tiempo, debes pasar un hash de opciones que contenga las especificaciones de la colección. Puedes especificar las siguientes especificaciones para tu colección de series de tiempo:
:timeField: Especifica el campo que almacena una marca de tiempo en cada documento de serie de tiempo.:metaField: Especifica el campo que almacena metadatos en cada documento de la serie de tiempo.:granularity: Especifica el tiempo aproximado entre marcas de tiempo consecutivas. Los posibles valores son'seconds','minutes'y'hours'.:bucketMaxSpanSeconds: Establece el tiempo máximo entre marcas de tiempo en el mismo grupo.: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.
Consulta Campos de comando en la entrada del manual de MongoDB Server sobre el comando create para aprender más sobre estos parámetros.
Ejemplo
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` configurada 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 has creado correctamente la colección, imprime una lista de todas las colecciones de tu base de datos y filtra 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 } } ]
Almacenar datos de series de tiempo
Puedes 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 acerca de cómo insertar documentos, consulte la guía Insertar documentos.
Ejemplo
Este ejemplo inserta datos de temperatura de la ciudad de Nueva York en la colección de series de tiempo october2024 creada en la sección Crear una colección de series temporales anterior. Cada documento contiene los siguientes campos:
temperatureque almacena las mediciones de temperatura en grados Fahrenheitlocation, que almacena metadatos de ubicacióntimestampque 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)
Consultar datos de series de tiempo
Puede utilizar la misma sintaxis y convenciones para query los datos almacenados en una colección de series de tiempo que cuando realiza operaciones de lectura o agregación en otras colecciones. Para obtener más información sobre estas operaciones, consulte las siguientes guías:
Información Adicional
Para obtener más información sobre los conceptos de esta guía, consulta las siguientes entradas del manual de MongoDB Server:
Documentación de la API
Para obtener más información sobre los métodos mencionados en esta guía, consulta la siguiente documentación de la API: