Base de datos de series temporales - Gestión eficiente de datos IoT y métricas con Amazon Timestream
Explicamos la gestión, consulta y análisis de datos de series temporales con Amazon Timestream. Presentamos el almacenamiento de datos de sensores IoT y métricas de aplicaciones, el almacenamiento con jerarquización automática y el análisis mediante consultas SQL.
Características de los datos de series temporales y necesidad de una base de datos especializada
Los datos de series temporales son datos donde los puntos de datos con marca de tiempo se generan continuamente en orden cronológico. Incluyen datos de temperatura, humedad y vibración de sensores IoT, métricas de aplicaciones (uso de CPU, tiempo de respuesta, número de solicitudes), datos de precios de mercados financieros y eventos de log. Los datos de series temporales tienen características únicas: las escrituras son abrumadoramente más frecuentes que las lecturas, que se centran en consultas de agregación; los datos más recientes tienen mayor frecuencia de acceso; se desea eliminar automáticamente los datos antiguos o migrarlos a almacenamiento de bajo costo; y se necesitan agregaciones por rango de tiempo, interpolación y detección de anomalías. Aunque RDS o DynamoDB pueden almacenar datos de series temporales, no están optimizados para estas características, por lo que el costo y el rendimiento de las consultas se degradan a medida que aumenta el volumen de datos. Amazon Timestream es una base de datos serverless especializada en datos de series temporales que resuelve fundamentalmente estos desafíos.
Arquitectura y almacenamiento con jerarquización automática
Timestream adopta una arquitectura de almacenamiento de 2 capas. El almacén de memoria es un almacenamiento de alta velocidad que retiene los datos más recientes, optimizado para escrituras y consultas de datos recientes. El período de retención se configura entre 1 hora y 8,766 horas (aproximadamente 1 año). El almacén magnético es un almacenamiento de bajo costo que retiene datos históricos, utilizado para análisis de datos a largo plazo. El período de retención puede configurarse entre 1 día y 73,000 días (aproximadamente 200 años). Los datos se migran automáticamente al almacén magnético cuando expira el período de retención del almacén de memoria, y se eliminan automáticamente cuando expira el período de retención del almacén magnético. Esta jerarquización automática elimina la necesidad de gestión del ciclo de vida de los datos. Los datos se comprimen y cifran automáticamente, minimizando los costos de almacenamiento. Timestream es serverless, sin necesidad de planificación de capacidad ni gestión de instancias. El throughput de escritura y la capacidad de procesamiento de consultas se escalan automáticamente.
Consultas SQL y funciones de series temporales
Timestream proporciona un lenguaje de consulta compatible con SQL que soporta funciones específicas de series temporales además del SQL estándar. Las funciones de interpolación (interpolate_linear, interpolate_spline) completan valores faltantes entre puntos de datos, las funciones de suavizado calculan medias móviles y las funciones de aproximación extraen tendencias. ```sql -- Temperatura promedio en intervalos de 5 minutos de la última hora SELECT device_id, bin(time, 5m) AS interval, avg(measure_value::double) AS avg_temp FROM iot_db.sensor_data WHERE measure_name = 'temperature' AND time > ago(1h) GROUP BY device_id, bin(time, 5m) ORDER BY interval DESC ``` Las consultas programadas son una función que ejecuta consultas periódicamente y escribe los resultados de vuelta al almacén magnético. Por ejemplo, al precalcular resultados de agregación por hora, se reducen significativamente el costo y la latencia de las consultas del dashboard. La integración con Grafana permite construir dashboards en tiempo real, con un plugin oficial de Grafana para Timestream disponible. Desde los fundamentos hasta las aplicaciones del análisis de datos IoT, puede aprender de forma sistemática con libros (Amazon).
Ingesta de datos y casos de uso
La ingesta de datos en Timestream se realiza mediante el AWS SDK (API WriteRecords). También es posible escribir datos directamente desde dispositivos IoT a Timestream mediante acciones de reglas de IoT Core. También soporta la ingesta a través de Kinesis Data Streams o Kinesis Data Firehose, procesando eficientemente grandes volúmenes de datos en streaming. Los principales casos de uso son: recopilación y análisis de datos de sensores IoT (monitoreo de equipos de fábrica, hogar inteligente, telemetría de vehículos), almacenamiento y análisis a largo plazo de métricas de aplicaciones (almacenamiento de métricas que exceden el período de retención de CloudWatch), monitoreo de infraestructura DevOps (agregación de métricas de servidores y contenedores) y seguimiento de métricas de negocio (tendencias de ventas, actividad de usuarios). En cuanto a la diferenciación con DynamoDB, si el patrón de acceso clave-valor (obtener el último valor de un dispositivo específico) es central, DynamoDB es adecuado; si la agregación y análisis por rango de tiempo es central, Timestream es más apropiado.
Precios de Timestream
Los precios de Timestream se componen de escritura, almacenamiento y consultas. La escritura cuesta aproximadamente 0.50 USD por millón de registros, el almacenamiento en memoria aproximadamente 0.036 USD por GB al mes y el almacenamiento magnético aproximadamente 0.03 USD. Las consultas cuestan aproximadamente 0.01 USD por GB escaneado. Se optimizan los costos configurando un período de retención corto para el almacenamiento en memoria (por ejemplo: 1 hora) y migrando automáticamente los datos antiguos al almacenamiento magnético. En comparación con el autoalojamiento de InfluxDB, el efecto de reducción de costos operativos es significativo.
Resumen - Directrices de uso de Timestream
Amazon Timestream es una base de datos serverless especializada en datos de series temporales. Sus principales fortalezas son la optimización de costos mediante almacenamiento con jerarquización automática, consultas de series temporales compatibles con SQL, pre-agregación mediante consultas programadas e integración con Grafana. Es efectivo como base para la recopilación y análisis de datos IoT, almacenamiento a largo plazo de métricas de aplicaciones y monitoreo DevOps. Si está almacenando datos de series temporales en DynamoDB o RDS y enfrenta problemas de costo o rendimiento de consultas, vale la pena considerar la migración a Timestream.