PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment activer TimescaleDB sur une base de données PostgreSQL existante

Si vous avez un cluster PostgreSQL opérationnel et que vous devez gérer des données qui changent avec le temps (comme les métriques collectées à partir d'un système), vous devriez envisager d'utiliser une base de données chronologique conçue pour stocker ce type de données.

TimescaleDB est une base de données de séries chronologiques open source optimisée pour une ingestion rapide et des requêtes complexes qui prend en charge le SQL complet. Il est basé sur PostgreSQL et offre le meilleur des mondes NoSQL et relationnel pour les données de séries temporelles.

Dans ce blog, nous verrons comment activer manuellement TimescaleDB dans une base de données PostgreSQL existante et comment effectuer la même tâche en utilisant ClusterControl.

Activation manuelle de TimescaleDB

Pour ce blog, nous utiliserons CentOS 7 comme système d'exploitation et PostgreSQL 11 comme serveur de base de données.

Par défaut, TimescaleDB n'est pas activé pour PostgreSQL :

world=# \dx

                 List of installed extensions

  Name   | Version |   Schema |     Description

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

 plpgsql | 1.0     | pg_catalog | PL/pgSQL procedural language

(1 row)

Donc, vous devez d'abord ajouter le référentiel correspondant pour installer le logiciel :

$ 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

Nous supposerons que vous avez le référentiel PostgreSQL en place car cette installation de TimescaleDB nécessitera des dépendances à partir de là.

L'étape suivante consiste à installer le package :

$ yum install timescaledb-postgresql-11

Et configurez-le dans votre base de données PostgreSQL actuelle. Pour cela, éditez votre fichier postgresql.conf et ajoutez 'timescaledb' dans le paramètre shared_preload_libraries :

shared_preload_libraries = 'timescaledb'

Ou si vous avez déjà ajouté quelque chose :

shared_preload_libraries = 'pg_stat_statements,timescaledb'

Vous pouvez également configurer max_background_workers pour TimescaleDB pour spécifier le nombre maximum de travailleurs en arrière-plan.

timescaledb.max_background_workers=4

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

$ service postgresql-11 restart

Et ensuite, vous aurez installé votre TimescaleDB :

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)

Alors maintenant, vous devez l'activer :

$ 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

Terminé.

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)

Maintenant, voyons comment l'activer à l'aide de ClusterControl.

Utilisation de ClusterControl pour activer TimescaleDB

Nous supposerons que votre cluster PostgreSQL est importé dans ClusterControl ou même déployé en l'utilisant.

Pour activer TimescaleDB à l'aide de ClusterControl, il vous suffit d'accéder à vos actions de cluster PostgreSQL et d'appuyer sur l'option "Activer TimescaleDB".

Vous recevrez un avertissement concernant le redémarrage de la base de données. Confirmez-le.

Vous pouvez surveiller la tâche dans la section Activité de ClusterControl.

Ensuite, vous aurez votre TimescaleDB prêt à l'emploi.

Conclusion

Maintenant que votre TimescaleDB est opérationnel, vous pouvez gérer vos données de séries chronologiques de manière plus performante. Pour cela, vous pouvez créer de nouvelles tables ou même migrer vos données actuelles, et bien sûr, vous devez savoir vous en servir pour profiter de ce nouveau concept.