TimescaleDB, una base de datos open source para el almacenamiento de datos de series temporales
Se dio a conocer el lanzamiento de la nueva version de TimescaleDB 1.7, version en la cual se destaca el soporte añadido para PostgreSQL 12, asà como también en la modificación de algunas funciones. Para quienes desconocen de TimescaleDB, deben saber que es una base de datos diseñada para almacenar y procesar datos en forma de series de tiempo (segmentos de valores de parámetros a intervalos de tiempo dados, el registro forma el tiempo y un conjunto de valores correspondientes a este tiempo).
Esta forma de almacenamiento es óptima para aplicaciones tales como sistemas de monitoreo, plataformas de negociación, sistemas para recopilar métricas y estados de sensores.
Sobre TimescaleDB
El proyecto TimescaleDB se implementa como una extensión de PostgreSQL y se distribuye bajo la licencia Apache 2.0. Parte del código con funciones avanzadas se entrega bajo una licencia propietaria separada Timescale (TSL), que no permite cambios, prohÃbe el uso de código en productos de terceros y no permite el uso gratuito en bases de datos en la nube (base de datos como servicio).
La parte interesante de TimescaleDB, radica en que permite utilizar consultas SQL completas para analizar los datos acumulados, combinando la facilidad de uso inherente a los DBMS relacionales con la escalabilidad y las capacidades inherentes a los sistemas NoSQL especializados.
La estructura de almacenamiento está optimizada para proporcionar una alta tasa de adición de datos. Admite conjuntos de datos de adición de lotes, utilizando Ãndices almacenados en RAM, cargando segmentos históricos retroactivamente, aplicando transacciones.
Una caracterÃstica clave de TimescaleDB es el soporte para la partición automática (partición) de la matriz de datos. El flujo de datos de entrada se distribuye automáticamente entre las tablas particionadas.
Las secciones se crean en función del tiempo (cada sección almacena datos durante un cierto perÃodo de tiempo) o en relación con una clave arbitraria (por ejemplo, identificador del dispositivo, ubicación, etc.). Las tablas particionadas se pueden distribuir entre diferentes unidades para optimizar el rendimiento.
Para las consultas, una base de datos particionada se parece a una tabla grande, llamada hipertable. Una hipertable es una representación virtual de muchas tablas separadas en las que se acumulan datos entrantes.
¿Qué hay de nuevo en TimescaleDB 1.7?
En esta nueva version se destaca el soporte para la integración con PostgreSQL 12 DBMS, mientras que el soporte para PostgreSQL 9.6.xy 10.x ha sido declarado obsoleto, aun que para Timescale 2.0 solo el soporte de PostgreSQL 11+ permanecerá.
Ademas se destaca que se modificó el comportamiento de las consultas con funciones agregadas ejecutadas continuamente (agregación de datos continuamente entrantes en tiempo real).
Dichas consultas ahora combinan vistas materializadas con datos recién llegados que aún no se han materializado (anteriormente, la agregación solo cubrÃa datos ya materializados). El nuevo comportamiento se usa para las agregaciones continuas recién creadas.
Por otra parte, algunas herramientas avanzadas de gestión del ciclo de vida de los datos se han trasladado a la versión comunitaria de la edición comercial, incluida la capacidad de reagrupar datos y procesar polÃticas para desplazar datos obsoletos (le permiten almacenar solo datos actuales y eliminar, agregar o archivar automáticamente registros obsoletos).
¿Cómo instalar TimescaleDB en Linux?
Para quienes estén interesados en poder instalar TimescaleDB en su sistema, podrán hacerlo siguiendo las instrucciones que compartimos a continuación.
En el caso de los que son usuarios de Ubuntu:
sudo echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -c -s)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add – sudo add-apt-repository ppa:timescale/timescaledb-ppa sudo apt-get update sudo apt install timescaledb-postgresql-11
En el caso de Debian:
sudo sh -c "echo 'deb https://packagecloud.io/timescale/timescaledb/debian/ `lsb_release -c -s` main' > /etc/apt/sources.list.d/timescaledb.list" wget --quiet -O - https://packagecloud.io/timescale/timescaledb/gpgkey | sudo apt-key add - sudo apt-get update sudo apt-get install timescaledb-postgresql-11
RHEL/CentOS:
sudo yum install -y https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo tee /etc/yum.repos.d/timescale_timescaledb.repo <<EOL [timescale_timescaledb] name=timescale_timescaledb baseurl=https://packagecloud.io/timescale/timescaledb/el/7/\$basearch repo_gpgcheck=1 gpgcheck=0 enabled=1 gpgkey=https://packagecloud.io/timescale/timescaledb/gpgkey sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300 EOL
sudo yum update -y sudo yum install -y timescaledb-postgresql-11
Ahora vamos a configurar la base de datos con:
sudo timescaledb-tune
Aquà se pueden realizar diversas configuraciones, de las cuales pueden consultar en el siguiente enlace.
Al finalizar basta con reiniciar el servicio:
sudo service postgresql restart