Hoş Geldiniz! KablosuzForum.net

Tüm özelliklerimize erişmek için şimdi bize katılın. Kaydolup giriş yaptıktan sonra konu oluşturabilir, mevcut konulara yanıt gönderebilir, diğer üyelerinize itibar kazandırabilir, kendi özel mesajlaşma programınızı edinebilir ve çok daha fazlasını yapabileceksiniz. Aynı zamanda hızlı ve tamamen ücretsizdir, peki daha ne bekliyorsunuz?

Soru Sor

Merak ettiğiniz, kafanıza takılan sorular hakkında konu açın, diğer üyelerimiz ve moderatörlerimiz cevaplasın.

Ticaret

Ticari konular açıp güven oluşturmak ve daha fazla satış rakamlarına ulaşmak için hesabını doğrula!

Bize ulaşın

Yönetim kadrosuyla iletişime geçin

Üyeliğini Yükselt!

Üyeliğinizi yükselterek birbirinden ayrıcalıklı özelliklere sahip olun!

Geçmişi Görünür Kılan: PostgreSQL’de Zaman Yolculuğu ile Veri Analizi

Resim 1 Resim 2

nazarimarwa

Marwa Nazarı
KF Kullanıcı
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]

photo-1734139890820-51037c1866d7
 
Responsive GIF Layout

shape1
shape2
shape3
shape4
shape5
shape6
Geri
Üst