sql >> Database teknologi >  >> RDS >> PostgreSQL

Sådan aktiveres TimescaleDB på en eksisterende PostgreSQL-database

Hvis du har en PostgreSQL-klynge i gang, og du skal håndtere data, der ændrer sig med tiden (som målinger indsamlet fra et system), bør du overveje at bruge en tidsseriedatabase, der er designet at gemme denne slags data.

TimescaleDB er en open source tidsseriedatabase optimeret til hurtig indlæsning og komplekse forespørgsler, der understøtter fuld SQL. Det er baseret på PostgreSQL, og det tilbyder det bedste fra NoSQL og Relationelle verdener til tidsseriedata.

I denne blog vil vi se, hvordan man manuelt aktiverer TimescaleDB i en eksisterende PostgreSQL-database, og hvordan man udfører den samme opgave ved hjælp af ClusterControl.

Aktivering af TimescaleDB manuelt

Til denne blog vil vi bruge CentOS 7 som operativsystem og PostgreSQL 11 som databaseserver.

Som standard har du ikke TimescaleDB aktiveret for PostgreSQL:

world=# \dx

                 List of installed extensions

  Name   | Version |   Schema |     Description

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

 plpgsql | 1.0     | pg_catalog | PL/pgSQL procedural language

(1 row)

Så først skal du tilføje det tilsvarende lager for at installere softwaren:

$ 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

Vi antager, at du har PostgreSQL-lageret på plads, da denne TimescaleDB-installation vil kræve afhængigheder derfra.

Næste trin er at installere pakken:

$ yum install timescaledb-postgresql-11

Og konfigurer det i din nuværende PostgreSQL-database. Til dette skal du redigere din postgresql.conf-fil og tilføje 'timescaledb' i parameteren shared_preload_libraries:

shared_preload_libraries = 'timescaledb'

Eller hvis du allerede har tilføjet noget der:

shared_preload_libraries = 'pg_stat_statements,timescaledb'

Du kan også konfigurere max_background_workers for TimescaleDB til at angive det maksimale antal baggrundsarbejdere.

timescaledb.max_background_workers=4

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

$ service postgresql-11 restart

Og så vil du have din TimescaleDB installeret:

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)

Så nu skal du aktivere det:

$ 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

Udført.

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)

Lad os nu se, hvordan du aktiverer det ved hjælp af ClusterControl.

Brug af ClusterControl til at aktivere TimescaleDB

Vi antager, at du har din PostgreSQL-klynge importeret i ClusterControl eller endda implementeret ved hjælp af den.

For at aktivere TimescaleDB ved hjælp af ClusterControl, skal du blot gå til dine PostgreSQL Cluster Actions og trykke på "Aktiver TimescaleDB".

Du vil modtage en advarsel om genstart af databasen. Bekræft det.

Du kan overvåge opgaven i afsnittet ClusterControl Activity.

Så har du din TimescaleDB klar til brug.

Konklusion

Nu du har din TimescaleDB kørende, kan du håndtere dine tidsseriedata på en mere effektiv måde. Til dette kan du oprette nye tabeller eller endda migrere dine nuværende data, og du skal selvfølgelig vide, hvordan du bruger dem til at drage fordel af dette nye koncept.


  1. SQL ALTER DATABASE Syntaks – Listet efter DBMS

  2. Tilslutning af RStudio til SQL Server

  3. Er en visning hurtigere end en simpel forespørgsel?

  4. Vend tilbage til readline version 6.x i Homebrew for at rette Postgresql?