lanzamiento de la base de datos , diseñada para almacenar y procesar datos en forma de series temporales (cortes de valores de parámetros a intervalos de tiempo definidos, donde el tiempo y su conjunto de valores correspondientes se almacenan). Esta forma de almacenamiento es óptima para aplicaciones como sistemas de monitoreo, plataformas comerciales, y sistemas de recolección de métricas y estados de sensores. Se proporcionan herramientas para la integración con el proyecto y .
El proyecto TimescaleDB se implementa como una extensión de PostgreSQL y bajo la licencia Apache 2.0. con capacidades ampliadas se suministra bajo una licencia propietaria separada (TSL), que no permite modificaciones, prohíbe el uso del código en productos externos y no autoriza el uso gratuito en bases de datos en la nube (database-as-a-service).
Entre los cambios en TimescaleDB 1.7:
- Se agregó soporte para la integración con bases de datos . Se declaró obsoleto el soporte para PostgreSQL 9.6.x y 10.x (en Timescale 2.0 solo se mantendrá el soporte de PostgreSQL 11+).
- Se modificó el comportamiento de las consultas con funciones de agregado ejecutadas de forma continua (agregación de datos que llegan en tiempo real). Estas consultas ahora combinan vistas materializadas con datos recién llegados que aún no están materializados (anteriormente, la agregación solo abarcaba los datos ya materializados). Este nuevo comportamiento se aplica a las nuevas agregaciones continuas, y para las vistas existentes se debe establecer el parámetro 'timescaledb.materialized_only=false' a través de 'ALTER VIEW'.
- Se han trasladado algunas herramientas avanzadas de gestión del ciclo de vida de los datos de la edición comercial a la versión Community, incluyendo capacidades para reorganizar datos y gestionar políticas de eliminación de datos obsoletos (que permiten almacenar solo datos actuales y eliminar, agregar o archivar automáticamente registros obsoletos).
Recordemos que la base de datos TimescaleDB permite aplicar consultas SQL completas para analizar los datos acumulados, combinando la facilidad de uso propia de las bases de datos relacionales con la escalabilidad y las capacidades propias de sistemas NoSQL especializados. La estructura de almacenamiento está optimizada para garantizar una alta velocidad de inserción de datos. Soporta la inserción por lotes de conjuntos de datos, el uso de índices en memoria y la carga de cortes históricos retroactivamente, así como la aplicación de transacciones.
Una característica clave de TimescaleDB es el soporte para el particionamiento automático de conjuntos de datos. El flujo de datos entrante se distribuye automáticamente entre las tablas particionadas. Las secciones se crean en función del tiempo (cada sección almacena datos de un intervalo de tiempo determinado) o pueden estar ligadas a una clave arbitraria (como el identificador del dispositivo, la ubicación, etc.). Para optimizar el rendimiento, las tablas particionadas pueden distribuirse en diferentes discos.
Para las consultas, la base de datos particionada aparece como una única tabla grande, denominada hipertabla. La hipertabla representa una vista virtual de múltiples tablas individuales donde se acumulan los datos entrantes. Se utiliza no solo para consultas y la adición de datos, sino también para operaciones como la creación de índices y modificación de la estructura ("ALTER TABLE"), ocultando al desarrollador la estructura segmentada a bajo nivel de la base de datos. Se pueden utilizar cualquier función de agregado, subconsultas, operaciones de unión (JOIN) con tablas convencionales y funciones de ventana con la hipertabla.
Fuente: opennet.ru
