Buenas prácticas y tutoriales

Grafique datos de series temporales desde la comodidad de su terminal

Si has estado siguiendo las entradas anteriores en el blog de Couchbase, habrás visto contenido sobre Couchbase Shell última versión. Estoy probando diferentes cosas y hoy quería ver qué podía hacer con conjuntos de datos de series temporales.

Ingesta de datos de series temporales

Navegando por Kaggle, encontré datos de temperatura por Ciudad. Lo he descargado. Pesa unos 500Mb y eso lo hace difícil de manipular en su conjunto. Pero, por supuesto, es un archivo de texto por lo que fácilmente podemos echar un vistazo a la estructura de datos así:

8599212 líneas, esto va a ser 8599211 documentos. Mi objetivo final es ver un gráfico de temperatura de varias ciudades a lo largo de los años. Para ello, primero voy a importar todo a un bucket de importación, luego transformaré los datos en series temporales.

Si importo esto ingenuamente, me da un doc por ciudad/grupo de meses. Así que la clave de mi documento será como Aarhus:1743-11-01. Digamos que sólo quiero subir la primera línea, debería tener este aspecto:

Y ahora que sé que funciona, vamos a cogerlo todo y a meterlo en el lote:

He creado un serie en la que importo el resultado de una SELECCIONE agregación, obteniendo todas las fechas como marcas de tiempo y todas las Temperatura media como valor:

Y ahora todos los datos están disponibles como series temporales. Digamos que quiero los datos de París, puedo utilizar la función _timeseries funcionar así:

Para acelerar las cosas puedes crear el siguiente índice: CREATE INDEX ix1 ON series(Ciudad, ts_end, ts_start);

Obsérvese el uso de la ts_rangos al principio. Puede reutilizar fácilmente esos valores en una plantilla Cadena. Empiezan con un $ y las variables deben ir entre paréntesis como ($my_variable). Lo que también significa que ahora es necesario escapar del carácter paréntesis, así como de las comillas dobles.

Trazar series temporales

Hay una variedad de bibliotecas de trazado de terminales, aquí estoy usando youplot:

Todo esto está muy bien, pero lo ideal sería tener varias ciudades para poder compararlas. Cualquier columna CSV adicional se recoge automáticamente siempre que ejecute líneas youplot. Haciendo las cosas poco a poco, vamos a empezar con el apoyo de múltiples ciudades en la consulta. Así que un par de cambios aquí:

    • agrupar los datos por tiempo
    • añadiendo d.ciudad IN ($city) a la cláusula where. Esto funciona porque la matriz de ciudades es una cadena literal de una matriz JSON. Veamos la respuesta como un documento JSON:

Pero esto no se puede convertir en un CSV, incluso si se aplana todo de esta manera:

Así que podemos transformarlo en un objeto de esta manera: Objeto v.ciudad : v.temp FOR v IN ARRAY_AGG({"ciudad": d.ciudad, "temp":t._v0}) when v IS NOT MISSING END

Que ahora se puede aplanar en un CSV:

Y con eso estamos listos para trazar varias líneas:

Para hacerlo más fácil, puedes utilizar funciones. Crea una .nu como temp.nucon el siguiente contenido:

Luego, si se abastece, es mucho más fácil de usar:


Espero que esto te haya dado una rápida visión general del soporte de series temporales de Couchbase, de la manipulación de datos de Couchbase Shell, y de cómo puedes usar otros comandos de shell como youplot para hacer las cosas más integradas e interesantes. Podría generar fácilmente un informe completo en varios formatos a partir de un Acciones de GitHub por ejemplo, ¡un sinfín de posibilidades!

 

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Autor

Publicado por Laurent Doguin

Laurent es un metalero empollón que vive en París. Principalmente escribe código en Java y texto estructurado en AsciiDoc, y a menudo habla sobre datos, programación reactiva y otras cosas de moda. También fue Developer Advocate de Clever Cloud y Nuxeo, donde dedicó su tiempo y experiencia a ayudar a esas comunidades a crecer y fortalecerse. Ahora dirige las relaciones con los desarrolladores en Couchbase.

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.