Jika Anda memiliki cluster PostgreSQL yang sedang berjalan, dan Anda perlu menangani data yang berubah seiring waktu (seperti metrik yang dikumpulkan dari sistem), Anda harus mempertimbangkan untuk menggunakan database deret waktu yang dirancang untuk menyimpan data semacam ini.
TimescaleDB adalah database deret waktu sumber terbuka yang dioptimalkan untuk penyerapan cepat dan kueri kompleks yang mendukung SQL penuh. Ini didasarkan pada PostgreSQL dan menawarkan yang terbaik dari dunia NoSQL dan Relasional untuk data deret Waktu.
Di blog ini, kita akan melihat cara mengaktifkan TimescaleDB secara manual di database PostgreSQL yang ada dan cara melakukan tugas yang sama menggunakan ClusterControl.
Mengaktifkan TimescaleDB Secara Manual
Untuk blog ini, kami akan menggunakan CentOS 7 sebagai sistem operasi dan PostgreSQL 11 sebagai server database.
Secara default, Anda tidak mengaktifkan TimescaleDB untuk PostgreSQL:
world=# \dx
List of installed extensions
Name | Version | Schema | Description
---------+---------+------------+------------------------------
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
(1 row)
Jadi pertama, Anda perlu menambahkan repositori yang sesuai untuk menginstal perangkat lunak:
$ 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
Kami akan menganggap Anda memiliki repositori PostgreSQL karena penginstalan TimescaleDB ini akan memerlukan dependensi dari sana.
Langkah selanjutnya adalah menginstal paket:
$ yum install timescaledb-postgresql-11
Dan konfigurasikan di database PostgreSQL Anda saat ini. Untuk ini, edit file postgresql.conf Anda dan tambahkan 'timescaledb' di parameter shared_preload_libraries:
shared_preload_libraries = 'timescaledb'
Atau jika Anda sudah menambahkan sesuatu di sana:
shared_preload_libraries = 'pg_stat_statements,timescaledb'
Anda juga dapat mengonfigurasi max_background_workers untuk TimescaleDB guna menentukan jumlah maksimum pekerja latar belakang.
timescaledb.max_background_workers=4
Keep in mind that this change requires a database service restart:
$ service postgresql-11 restart
Dan kemudian, TimescaleDB Anda akan terinstal:
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)
Jadi sekarang, Anda harus mengaktifkannya:
$ 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
Selesai.
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)
Sekarang, mari kita lihat cara mengaktifkannya menggunakan ClusterControl.
Menggunakan ClusterControl untuk Mengaktifkan TimescaleDB
Kami akan menganggap Anda memiliki cluster PostgreSQL yang diimpor di ClusterControl atau bahkan digunakan menggunakannya.
Untuk mengaktifkan TimescaleDB menggunakan ClusterControl, Anda hanya perlu membuka PostgreSQL Cluster Actions dan menekan opsi “Enable TimescaleDB”.
Anda akan menerima peringatan tentang pengaktifan ulang basis data. Konfirmasikan.
Anda dapat memantau tugas di bagian Aktivitas ClusterControl.
Kemudian TimescaleDB Anda siap digunakan.
Kesimpulan
Sekarang Anda memiliki TimescaleDB dan berjalan, Anda dapat menangani data deret waktu Anda dengan cara yang lebih berkinerja. Untuk ini, Anda dapat membuat tabel baru atau bahkan memigrasikan data Anda saat ini, dan tentu saja, Anda harus tahu cara menggunakannya untuk memanfaatkan konsep baru ini.