Overview
En esta guía, puede aprender a utilizar el controlador C 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 |
Crear una colección de series de tiempo
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.
You can create a time series collection to store time series data. To create a time series collection, pass the following parameters to the
mongoc_database_create_collection() function:
La base de datos en la que se ha de crear la colección
El nombre de la nueva colección a crear
Un objeto
timeseriesque especifica la opcióntimeField
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 los campos "timestamp":
// Initialize the MongoDB C Driver mongoc_init (); // Create a new client instance mongoc_client_t *client = mongoc_client_new ("<connection string>"); // Get a handle on the database mongoc_database_t *database = mongoc_client_get_database (client, "fall_weather"); // Create options for the time series collection bson_t *opts = BCON_NEW ( "timeseries", "{", "timeField", BCON_UTF8 ("timestamp"), "}"); // Create the time series collection bson_error_t error; mongoc_collection_t *collection = mongoc_database_create_collection (database, "october2024", opts, &error); if (!collection) { fprintf(stderr, "Error creating collection: %s\n", error.message); } bson_destroy (opts);
To verify that you successfully created the time series collection, run the mongoc_database_find_collections_with_opts() function on the fall_weather database and print the results:
// List collections in the database mongoc_cursor_t *cursor = mongoc_database_find_collections_with_opts (database, NULL); const bson_t *doc; while (mongoc_cursor_next (cursor, &doc)) { char *str = bson_as_canonical_extended_json (doc, NULL); printf ("%s\n", str); bson_free (str); } // Check for cursor errors if (mongoc_cursor_error (cursor, &error)) { fprintf (stderr, "Cursor error: %s\n", error.message); } mongoc_cursor_destroy (cursor);
{ "name" : "october2024", "type" : "timeseries", "options" : { "timeseries" : { "timeField" : "timestamp", "granularity" : "seconds", "bucketMaxSpanSeconds" : { "$numberInt" : "3600" } } }, "info" : { "readOnly" : false } } ...
Store Time Series Data
You can insert data into a time series collection by using the mongoc_collection_insert_one() or mongoc_collection_insert_many() functions and specifying the measurement, timestamp, and metadata in each inserted document.
To learn more about inserting documents into a collection, see the Guía deinserción de documentos.
Ejemplo
The following example inserts New York City temperature data into the october2024 time series collection created in the Create a Time Series Collection example. Each document contains the following fields:
temperature, which stores temperature measurements in degrees Fahrenheitlocation, which stores location metadatatimestamp, which stores the time of the measurement collection
const bson_t *insert_doc = BCON_NEW ( "temperature", BCON_DOUBLE (70.0), "location", "{", "city", BCON_UTF8 ("New York"), "}", "timestamp", BCON_DATE_TIME (1633046400000)); if (!mongoc_collection_insert_one (collection, insert_doc, NULL, NULL, &error)) { fprintf(stderr, "Error inserting document: %s\n", error.message); }
Consulta de datos de series temporales
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 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 obtener más información sobre cómo realizar operaciones de lectura, consulte Leer datos.
Para obtener más información sobre cómo realizar operaciones de agregación, consulte la guía Transforme sus datos con agregación.
Documentación de la API
Para obtener más información sobre las funciones mencionadas en esta guía, consulte la siguiente documentación de API: