Zaman Serisi Veritabanı
- İngilizcesi
- Time-Series Database
- Okunuşu
- taym siriz deytıbeys
Günlük kullanımda iki ad da yaygın.
Kısaca
Zaman serisi veritabanı, sensör okumaları ya da metrikler gibi zaman damgalı ölçümleri sırayla saklayıp sorgulamak için optimize edilmiş bir veritabanıdır.
Zaman serisi veritabanı nedir?
Zaman serisi veritabanı, her biri bir zaman damgası, bir ya da daha fazla değer ve kaynağı tanımlayan, çoğu zaman etiket (tag) denen host=web-1 ve metric=cpu_usage gibi etiketler taşıyan veri noktalarını saklar. Bu tür veri sürekli gelir, neredeyse her zaman güncellenmek yerine sona eklenir ve hemen hemen her zaman zaman aralığına göre sorgulanır.
Saniyede milyonlarca noktayı kaldırmak için bu veritabanları depolamayı zamana göre parçalara böler ve veriyi agresif biçimde sıkıştırır; örneğin ardışık zaman damgaları arasındaki küçük farkları saklayarak. Ham noktaları dakika ya da saat başına ortalamalara özetleyen downsampling'in yanı sıra oranlar, yüzdelikler ve boşluk doldurma için fonksiyonlar içerirler. Saklama politikaları (retention policy) eski veriyi otomatik olarak siler veya özetler. Örnekler arasında yerleşik zaman serisi deposu olan bir izleme sistemi Prometheus, InfluxDB ve PostgreSQL için bir eklenti olan TimescaleDB vardır.
Zaman serisi veritabanı bir geminin seyir defteri ya da bir kalp ritmi monitörü gibi çalışır: yeni kayıtlar yalnızca sona eklenir ve olağan soru, iki zaman noktası arasında ne olduğudur. Altyapı izleme ve gözlemlenebilirlik metrikleri, Nesnelerin İnterneti (IoT) sensörleri, finansal piyasa tikleri, enerji sayaçları ve ürün analitiği için kullanılır.
İnsanlar sıklıkla zaman damgalarını neden normal bir ilişkisel tabloya koyamayacaklarını sorar. Küçük hacimler için koyabilirsiniz; ancak zaman serisi veritabanı, zamana göre bölümleme, sıkıştırma ve otomatik saklama sayesinde çok yüksek yazma oranlarını ve uzun geçmişleri çok daha ucuza yönetir. Ayrıca birçok boyutta geniş iş analitiği sunan data warehouse'dan ve sayısal ölçümler yerine metin olayları tutan günlük depolamasından da farklıdır.
Önemli noktalar
- Her veri noktasının bir zaman damgası, değerleri ve tanımlayıcı etiketleri vardır.
- Veri çoğunlukla sona eklenir ve zaman aralığına göre sorgulanır.
- Zamana göre bölümleme ve sıkıştırma, devasa hacimleri saklamayı ucuz tutar.
- Downsampling ve saklama politikaları eski veriyi otomatik yönetir.
- Yüksek kardinalite, yani çok fazla benzersiz etiket kombinasyonu, yaygın bir performans sorunudur.
Örnek
-- One row per measurement: when, from where, and the value
CREATE TABLE cpu_usage (
time TIMESTAMPTZ NOT NULL,
host TEXT NOT NULL,
usage DOUBLE PRECISION
);
-- Average CPU per host for each minute of the last hour
SELECT host, date_trunc('minute', time) AS minute, avg(usage) AS avg_usage
FROM cpu_usage
WHERE time > now() - INTERVAL '1 hour'
GROUP BY host, minute
ORDER BY minute;Sık sorulan sorular
PostgreSQL'i zaman serisi veritabanı olarak kullanabilir miyim?
Evet, orta hacimler için zaman damgası üzerinde indeksi olan normal bir tablo iyi çalışır. Çok yüksek yazma oranlarında eklentiler veya özel zaman serisi veritabanları otomatik bölümleme, sıkıştırma ve saklama ekler.
Downsampling nedir?
Downsampling, birçok ayrıntılı veri noktasını daha az özet noktayla değiştirir; örneğin saniyede bir okuma yerine saatte bir ortalama. Genel eğilimi korurken uzun geçmişleri küçük tutar.
Zaman serisi veritabanında yüksek kardinalite nedir?
Kardinalite, benzersiz seri sayısıdır; yani metrik adı ile etiket değerlerinin benzersiz kombinasyonları. Kullanıcı ID'leri gibi çok sayıda olası değeri olan etiketler çok büyük sayıda seri yaratır ve veritabanını yavaşlatabilir ya da aşırı yükleyebilir.
İlgili sayfalar
- VeritabanıVeritabanları, s. 37Veritabanı, bilgisayarda düzenli biçimde saklanan ve uygulamaların verimlice kaydedip arayıp güncelleyebildiği, bir yazılımla yönetilen veri topluluğudur.
- MetriklerDevOps ve Bulut, s. 33Metrikler, bir sistemden zamanla toplanan istek oranı, hata oranı ve CPU kullanımı gibi sayısal ölçümlerdir; panolar, uyarılar ve planlama için kullanılır.
- GözlemlenebilirlikDevOps ve Bulut, s. 22Gözlemlenebilirlik, çalışan bir yazılım sisteminin içinde olup biteni log, metrik ve trace verilerini toplayıp analiz ederek anlayabilme yeteneğidir.
- Data WarehouseVeritabanları, s. 7Data warehouse, birçok kaynaktan geçmiş veriyi toplayan ve ekiplerin büyük raporlama sorgularını hızla çalıştırdığı analitik amaçlı merkezi bir veritabanıdır.
- Veritabanı İndeksiVeritabanları, s. 38Veritabanı indeksi, tüm tabloyu taramadan satırları hızla bulmayı sağlayan, bir kitabın sonundaki dizine benzeyen bir veri yapısıdır.
- ShardingVeritabanları, s. 28Sharding, bir veritabanının verisini shard adı verilen birkaç sunucuya bölerek ölçeklendirme yöntemidir; her biri toplamın yalnızca bir kısmını saklar ve işler.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin