Buenas prácticas y tutoriales

La serie sobre series temporales (en Couchbase): Episodio 1

De qué se trata

¿Tienes un caso de uso de series temporales? Yo también, y este artículo del blog es la prueba de ello.

Cuando aprendo sobre un tema nuevo, me gusta utilizar el método de loci para memorizar y conectar los nuevos conceptos. El método utiliza un lugar conocido (tu casa, por ejemplo) que recorres (mentalmente) y llenas con las cosas que quieres recordar. Si quiero que mi memoria guarde mi horario de mañana, puedo empezar por la entrada y "colgar" mi cita con el médico de las 09:00 junto a mi enorme sombrero de colores. Cuando "camine" hacia la cocina, veré mi llamada de Zoom de las 10:30 "friéndose" encima de una sartén con huevos revueltos. Las imágenes extrañas ayudan a recordar mejor las cosas: nuestro cerebro se aferra a lo inusual. Curiosamente, este ejemplo también es una serie temporal: cada evento de mi agenda ocurre a una hora determinada, y cada evento tiene unas propiedades determinadas (nombre, lugar, etc.).

Sigamos con esta analogía del "paseo por una casa" e intentemos que se nos peguen los nuevos conocimientos sobre series temporales.

En Verde Habitación

Verde es un color alegre: naturaleza, renovación, crecimiento, ideas frescas. Nuestra definición de las series temporales pertenece a la sala verde.

Cuando su hijo tenga fiebre, y usted le tome la temperatura corporal cada hora, usted tiene un serie de mediciones a lo largo del tiempo. Cuando se coloca clandestinamente un rastreador GPS en el coche de un delincuente, se obtiene una serie de lugares en los que el coche se detiene semanas o meses. ¿Qué tal un  Raspberry Pi proyecto para recoger la temperatura y la humedad lecturas una vez al segundo que tu hijo construyó para la feria de ciencias del colegio? Instálelo en su granja de cannabis para flujo ¡estos datos a tu clúster Couchbase! A continuación, puede utilizar los datos con un Couchbase Móvil app para garantizar las condiciones óptimas para la mejor cosecha de este importante cultivo.

Como puede ver, los casos de uso de las series temporales van mucho más allá de los aburridos ejemplos del teletipo de bolsa y los registros del servidor. Siguen reduciéndose a un lista (secuencia, serie) de valores (lecturas, mediciones, puntos de datos) recogida a lo largo del tiempo. Los casos de uso de series temporales son comunes hoy en día en productos de consumo, tecnologías industriales y servicios empresariales. Esta popularidad inspiró la aparición de bases de datos de series temporalesque incluyen distintas optimizaciones para trabajar específicamente con datos de series temporales. Por ejemplo, proporcionamos Exportador Prometheus (escrito en Python) para convertir las métricas de Couchbase Server en Prometeo formato de series temporales, para que pueda construir sus cuadros de mando de supervisión con Grafana.

Dejamos nuestro verde habitación con reloj fundido colgando del techo (tiene que ser raro, ¿no?) y una pizarra blanca que se derrite con una serie de mediciones distorsionadas con fecha y hora como ejemplo de la series temporales Datos de un día de verano en Arizona (en grados Fahrenheit):

En Naranja Habitación

Naranja es el color que atrae nuestra atención; por lo general trae los sentimientos de entusiasmo y calidez. Por lo tanto, es un buen lugar para poner los detalles de cómo trabajamos con datos de series temporales en Couchbase Server.

W¡Muy bien!

Prepárate para manejar muchas escrituras. Los casos reales de uso de series temporales de datos producen miles de lecturas por hora, minuto o segundo. Si lo multiplicas por el número de dispositivos o aplicaciones que generan los datos, alcanzarás rápidamente millones de nuevas escrituras al día. Couchbase Server optimiza la ingesta de datos con su primero la memoriaarquitectura asíncrona. Los documentos JSON se comprimen en memoria, en disco y en el cable.

Couchbase Server maneja todos los tipos de escritura - inserciones, actualizaciones y upserts (inserción si la clave no existe; en caso contrario, actualización) - con la misma eficiencia. Puedes optimizar aún más tus actualizaciones con nuestras operaciones de sub-documento disponibles para cada SDK soportado (e.g., API de subdocumentos del SDK de Java).

A¡Gregate!

Cuando se toman múltiples medidas recopiladas y se enrollan en un único documento JSON, se agregan los datos. Es un paso típico para optimizar el almacenamiento de datos de series temporales. Esto puede ocurrir antes de insertar las mediciones en una base de datos (pre-agregación): su aplicación o su software de ingestión de datos, como StreamSets Data Collector, pueden hacer el trabajo. Servidor Couchbase Servicio de eventos puede enrollar valores de series temporales después de se han añadido a un bucket. En este caso, una función JavaScript se ejecuta como un activador OnUpdate de la base de datos para guardar los valores de varios documentos JSON en una matriz de valores en un documento JSON único. Cualquiera de los dos enfoques le llevará desde, por ejemplo, 60 documentos de lecturas por segundo (véase más abajo)

a un solo documento con todas las lecturas, como el que figura a continuación:

Además de eliminar datos duplicados (marcas de tiempo, nombres largos de campos/atributos JSON), también hemos realizado los siguientes cambios:

  • sustituyó el sello de tiempo ISO por el valor de época en la clave del documento. El valor de época corresponde al minuto (2020-01-02 12:34), para el que recogimos lecturas por segundo.
  • ha añadido el nombre del sensor a la clave del documento. De este modo podemos consultar los valores del sensor específico mediante operaciones clave-valor, que es siempre la forma más rápida de trabajar con documentos.
  • datos de temperatura y presión en matrices de 60 elementos, una medición por segundo;
  • versión añadida del esquema JSON del documento.

La flexibilidad del formato JSON facilita la rápida publicación de la primera versión (en el espíritu de "Peor es mejor") y hacer evolucionar su esquema documental a medida que madura su aplicación. Las bases de datos especializadas en series temporales son mucho más rígidas en este sentido. Sin embargo, es una buena práctica hacer un seguimiento de la versión del esquema en sus documentos. Esto ayuda a garantizar la compatibilidad con versiones anteriores en sus aplicaciones. También le permite actualizar los documentos a un nuevo esquema mediante la ejecución de un N1QL ACTUALIZACIÓN consulta.

R¡ead!

Es hora de hacer algo útil con nuestros datos de series temporales. Estas son las opciones que ofrece la plataforma de datos Couchbase:

  • Lecturas de clave-valor en menos de un milisegundo es lo que Couchbase Server hace genial, todo el día. Después de todo, una de las principales razones por las que agregamos nuestros datos fue para obtenerlos fácilmente en una sola operación de lectura.
  • Consultas SQL para tus datos JSON. El lenguaje N1QL hereda a propósito la sintaxis SQL para facilitar su aprendizaje.
  • Búsqueda de texto completo es otra forma de trabajar con los datos que están disponibles con Couchbase Server. Dependiendo de tu caso de uso, la búsqueda puede ser una mejor alternativa para consultas de idioma, rango numérico, rango de fechas y geoespaciales. Mejor aún, puedes combinar búsqueda y N1QL en una sola consulta.
  • La analítica es un ajuste natural para los datos de series temporales. Como parte de nuestra plataforma de datos, ofrecemos Servicio de análisis que le permite obtener una amplia variedad de perspectivas de negocio a partir de sus datos. Couchbase Analytics se ejecuta como parte del mismo clúster donde residen tus datos, por lo que no son necesarias operaciones ETL (Extract, Transform, Load). Ejecutas eficientes consultas paralelas contra copias sombra actualizadas de los datos.
  • Couchbase también se lleva bien con otros. Ofrecemos conectores de big data compatibles con sistemas populares como Chispa, Kafkay Elasticsearch.

M¡Adelante!

Tarde o temprano, llegará el momento de pasar página. ¿Cuánto tiempo necesita conservar sus datos? Siempre hacemos esta pregunta cuando ayudamos a nuestros clientes a dimensionar sus clusters. Con Couchbase, es fácil escalar hacia arriba o hacia abajo. Una empresa de juegos online puede querer empezar con algunos nodos extra cuando lance un nuevo juego. Por otro lado, una startup con un presupuesto ajustado puede que tenga que estar muy atenta a la cantidad de datos que mantiene.

¿Cómo podemos borrar datos en Couchbase?

  • Establecer la caducidad del documento (también conocido como TTL, time to live). Los valores TTL forman parte de los metadatos del documento: si TTL es cero, el documento no caducará. Un valor mayor que cero es el número de segundos tras los cuales el documento se marcará como eliminado. TTL se puede establecer y actualizar a través de métodos SDK o (a partir de Couchbase Server 6.5.1) a través de Consulta N1QL.
  • Establecer TTL en un cubo. A todos los documentos nuevos que entren en el bucket se les asignará el TTL, a menos que ya esté establecido.
  • Eliminar documentos mediante consulta N1QL o función Eventing. Las funciones Eventing también pueden ejecutarse mediante temporizadores .
  • Tirar o dejar caer todo el cubo.

Antes de eliminar los datos del cluster de Couchbase, puede que quieras archivarlos o compartirlos por alguna de las razones que se indican a continuación:

  • Archive documentos en otro clúster de Couchbase utilizando XDCR (replicación entre centros de datos). Los documentos del bucket de origen pueden tener TTL, que pueden eliminarse antes de entrar en el bucket de destino. Esta opción es configurable para las réplicas XDCR.
  • Archiva documentos en un sistema de almacenamiento más barato (por ejemplo, AWS S3) para conservarlos durante más tiempo.
  • Trasladar los documentos a otro sistema para su posterior análisis (por ejemplo, un lago de datos para la investigación científica a largo plazo).

Al dejar nuestro naranja habitación, mantengamos esto W.A.R.M. (Escribir, Agregar, Leer, Seguir) en nuestra memoria. El ciclo vital de los datos de las series temporales se muestra con estas letras mayúsculas -una letra por cada pared- y las flechas garabateadas (como la de arriba) que las conectan.

Próximamente más salas

Bien, amarillo es el color de la esperanza, pero es muy difícil de leer sobre un fondo blanco. Lo usaré aquí una vez como símbolo de mi esperanza de compartir pronto con ustedes el Episodio 2 de esta Serie sobre el Tiempo. ¡Gracias por su tiempo!

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

Autor

Publicado por Oleg Kuzmin, Ingeniero de soluciones sénior, 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.