sql >> Databáze >  >> RDS >> PostgreSQL

Jak povolit TimescaleDB na existující databázi PostgreSQL

Pokud máte v provozu cluster PostgreSQL a potřebujete zpracovávat data, která se mění s časem (jako jsou metriky shromážděné ze systému), měli byste zvážit použití databáze časových řad, která je navržena k ukládání tohoto druhu dat.

TimescaleDB je open source databáze časových řad optimalizovaná pro rychlé ingest a složité dotazy, která podporuje plné SQL. Je založen na PostgreSQL a nabízí to nejlepší z NoSQL a relačních světů pro data časových řad.

V tomto blogu uvidíme, jak ručně povolit TimescaleDB ve stávající databázi PostgreSQL a jak provést stejný úkol pomocí ClusterControl.

Ruční povolení TimescaleDB

Pro tento blog budeme používat CentOS 7 jako operační systém a PostgreSQL 11 jako databázový server.

Ve výchozím nastavení nemáte TimescaleDB povolenou pro PostgreSQL:

world=# \dx

                 List of installed extensions

  Name   | Version |   Schema |     Description

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

 plpgsql | 1.0     | pg_catalog | PL/pgSQL procedural language

(1 row)

Nejprve tedy musíte přidat odpovídající úložiště pro instalaci softwaru:

$ 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

Předpokládáme, že máte na svém místě úložiště PostgreSQL, protože tato instalace TimescaleDB bude vyžadovat závislosti odtud.

Dalším krokem je instalace balíčku:

$ yum install timescaledb-postgresql-11

A nakonfigurujte jej ve své aktuální databázi PostgreSQL. Za tímto účelem upravte svůj soubor postgresql.conf a přidejte 'timescaledb' do parametru shared_preload_libraries:

shared_preload_libraries = 'timescaledb'

Nebo pokud tam již něco máte:

shared_preload_libraries = 'pg_stat_statements,timescaledb'

Můžete také nakonfigurovat max_background_workers pro TimescaleDB a určit maximální počet pracovníků na pozadí.

timescaledb.max_background_workers=4

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

$ service postgresql-11 restart

A pak budete mít nainstalovanou 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)

Teď jej musíte povolit:

$ 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

Hotovo.

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)

Nyní se podíváme, jak jej povolit pomocí ClusterControl.

Použití ClusterControl k povolení TimescaleDB

Předpokládáme, že máte svůj PostgreSQL cluster importovaný v ClusterControl nebo dokonce nasazený pomocí něj.

Chcete-li povolit TimescaleDB pomocí ClusterControl, stačí přejít do svého PostgreSQL Cluster Actions a stisknout možnost „Povolit TimescaleDB“.

Obdržíte varování o restartu databáze. Potvrďte to.

Úlohu můžete sledovat v sekci ClusterControl Activity.

Pak budete mít svou TimescaleDB připravenou k použití.

Závěr

Nyní máte svůj TimescaleDB v provozu a můžete pracovat s daty časových řad výkonnějším způsobem. Za tímto účelem můžete vytvářet nové tabulky nebo dokonce migrovat svá aktuální data a samozřejmě byste měli vědět, jak je používat, abyste mohli využít výhod tohoto nového konceptu.


  1. Nejlepší způsob, jak hostovat MySQL v Azure Cloud

  2. ORA-00904 neplatný identifikátor na dekódovacím aliasu

  3. Databázové modelování

  4. PostgreSQL DESCRIBE TABLE Ekvivalent