Zaman serisi verisi nedir?
- Zaman serisi verisi, her veri noktasına bir zaman damgasının eklendiği veri kümesidir
- Örnekler: hisse senedi fiyatları, cihaz ve sensörlerden dönen sıcaklık ve erişilebilirlik verileri, web sitesinin trafik verileri
- Zaman serisi işlemleri genellikle zaman filtrelemeli sorguları ve veri özetleme için toplulaştırma sorgularını içerir
PostgreSQL ile zaman serisi işlemleri
- PostgreSQL, genişletilebilirliği ve ekosistem araçları sayesinde her türlü veri işini ele alabilir
- Tembo, kullanıcıların PostgreSQL ekosistemini kolayca kullanabilmesini hedefliyor
- Müşterilerden gelen en büyük talep, zaman serisi verilerini depolayıp işleyebilecek bir yığındı
pg_timeseries'in bileşenleri
- Zaman serisi verilerini verimli şekilde depolamak ve sorgulamak için gereksinimler:
- Zaman serisi verilerini kolay yönetmek
- Yüksek işlem hacmini karşılamak
- Aralık sorgularına hızlı yanıt vermek
- Büyük miktardaki veriyi verimli depolamak
- Karmaşık analiz fonksiyonlarını çalıştırmak
- PostgreSQL'in temel özellikleri:
- Yerel bölümleme, çeşitli indeksler, materialized view'lar, pencere/analitik fonksiyonlar
- Ek eklentiler:
- pg_partman: bölüm yönetimi
- pg_cron: iş zamanlama
- columnar: sıkıştırma
- pg_ivm: artımlı materialized view
- pg_tier: eski bölümlerin uzun vadeli offload işlemi
pg_timeseries: PostgreSQL'de zaman serisi verilerini yönetmenin en basit yolu
- pg_timeseries, birden fazla eklentinin özelliklerini birleştirerek birleşik bir arayüz sunuyor
- Başlamak için zamanla ilişkili bir sütuna göre bölümlenmiş bir tablo gerekiyor
CREATE TABLE measurements ( metric_name text, metric_value numeric, metric_time timestamptz NOT NULL ) PARTITION BY RANGE (metric_time); SELECT enable_ts_table('measurements'); - Önemli bilgiler sağlamak için çeşitli view'lar içeriyor:
SELECT table_id, table_size_bytes FROM ts_table_info; SELECT * FROM ts_part_info; - Bölümlerin sıkıştırma ve silme politikaları ayarlanabiliyor:
SELECT set_ts_compression_policy('measurements', '90 days'); SELECT set_ts_retention_policy('measurements', '365 days'); - Ek fonksiyonlar da sunuyor:
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]');
Daha yolun başındayız
- PostgreSQL için bir zaman serisi eklentisi oluşturmak çok sayıda bileşen gerektiriyor
- Bunu toplulukla birlikte, açık şekilde geliştirmeyi planlıyorlar
- Mevcut yol haritası:
- Eski bölümleri S3 gibi cold storage'a offload etmek
- Verimli analiz için yaklaşık fonksiyonlar
- Artımlı materialized view'lar
- Eski bölümlerin rollup ve rolloff işlemleri
- Ek analitik yardımcı fonksiyonlar
- Tam yol haritası GitHub README dosyasında yer alıyor ve özellik öncelikleri kullanıcı talebine göre belirleniyor
GN⁺ görüşü
- Zaman serisi verisinin önemi: IoT, finans, web analitiği gibi çeşitli alanlarda zaman serisi verisinin önemi artıyor. pg_timeseries, bu verileri verimli biçimde yönetmeye yardımcı olan araçlar sunuyor.
- PostgreSQL'in genişletilebilirliği: PostgreSQL'in eklenti yapısı kullanılarak çeşitli veri işleri yürütülebilir. pg_timeseries, bu eklentileri bir araya getirerek kullanıcı deneyimini iyileştiriyor.
- Toplulukla iş birliği: Açık kaynak olarak geliştirildiği için topluluk geri bildirimleri ürüne yansıtılabiliyor. Bu da özellik geliştirme ve hata düzeltme açısından büyük fayda sağlıyor.
- Rakip ürünler: TimescaleDB gibi diğer zaman serisi veritabanlarıyla karşılaştırıldığında, lisans kısıtlaması olmadan kullanılabilmesi bir avantaj. Ancak performans ve özellikler açısından karşılaştırmalı değerlendirme gerekli.
- Benimseme açısından dikkat edilmesi gerekenler: pg_timeseries'i kullanıma alırken mevcut veritabanlarıyla uyumluluk, performans ve bakım maliyeti gibi unsurlar dikkate alınmalı. Ayrıca zaman serisi verisinin doğası gereği veri hacmi hızla artabileceğinden uygun depolama yönetimi gerekiyor.
1 yorum
Hacker News görüşü
Hacker News yorum derlemesi özeti
Artımlı Materialized View'lar
pg_ivmgibi bir uygulamanın mı kullanılacağı, yoksa bunun şirket içinde mi geliştirileceği merak ediliyor.TimescaleDB ile karşılaştırma
Append-Only tablolar
Zaman serisi veritabanlarının evrimi
Sütun tabanlı depolamanın gerekliliği
Faydalı bağlantılar
Load balancer log girdileri
Açık kaynak inovasyonu
PostgreSQL lisansı
Site tasarımı ve uygulama arayüzü