sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo habilitar TimescaleDB en una base de datos PostgreSQL existente

Si tiene un clúster de PostgreSQL en funcionamiento y necesita manejar datos que cambian con el tiempo (como métricas recopiladas de un sistema), debería considerar usar una base de datos de series temporales diseñada para almacenar este tipo de datos.

TimescaleDB es una base de datos de series temporales de código abierto optimizada para ingesta rápida y consultas complejas que admite SQL completo. Se basa en PostgreSQL y ofrece lo mejor de los mundos NoSQL y relacional para datos de series temporales.

En este blog, veremos cómo habilitar manualmente TimescaleDB en una base de datos PostgreSQL existente y cómo hacer la misma tarea usando ClusterControl.

Habilitación de TimescaleDB manualmente

Para este blog, usaremos CentOS 7 como sistema operativo y PostgreSQL 11 como servidor de base de datos.

De forma predeterminada, no tiene habilitado TimescaleDB para PostgreSQL:

world=# \dx

                 List of installed extensions

  Name   | Version |   Schema |     Description

---------+---------+------------+------------------------------

 plpgsql | 1.0     | pg_catalog | PL/pgSQL procedural language

(1 row)

Entonces, primero, debe agregar el repositorio correspondiente para instalar el software:

$ cat /etc/yum.repos.d/timescale_timescaledb.repo

[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

Supondremos que tiene el repositorio de PostgreSQL en su lugar, ya que esta instalación de TimescaleDB requerirá dependencias desde allí.

El siguiente paso es instalar el paquete:

$ yum install timescaledb-postgresql-11

Y configúrelo en su base de datos PostgreSQL actual. Para esto, edite su archivo postgresql.conf y agregue 'timescaledb' en el parámetro shared_preload_libraries:

shared_preload_libraries = 'timescaledb'

O si ya tiene algo agregado allí:

shared_preload_libraries = 'pg_stat_statements,timescaledb'

También puede configurar max_background_workers para TimescaleDB para especificar el número máximo de trabajadores en segundo plano.

timescaledb.max_background_workers=4

Keep in mind that this change requires a database service restart:

$ service postgresql-11 restart

Y luego, tendrás tu TimescaleDB instalado:

postgres=# SELECT * FROM pg_available_extensions WHERE name='timescaledb';

    name     | default_version | installed_version |                              comment



-------------+-----------------+-------------------+-----------------------------------------------

--------------------

 timescaledb | 1.6.0           | | Enables scalable inserts and complex queries f

or time-series data

(1 row)

Así que ahora, necesitas habilitarlo:

$ psql world

world=# CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;

WARNING:

WELCOME TO

 _____ _                               _ ____________

|_   _(_)                             | | | _ \ ___ \

  | |  _ _ __ ___   ___ ___ ___ __ _| | ___| | | | |_/ /

  | | | |  _ ` _ \ / _ \/ __|/ __/ _` | |/ _ \ | | | ___ \

  | | | | | | | | |  __/\__ \ (_| (_| | |  __/ |/ /| |_/ /

  |_| |_|_| |_| |_|\___||___/\___\__,_|_|\___|___/ \____/

               Running version 1.6.0

For more information on TimescaleDB, please visit the following links:



 1. Getting started: https://docs.timescale.com/getting-started

 2. API reference documentation: https://docs.timescale.com/api

 3. How TimescaleDB is designed: https://docs.timescale.com/introduction/architecture



Note: TimescaleDB collects anonymous reports to better understand and assist our users.

For more information and how to disable, please see our docs https://docs.timescaledb.com/using-timescaledb/telemetry.



CREATE EXTENSION

Listo.

world=# \dx

                                      List of installed extensions

    Name     | Version |   Schema |                         Description



-------------+---------+------------+--------------------------------------------------------------

-----

 plpgsql     | 1.0 | pg_catalog | PL/pgSQL procedural language

 timescaledb | 1.6.0   | public | Enables scalable inserts and complex queries for time-series

data

(2 rows)

Ahora, veamos cómo habilitarlo usando ClusterControl.

Uso de ClusterControl para habilitar TimescaleDB

Supondremos que tiene su clúster de PostgreSQL importado en ClusterControl o incluso implementado usándolo.

Para habilitar TimescaleDB usando ClusterControl, solo necesita ir a sus acciones de clúster de PostgreSQL y presionar la opción "Habilitar TimescaleDB".

Recibirá una advertencia sobre el reinicio de la base de datos. Confirmarlo.

Puede monitorear la tarea en la sección Actividad de ClusterControl.

Entonces tendrás tu TimescaleDB listo para usar.

Conclusión

Ahora que tiene su TimescaleDB en funcionamiento, puede manejar sus datos de series temporales de una manera más eficaz. Para esto, puedes crear nuevas tablas o incluso migrar tus datos actuales y, por supuesto, debes saber cómo usarlo para aprovechar este nuevo concepto.