PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So aktivieren Sie TimescaleDB in einer vorhandenen PostgreSQL-Datenbank

Wenn Sie einen PostgreSQL-Cluster in Betrieb haben und mit Daten umgehen müssen, die sich mit der Zeit ändern (z. B. von einem System erfasste Metriken), sollten Sie die Verwendung einer geeigneten Zeitreihendatenbank in Betracht ziehen um diese Art von Daten zu speichern.

TimescaleDB ist eine Open-Source-Zeitreihendatenbank, die für schnelle Aufnahme und komplexe Abfragen optimiert ist und vollständiges SQL unterstützt. Es basiert auf PostgreSQL und bietet das Beste aus NoSQL- und relationalen Welten für Zeitreihendaten.

In diesem Blog werden wir sehen, wie man TimescaleDB manuell in einer bestehenden PostgreSQL-Datenbank aktiviert und wie man die gleiche Aufgabe mit ClusterControl durchführt.

TimescaleDB manuell aktivieren

Für diesen Blog verwenden wir CentOS 7 als Betriebssystem und PostgreSQL 11 als Datenbankserver.

Standardmäßig ist TimescaleDB nicht für PostgreSQL aktiviert:

world=# \dx

                 List of installed extensions

  Name   | Version |   Schema |     Description

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

 plpgsql | 1.0     | pg_catalog | PL/pgSQL procedural language

(1 row)

Also müssen Sie zuerst das entsprechende Repository hinzufügen, um die Software zu installieren:

$ 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

Wir gehen davon aus, dass Sie das PostgreSQL-Repository installiert haben, da diese TimescaleDB-Installation Abhängigkeiten von dort benötigt.

Der nächste Schritt ist die Installation des Pakets:

$ yum install timescaledb-postgresql-11

Und konfigurieren Sie es in Ihrer aktuellen PostgreSQL-Datenbank. Bearbeiten Sie dazu Ihre postgresql.conf-Datei und fügen Sie „timescaledb“ im Parameter shared_preload_libraries hinzu:

shared_preload_libraries = 'timescaledb'

Oder wenn Sie dort schon etwas hinzugefügt haben:

shared_preload_libraries = 'pg_stat_statements,timescaledb'

Sie können auch max_background_workers für TimescaleDB konfigurieren, um die maximale Anzahl von Hintergrundarbeitern anzugeben.

timescaledb.max_background_workers=4

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

$ service postgresql-11 restart

Und dann haben Sie Ihre TimescaleDB installiert:

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)

Also müssen Sie es jetzt aktivieren:

$ 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

Fertig.

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)

Sehen wir uns nun an, wie man es mit ClusterControl aktiviert.

ClusterControl verwenden, um TimescaleDB zu aktivieren

Wir gehen davon aus, dass Sie Ihren PostgreSQL-Cluster in ClusterControl importiert oder sogar damit bereitgestellt haben.

Um TimescaleDB mit ClusterControl zu aktivieren, müssen Sie nur zu Ihren PostgreSQL-Clusteraktionen gehen und auf die Option „Enable TimescaleDB“ klicken.

Sie erhalten eine Warnung zum Neustart der Datenbank. Bestätigen Sie es.

Sie können die Aufgabe im Abschnitt ClusterControl-Aktivität überwachen.

Dann haben Sie Ihre TimescaleDB einsatzbereit.

Fazit

Nachdem Sie Ihre TimescaleDB eingerichtet und ausgeführt haben, können Sie Ihre Zeitreihendaten performanter verarbeiten. Dazu können Sie neue Tabellen erstellen oder sogar Ihre aktuellen Daten migrieren, und natürlich sollten Sie wissen, wie man damit umgeht, um von diesem neuen Konzept zu profitieren.