PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como habilitar o TimescaleDB em um banco de dados PostgreSQL existente

Se você tiver um cluster PostgreSQL em execução e precisar lidar com dados que mudam com o tempo (como métricas coletadas de um sistema), considere usar um banco de dados de série temporal projetado para armazenar este tipo de dados.

TimescaleDB é um banco de dados de séries temporais de código aberto otimizado para ingestão rápida e consultas complexas que suportam SQL completo. Ele é baseado no PostgreSQL e oferece o melhor dos mundos NoSQL e Relacional para dados de séries temporais.

Neste blog, veremos como habilitar manualmente o TimescaleDB em um banco de dados PostgreSQL existente e como fazer a mesma tarefa usando o ClusterControl.

Ativando o TimescaleDB manualmente

Para este blog, usaremos o CentOS 7 como sistema operacional e o PostgreSQL 11 como servidor de banco de dados.

Por padrão, você não tem TimescaleDB habilitado para PostgreSQL:

world=# \dx

                 List of installed extensions

  Name   | Version |   Schema |     Description

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

 plpgsql | 1.0     | pg_catalog | PL/pgSQL procedural language

(1 row)

Então, primeiro, você precisa adicionar o repositório correspondente para instalar o software:

$ 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

Vamos supor que você tenha o repositório PostgreSQL instalado, pois esta instalação do TimescaleDB exigirá dependências de lá.

O próximo passo é instalar o pacote:

$ yum install timescaledb-postgresql-11

E configure-o em seu banco de dados PostgreSQL atual. Para isso, edite seu arquivo postgresql.conf e adicione 'timescaledb' no parâmetro shared_preload_libraries:

shared_preload_libraries = 'timescaledb'

Ou se você já tiver algo adicionado lá:

shared_preload_libraries = 'pg_stat_statements,timescaledb'

Você também pode configurar max_background_workers para TimescaleDB para especificar o número máximo de trabalhadores em segundo plano.

timescaledb.max_background_workers=4

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

$ service postgresql-11 restart

E então, você terá seu TimescaleDB instalado:

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)

Agora, você precisa habilitá-lo:

$ 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

Concluído.

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)

Agora, vamos ver como habilitá-lo usando o ClusterControl.

Usando ClusterControl para habilitar TimescaleDB

Vamos supor que você tenha seu cluster PostgreSQL importado no ClusterControl ou mesmo implantado usando-o.

Para habilitar o TimescaleDB usando o ClusterControl, basta ir até o seu PostgreSQL Cluster Actions e clicar na opção “Enable TimescaleDB”.

Você receberá um aviso sobre a reinicialização do banco de dados. Confirme.

Você pode monitorar a tarefa na seção ClusterControl Activity.

Então você terá seu TimescaleDB pronto para uso.

Conclusão


Agora que você tem seu TimescaleDB instalado e funcionando, você pode manipular seus dados de séries temporais de uma maneira mais eficiente. Para isso, você pode criar novas tabelas ou até mesmo migrar seus dados atuais, e claro, você deve saber como utilizá-los para aproveitar esse novo conceito.