sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man aktiverar TimescaleDB på en befintlig PostgreSQL-databas

Om du har ett PostgreSQL-kluster igång och du behöver hantera data som ändras med tiden (som mätvärden som samlas in från ett system) bör du överväga att använda en tidsseriedatabas som är designad för att lagra denna typ av data.

TimescaleDB är en tidsseriedatabas med öppen källkod optimerad för snabb inmatning och komplexa frågor som stöder fullständig SQL. Den är baserad på PostgreSQL och den erbjuder det bästa av NoSQL och relationsvärldar för tidsseriedata.

I den här bloggen kommer vi att se hur man manuellt aktiverar TimescaleDB i en befintlig PostgreSQL-databas och hur man gör samma uppgift med ClusterControl.

Aktivera TimescaleDB manuellt

För den här bloggen kommer vi att använda CentOS 7 som operativsystem och PostgreSQL 11 som databasserver.

Som standard har du inte TimescaleDB aktiverat för 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 måste du lägga till motsvarande arkiv för att installera programvaran:

$ 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 antar att du har PostgreSQL-förrådet på plats eftersom denna TimescaleDB-installation kommer att kräva beroenden därifrån.

Nästa steg är att installera paketet:

$ yum install timescaledb-postgresql-11

Och konfigurera den i din nuvarande PostgreSQL-databas. För detta, redigera din postgresql.conf-fil och lägg till 'timescaledb' i parametern shared_preload_libraries:

shared_preload_libraries = 'timescaledb'

Eller om du redan har lagt till något där:

shared_preload_libraries = 'pg_stat_statements,timescaledb'

Du kan också konfigurera max_background_workers för TimescaleDB för att ange det maximala antalet bakgrundsarbetare.

timescaledb.max_background_workers=4

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

$ service postgresql-11 restart

Och sedan kommer du att ha din TimescaleDB installerad:

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 måste du aktivera 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

Klart.

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)

Nu ska vi se hur du aktiverar det med ClusterControl.

Använda ClusterControl för att aktivera TimescaleDB

Vi antar att du har ditt PostgreSQL-kluster importerat i ClusterControl eller till och med distribuerat med det.

För att aktivera TimescaleDB med ClusterControl behöver du bara gå till dina PostgreSQL Cluster Actions och trycka på alternativet "Aktivera TimescaleDB".

Du kommer att få en varning om omstart av databasen. Bekräfta det.

Du kan övervaka uppgiften i avsnittet ClusterControl Activity.

Då har du din TimescaleDB redo att användas.

Slutsats

Nu har du din TimescaleDB igång, du kan hantera dina tidsseriedata på ett mer prestandafullt sätt. För detta kan du skapa nya tabeller eller till och med migrera din nuvarande data, och naturligtvis bör du veta hur du använder den för att dra fördel av detta nya koncept.


  1. phpMyAdmin på MySQL 8.0

  2. Introduktion till PL/SQL-funktioner i Oracle Database

  3. Hur man ändrar en användare till Superuser i PostgreSQL

  4. Hur man sparar en databas som en mall i Access 2016