यदि आपके पास एक पोस्टग्रेएसक्यूएल क्लस्टर अप-एंड-रनिंग है, और आपको समय के साथ बदलने वाले डेटा को संभालने की आवश्यकता है (जैसे किसी सिस्टम से एकत्रित मेट्रिक्स) तो आपको समय-श्रृंखला डेटाबेस का उपयोग करने पर विचार करना चाहिए जिसे डिज़ाइन किया गया है इस तरह के डेटा को स्टोर करने के लिए।
TimescaleDB एक खुला स्रोत समय-श्रृंखला डेटाबेस है जो पूर्ण SQL का समर्थन करने वाले तीव्र अंतर्ग्रहण और जटिल प्रश्नों के लिए अनुकूलित है। यह पोस्टग्रेएसक्यूएल पर आधारित है और यह समय-श्रृंखला डेटा के लिए सर्वश्रेष्ठ नोएसक्यूएल और रिलेशनल दुनिया प्रदान करता है।
इस ब्लॉग में, हम देखेंगे कि मौजूदा PostgreSQL डेटाबेस में TimescaleDB को मैन्युअल रूप से कैसे सक्षम किया जाए और ClusterControl का उपयोग करके उसी कार्य को कैसे किया जाए।
TimescaleDB को मैन्युअल रूप से सक्षम करना
इस ब्लॉग के लिए, हम ऑपरेटिंग सिस्टम के रूप में CentOS 7 और डेटाबेस सर्वर के रूप में PostgreSQL 11 का उपयोग करेंगे।
डिफ़ॉल्ट रूप से, आपके पास PostgreSQL के लिए TimescaleDB सक्षम नहीं है:
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'
पृष्ठभूमि कार्यकर्ताओं की अधिकतम संख्या निर्दिष्ट करने के लिए आप TimescaleDB के लिए max_background_workers को भी कॉन्फ़िगर कर सकते हैं।
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 का उपयोग करके इसे कैसे सक्षम किया जाए।
TimescaleDB को सक्षम करने के लिए ClusterControl का उपयोग करना
हम मान लेंगे कि आपने अपने PostgreSQL क्लस्टर को ClusterControl में आयात किया है या यहां तक कि इसका उपयोग करके तैनात किया है।
ClusterControl का उपयोग करके TimescaleDB को सक्षम करने के लिए, आपको बस अपने PostgreSQL क्लस्टर क्रियाओं पर जाना होगा और "TimescaleDB सक्षम करें" विकल्प पर प्रेस करना होगा।
डेटाबेस के पुनरारंभ होने के बारे में आपको एक चेतावनी प्राप्त होगी। इसकी पुष्टि करें।
आप क्लस्टर नियंत्रण गतिविधि अनुभाग में कार्य की निगरानी कर सकते हैं।
तब आपका TimescaleDB उपयोग के लिए तैयार होगा।
निष्कर्ष
अब आपके पास अपना TimescaleDB है और चल रहा है, आप अपने समय-श्रृंखला डेटा को अधिक प्रदर्शनकारी तरीके से संभाल सकते हैं। इसके लिए, आप नई तालिकाएँ बना सकते हैं या यहाँ तक कि अपने वर्तमान डेटा को माइग्रेट भी कर सकते हैं, और निश्चित रूप से, आपको पता होना चाहिए कि इस नई अवधारणा का लाभ उठाने के लिए इसका उपयोग कैसे करना है।