sql >> Database >  >> RDS >> PostgreSQL

TimescaleDB inschakelen op een bestaande PostgreSQL-database

Als u een PostgreSQL-cluster in gebruik heeft en u moet omgaan met gegevens die in de loop van de tijd veranderen (zoals meetwaarden die van een systeem zijn verzameld), kunt u overwegen een tijdreeksdatabase te gebruiken die is ontworpen om dit soort gegevens op te slaan.

TimescaleDB is een open-source tijdreeksdatabase die is geoptimaliseerd voor snelle opname en complexe query's die volledige SQL ondersteunt. Het is gebaseerd op PostgreSQL en biedt het beste van NoSQL en relationele werelden voor tijdreeksgegevens.

In deze blog zullen we zien hoe u TimescaleDB handmatig kunt inschakelen in een bestaande PostgreSQL-database en hoe u dezelfde taak kunt uitvoeren met ClusterControl.

TimescaleDB handmatig inschakelen

Voor deze blog gebruiken we CentOS 7 als besturingssysteem en PostgreSQL 11 als databaseserver.

Standaard heeft u TimescaleDB niet ingeschakeld voor PostgreSQL:

world=# \dx

                 List of installed extensions

  Name   | Version |   Schema |     Description

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

 plpgsql | 1.0     | pg_catalog | PL/pgSQL procedural language

(1 row)

Dus eerst moet je de bijbehorende repository toevoegen om de software te installeren:

$ 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

We gaan ervan uit dat je de PostgreSQL-repository hebt geïnstalleerd, aangezien deze TimescaleDB-installatie van daaruit afhankelijkheden vereist.

De volgende stap is om het pakket te installeren:

$ yum install timescaledb-postgresql-11

En configureer het in uw huidige PostgreSQL-database. Bewerk hiervoor uw postgresql.conf-bestand en voeg 'timescaledb' toe aan de parameter shared_preload_libraries:

shared_preload_libraries = 'timescaledb'

Of als je daar al iets hebt toegevoegd:

shared_preload_libraries = 'pg_stat_statements,timescaledb'

U kunt ook de max_background_workers voor TimescaleDB configureren om het maximale aantal achtergrondwerkers op te geven.

timescaledb.max_background_workers=4

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

$ service postgresql-11 restart

En dan heb je je TimescaleDB geïnstalleerd:

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)

Dus nu moet je het inschakelen:

$ 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

Klaar.

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)

Laten we nu eens kijken hoe we het kunnen inschakelen met ClusterControl.

ClusterControl gebruiken om TimescaleDB in te schakelen

We gaan ervan uit dat je je PostgreSQL-cluster hebt geïmporteerd in ClusterControl of er zelfs mee hebt geïmplementeerd.

Als u TimescaleDB wilt inschakelen met ClusterControl, hoeft u alleen maar naar uw PostgreSQL-clusteracties te gaan en op de optie "TimescaleDB inschakelen" te drukken.

U ontvangt een waarschuwing over het opnieuw opstarten van de database. Bevestig het.

U kunt de taak controleren in het gedeelte ClusterControl-activiteit.

Dan heb je je TimescaleDB klaar voor gebruik.

Conclusie

Nu u uw TimescaleDB in gebruik heeft, kunt u uw tijdreeksgegevens op een meer performante manier verwerken. Hiervoor kunt u nieuwe tabellen maken of zelfs uw huidige gegevens migreren, en u moet natuurlijk weten hoe u deze moet gebruiken om van dit nieuwe concept te profiteren.


  1. Meerdere updates in MySQL

  2. 5 MySql nuttige vragen tijdens projectontwikkeling

  3. Juiste query om het huidige aantal verbindingen in een PostgreSQL DB te krijgen

  4. Elementen retourneren van een JSON-array in MariaDB