Time-series डेटा क्या है?
- Time-series डेटा उन डेटा पॉइंट्स का संग्रह है जिनमें हर पॉइंट के साथ timestamp जुड़ा होता है
- उदाहरण: stock price, डिवाइस और sensor से मिलने वाला temperature और availability डेटा, वेबसाइट का traffic डेटा
- Time-series workloads में आमतौर पर time filtering queries और डेटा सारांश के लिए aggregate queries शामिल होती हैं
PostgreSQL के साथ time-series workloads
- PostgreSQL अपनी extensibility और ecosystem tools की वजह से हर तरह के डेटा workloads को संभाल सकता है
- Tembo का लक्ष्य है कि यूज़र PostgreSQL ecosystem को आसानी से इस्तेमाल कर सकें
- ग्राहकों की सबसे बड़ी मांग एक ऐसा stack था जो time-series डेटा को store और process कर सके
pg_timeseries के components
- Time-series डेटा को efficiently store और query करने के लिए ज़रूरी बातें:
- Time-series डेटा को आसानी से manage करना
- high throughput संभालना
- range queries का तेज़ जवाब देना
- बड़े पैमाने के डेटा को efficiently store करना
- complex analytical functions चलाना
- PostgreSQL की built-in capabilities:
- native partitioning, विभिन्न indexes, materialized views, window/analytical functions
- अतिरिक्त extensions:
- pg_partman: partition management
- pg_cron: job scheduling
- columnar: compression
- pg_ivm: incremental materialized views
- pg_tier: पुराने partitions का long-term offload
pg_timeseries: PostgreSQL में time-series डेटा को manage करने का सबसे आसान तरीका
- pg_timeseries कई extensions की capabilities को जोड़कर एक unified interface देता है
- शुरू करने के लिए time-related column पर partition की गई table चाहिए
CREATE TABLE measurements ( metric_name text, metric_value numeric, metric_time timestamptz NOT NULL ) PARTITION BY RANGE (metric_time); SELECT enable_ts_table('measurements'); - महत्वपूर्ण जानकारी देने के लिए कई views शामिल हैं:
SELECT table_id, table_size_bytes FROM ts_table_info; SELECT * FROM ts_part_info; - Partitions के लिए compression और deletion policies सेट की जा सकती हैं:
SELECT set_ts_compression_policy('measurements', '90 days'); SELECT set_ts_retention_policy('measurements', '365 days'); - अतिरिक्त functions भी दिए गए हैं:
SELECT locf(avg(metric_value)) OVER (ORDER BY metric_time) avg_val, last(metric_name, metric_value) highest, metric_time FROM date_bin_table(NULL::measurements, '1 hour', '[2024-05-09,2024-06-07]');
हम अभी बस शुरुआत में हैं
- PostgreSQL के लिए time-series extension बनाने में कई components की ज़रूरत होती है
- इसे community के साथ open में build करने की योजना है
- मौजूदा roadmap:
- पुराने partitions को S3 जैसी cold storage में offload करना
- efficient analytics के लिए approximate functions
- incremental materialized views
- पुराने partitions का rollup और rolloff
- अतिरिक्त analytical helper functions
- पूरा roadmap GitHub README में है, और features की priority यूज़र demand के आधार पर तय होगी
GN⁺ की राय
- Time-series डेटा का महत्व: IoT, finance, web analytics जैसे कई क्षेत्रों में time-series डेटा का महत्व बढ़ रहा है। pg_timeseries ऐसे डेटा को efficiently manage करने के लिए tools देता है।
- PostgreSQL की extensibility: PostgreSQL की extension capabilities का उपयोग करके अलग-अलग डेटा workloads को संभाला जा सकता है। pg_timeseries इन capabilities को integrate करके यूज़र की सुविधा बढ़ाता है।
- Community के साथ सहयोग: यह open source के रूप में विकसित हो रहा है, इसलिए community feedback को शामिल किया जा सकता है। इससे feature improvements और bug fixes में बड़ी मदद मिलती है।
- प्रतिस्पर्धी प्रोडक्ट्स: TimescaleDB जैसे दूसरे time-series databases की तुलना में इसका फायदा यह है कि इसे license restrictions के बिना इस्तेमाल किया जा सकता है। हालांकि performance और features के लिहाज़ से तुलना अभी भी ज़रूरी है।
- Adoption पर विचार: pg_timeseries को अपनाते समय मौजूदा database के साथ compatibility, performance, maintenance cost आदि पर ध्यान देना चाहिए। साथ ही, time-series डेटा की प्रकृति के कारण डेटा की मात्रा तेज़ी से बढ़ सकती है, इसलिए उचित storage management भी ज़रूरी है।
1 टिप्पणियां
Hacker News टिप्पणियाँ
Hacker News टिप्पणियों का सारांश
Incremental Materialized Views
pg_ivmजैसी implementation इस्तेमाल होगी, या इसे खुद implement किया जाएगा.TimescaleDB से तुलना
Append-Only tables
Time-series databases का विकास
Columnar storage की आवश्यकता
उपयोगी links
Load balancer log entries
Open source innovation
PostgreSQL license
Site design और app UI