PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak włączyć TimescaleDB w istniejącej bazie danych PostgreSQL

Jeśli masz działający klaster PostgreSQL i musisz obsługiwać dane, które zmieniają się w czasie (takie jak metryki zebrane z systemu), powinieneś rozważyć użycie bazy danych szeregów czasowych, która została zaprojektowana do przechowywania tego rodzaju danych.

TimescaleDB to baza danych typu open source szeregów czasowych zoptymalizowana pod kątem szybkiego pozyskiwania i złożonych zapytań, która obsługuje pełny SQL. Opiera się na PostgreSQL i oferuje to, co najlepsze ze światów NoSQL i relacyjnych dla danych szeregów czasowych.

W tym blogu zobaczymy, jak ręcznie włączyć TimescaleDB w istniejącej bazie danych PostgreSQL i jak wykonać to samo zadanie za pomocą ClusterControl.

Ręczne włączanie TimescaleDB

W tym blogu użyjemy CentOS 7 jako systemu operacyjnego i PostgreSQL 11 jako serwera bazy danych.

Domyślnie nie masz włączonej bazy danych TimescaleDB dla PostgreSQL:

world=# \dx

                 List of installed extensions

  Name   | Version |   Schema |     Description

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

 plpgsql | 1.0     | pg_catalog | PL/pgSQL procedural language

(1 row)

Więc najpierw musisz dodać odpowiednie repozytorium, aby zainstalować oprogramowanie:

$ 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

Założymy, że masz repozytorium PostgreSQL, ponieważ ta instalacja TimescaleDB będzie wymagała od niego zależności.

Następnym krokiem jest zainstalowanie pakietu:

$ yum install timescaledb-postgresql-11

I skonfiguruj go w swojej aktualnej bazie danych PostgreSQL. W tym celu edytuj plik postgresql.conf i dodaj „timescaledb” w parametrze shared_preload_libraries:

shared_preload_libraries = 'timescaledb'

Lub jeśli masz już coś tam dodanego:

shared_preload_libraries = 'pg_stat_statements,timescaledb'

Możesz również skonfigurować max_background_workers dla TimescaleDB, aby określić maksymalną liczbę pracowników w tle.

timescaledb.max_background_workers=4

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

$ service postgresql-11 restart

Potem będziesz miał zainstalowaną bazę danych 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)

Więc teraz musisz go włączyć:

$ 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

Gotowe.

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)

Teraz zobaczmy, jak włączyć to za pomocą ClusterControl.

Korzystanie z ClusterControl do włączenia bazy danych skali czasu

Zakładamy, że masz klaster PostgreSQL zaimportowany do ClusterControl lub nawet wdrożony za jego pomocą.

Aby włączyć TimescaleDB za pomocą ClusterControl, wystarczy przejść do akcji klastra PostgreSQL i nacisnąć opcję „Włącz TimescaleDB”.

Otrzymasz ostrzeżenie o ponownym uruchomieniu bazy danych. Potwierdź.

Możesz monitorować zadanie w sekcji ClusterControl Activity.

W takim razie baza danych TimescaleDB będzie gotowa do użycia.

Wnioski

Teraz masz już uruchomioną bazę danych TimescaleDB, możesz obsługiwać dane szeregów czasowych w bardziej wydajny sposób. W tym celu możesz tworzyć nowe tabele, a nawet migrować bieżące dane, i oczywiście powinieneś wiedzieć, jak z nich korzystać, aby skorzystać z tej nowej koncepcji.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rails 3.2 Postgres Save Error ActiveRecord::StatementInvalid:PG::Error:ERROR:Błąd składni w pobliżu 'T' na pozycji 5

  2. Zapowiedź repmgr 2.0

  3. Połącz aplikację na iPhone'a z PostgreSQL za pomocą Libpq

  4. PostgreSQL + Hibernate + Spring automatyczne tworzenie bazy danych

  5. Jak wyświetlić kod CREATE VIEW dla widoku w PostgreSQL?