Overview
En esta guía, puedes aprender cómo usar el controlador de Java Reactive Streams 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, debe estar conectado a una implementación que ejecute MongoDB Server 5.0 o posterior.
Se puede crear una colección de series de tiempo para almacenar datos de series de tiempo. Para crear una colección de series de tiempo, pase los siguientes parámetros a la
createCollection() :
El nombre de la nueva colección a crear
A OpcionesDeCreaciónDeColecciones objeto con el conjunto OpcionesDeSeriesDeTiempo utilizando el método
timeSeriesOptions()
El siguiente ejemplo crea una colección de series de tiempo denominada october2024 en la base de datos fall_weather con la opción timeField establecida en el campo "timestamp":
MongoDatabase database = mongoClient.getDatabase("fall_weather"); TimeSeriesOptions tsOptions = new TimeSeriesOptions("timestamp"); CreateCollectionOptions collectionOptions = new CreateCollectionOptions().timeSeriesOptions(tsOptions); database.createCollection("october2024", collectionOptions);
Para verificar que se ha creado correctamente la colección de series de tiempo, ejecutar el método listCollections() en la base de datos e imprimir los resultados:
ListCollectionsPublisher<Document> listCollectionsPublisher = database.listCollections(); Flux.from(listCollectionsPublisher) .doOnNext(System.out::println) .blockLast();
Document{{name=october2024, type=timeseries, options=Document{{timeseries=Document{{timeField=timestamp, granularity=seconds, bucketMaxSpanSeconds=3600}}}}, info=Document{{readOnly=false}}}} ...
Almacenar datos de series temporales
Puedes insertar datos en una colección de series de tiempo utilizando los métodos insertOne() o insertMany() y especificando la medición, la marca de tiempo y los metadatos en cada documento insertado.
Tip
Para obtener más información sobre cómo insertar documentos en una colección, consulte la Guía deinserción de documentos.
Ejemplo
El siguiente ejemplo inserta datos de temperatura de la ciudad de Nueva York en la colección de series de tiempo october2024 creada en el ejemplo Crear una colección de series de tiempo. Cada documento contiene los siguientes campos:
temperatureque almacena las mediciones de temperatura en grados Fahrenheitlocation, que almacena metadatos de ubicacióntimestampque almacena la hora de la colección de la medición
MongoCollection<Document> collection = database.getCollection("october2024"); // Temperature data for October 1, 2024 Document temperature1 = new Document("temperature", 54) .append("location", "New York City") .append("timestamp", new Date(1727755200000L)); // Temperature data for October 2, 2024 Document temperature2 = new Document("temperature", 55) .append("location", "New York City") .append("timestamp", new Date(1727841600000L)); Publisher<InsertManyResult> insertPublisher = collection.insertMany(Arrays.asList(temperature1, temperature2)); Mono.from(insertPublisher).block();
Consultar datos de series de tiempo
Puedes utilizar la misma sintaxis y convenciones para consultar datos almacenados en una colección de series temporales que utilizas al realizar operaciones de lectura o agregación en otras colecciones. Para aprender más sobre estas operaciones, consulta la sección Información adicional.
Información Adicional
Para conocer más sobre los conceptos mencionados en esta guía, consulta las siguientes entradas del manual de servidor de MongoDB:
Crear y ejecutar un query en una colección de series de tiempo
Establece la granularidad para los datos de series de tiempo
Para aprender más sobre cómo realizar operaciones de lectura, lee Leer datos.
Para obtener más información sobre cómo realizar operaciones de agregación, consulte la guía del marco de agregación.
Documentación de la API
Para obtener más información sobre los métodos mencionados en esta guía, consulte la siguiente documentación de API: