PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да активирате TimescaleDB в съществуваща PostgreSQL база данни

Ако имате работещ PostgreSQL клъстер и трябва да обработвате данни, които се променят с времето (като показатели, събрани от система), трябва да обмислите използването на база данни от времеви серии, която е проектирана за съхраняване на този вид данни.

TimescaleDB е база данни с времеви серии с отворен код, оптимизирана за бързо приемане и сложни заявки, която поддържа пълен SQL. Той е базиран на PostgreSQL и предлага най-доброто от NoSQL и релационните светове за данни от времеви серии.

В този блог ще видим как ръчно да активирате TimescaleDB в съществуваща PostgreSQL база данни и как да направите същата задача с помощта на ClusterControl.

Ръчно активиране на TimescaleDB

За този блог ще използваме CentOS 7 като операционна система и PostgreSQL 11 като сървър на база данни.

По подразбиране нямате активирана TimescaleDB за PostgreSQL:

world=# \dx

                 List of installed extensions

  Name   | Version |   Schema |     Description

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

 plpgsql | 1.0     | pg_catalog | PL/pgSQL procedural language

(1 row)

Така че първо трябва да добавите съответното хранилище, за да инсталирате софтуера:

$ 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

Ще приемем, че разполагате с хранилището на PostgreSQL, тъй като тази инсталация на TimescaleDB ще изисква зависимости от там.

Следващата стъпка е да инсталирате пакета:

$ yum install timescaledb-postgresql-11

И го конфигурирайте в текущата си база данни PostgreSQL. За това редактирайте вашия файл postgresql.conf и добавете 'timescaledb' в параметъра shared_preload_libraries:

shared_preload_libraries = 'timescaledb'

Или ако вече сте добавили нещо там:

shared_preload_libraries = 'pg_stat_statements,timescaledb'

Можете също да конфигурирате max_background_workers за TimescaleDB, за да посочите максималния брой фонови работници.

timescaledb.max_background_workers=4

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

$ service postgresql-11 restart

И тогава ще имате инсталиран 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)

И така, сега трябва да го активирате:

$ 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

Готово.

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)

Сега нека видим как да го активираме с помощта на ClusterControl.

Използване на ClusterControl за активиране на TimescaleDB

Ще приемем, че вашият PostgreSQL клъстер е импортиран в ClusterControl или дори разгърнат с него.

За да активирате TimescaleDB с помощта на ClusterControl, просто трябва да отидете на вашите PostgreSQL Cluster Actions и да натиснете опцията „Enable TimescaleDB“.

Ще получите предупреждение за рестартиране на базата данни. Потвърдете.

Можете да наблюдавате задачата в секцията ClusterControl Activity.

След това ще имате своя TimescaleDB готов за използване.

Заключение

Сега имате своя TimescaleDB и работи, можете да обработвате данните си от времеви серии по по-ефективен начин. За целта можете да създавате нови таблици или дори да мигрирате текущите си данни и разбира се, трябва да знаете как да ги използвате, за да се възползвате от тази нова концепция.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. В PostgreSQL, как да вмъкна данни с команда COPY?

  2. Грешка при изпращане на данни към Heroku:изместване на часовата зона извън обхвата

  3. Как да променя типа на колоната в Heroku?

  4. Не мога да инсталирам pg gem на Mountain Lion

  5. Генерирайте произволно число в диапазона 1 - 10