- Katılım
- 17 Eki 2024
- Mesajlar
- 2
- Tepkime puanı
- 1
- Puanları
- 1
Geçmişi Görünür Kılan: PostgreSQL’de Zaman Yolculuğu ile Veri Analizi
[PARAGRAPH]Çoğu veritabanı, verinin güncel halini tutar ama “ne zaman ne kadar değişti” sorusuna net cevap veremez. PostgreSQL’in Temporal Tables özelliği ise bu soruya inanılmaz bir cevap sunuyor: Zaman yolculuğu yapacağınız bir veritabanı yaratabilirsiniz. Aşağıda, bu özelliği adım adım nasıl kuracağınızı ve en sık kullanılan sorguları inceleyeceğiz.[/PARAGRAPH]
1. Temporal Table Nasıl Oluşturulur?
Binod Somar/Koplacak’den örnek
SQL:
CREATE TABLE siparis (
siparis_id BIGINT PRIMARY KEY,
urun_id BIGINT NOT NULL,
miktar INT NOT NULL,
fiyati NUMERIC(10,2) NOT NULL,
kayit_zamani TIMESTAMPTZ NOT NULL DEFAULT now()
) WITH (timescaledb = on);
Bu durumda `kayit_zamani` kolonunu otomatik olarak zaman damgasıyla doldurabiliriz. Ancak gerçek “temporal” olabilmesi için, iki farklı kolon ekliyor: `cikis_zamani` ve `ekleyici`.
SQL:
ALTER TABLE siparis
ADD COLUMN cikis_zamani TIMESTAMPTZ DEFAULT NULL,
ADD COLUMN ekleyici TEXT DEFAULT NULL;
ALTER TABLE siparis
ADD CONSTRAINT siparis_temporal
CHECK (ekleyici IS NOT NULL);
Sonrasında, trigger kullanarak her UPDATE/DELETE işlemi öncesi eski satırı `kayit_zamani –> cikis_zamani` olarak güncelliyoruz.
2. Geçmişe Yolculuk: Zaman Yolculuğu Sorguları
a. Belirli Bir Tarihteki Durumu Görüntüleme
SQL:
SELECT *
FROM siparis
FOR SYSTEM_TIME AS OF '2023-07-15 14:30:00'
WHERE siparis_id = 42;
b. Tüm Değişimleri İzleme
SQL:
SELECT siparis_id, urun_id, miktar, fiyati,
kayit_zamani, cikis_zamani
FROM siparis
FOR SYSTEM_TIME ALL;
Bu sorgular sayesinde, bir siparişin tarih boyunca nasıl değiştiğini görselleştirebilir veya hata izleme ile problemlerin kökenine inebilirsiniz.
3. Gerçek Dünya Uygulamaları
- Finansal satış kayıtları – geçmiş tebligatların doğrulanması.
- İç denetim – veritabanına yapılan değişikliklerin tarihsel izlenmesi.
- Geliştirme ortamı – testler sırasında önceki sürümlere geri dönme.
Not: Tabii, geçici tabloların yerinde diski tüketimini artırabileceğini unutmamalısınız. İhtiyaç duyulmayan zaman damgalarını düşürmek için mimari tercihlerinizi gözden çıkarın.
4. Sonuç: Zaman Yolculuğunun Önemi
PostgreSQL’in temporal özelliği, verilerinizi sadece “Şu an” değil, “O zaman” da analiz etmenizi sağlayarak karar verme süreçlerinize olağanüstü bir derinlik katıyor. Bunu kurmanız birkaç satır kod ve trigger kurulumuyla son buluyor – bu da teknolojik bir “dönüşüm” için yeterli.
[PARAGRAPH]Eğer siz de verilerin geçmişine dair soruların cevaplarını bulmak istiyorsanız, PostgreSQL’in zaman yolculuğu yeteneklerini keşfetmeye başlayın. Öğledikçe, verilere bakış açınız tamamen değişecek![/PARAGRAPH]







