Bilgi Bankası
GenelMaliyet ve kaynak 16 dk 14.06.2026

Veri yaşam döngüsü: TTL, retention ve arşivleme kararını nasıl verirsiniz?

Veri büyümesi çoğu zaman ürün başarısı gibi görünür; ama her veri sonsuza kadar sıcak kalmak zorunda değildir. TTL, retention ve arşivleme kararı hem performansı hem faturayı hem de uyum yükünü etkiler.

Bu yazı sana şu durumda yardımcı olur
  • eski event ve log verisi ana tabloda büyümeye devam ediyor
  • soft delete kayıtları hiç temizlenmiyor
  • yedek maliyeti canlı veriden hızlı artıyor
  • hangi verinin ne kadar saklanacağı belirsiz
  • KVKK veya müşteri sözleşmesi saklama kararlarını etkiliyor
Yazıyı bitirince

Veriyi sıcak, ılık, soğuk ve silinebilir olarak ayırabilecek; TTL veya arşivleme kararını sadece maliyet değil ürün ve uyum bağlamıyla verebileceksiniz.

TürkDB açısından ürünleşme notu

Bu bölüm, TürkDB’nin ilgili problemi hangi ürün ilkeleri ve kontrol noktalarıyla ele alacağını anlatır. Kapsam, gerçek iş yükü ve ihtiyaçla birlikte netleşir.

TürkDB yedek, PITR, olay ve kapasite görünürlüğüyle yaşam döngüsü kararlarını ölçülebilir hale getirir. Ama hangi verinin ne kadar süre saklanacağı, ürün ve uyum politikanızla birlikte belirlenmelidir.

Her veri aynı sıcaklıkta değildir

Son 7 günün sipariş verisi ile 3 yıl önceki event logu aynı performans beklentisine sahip değildir. Biri uygulama akışının parçasıdır, diğeri raporlama veya uyum için gerekebilir. Aynı tabloda aynı şekilde tutulmaları maliyet ve performans borcu üretir.

Bu yüzden veri yaşam döngüsünü sıcak, ılık, soğuk ve silinebilir olarak düşünmek daha sağlıklıdır. Her sınıfın erişim hızı, saklama süresi ve yedek ihtiyacı farklıdır.

  • Sıcak veri: uygulama aktif kullanır, düşük gecikme gerekir.
  • Ilık veri: raporlama ve destek için gerekir, daha düşük hız kabul edilir.
  • Soğuk veri: nadir erişilir, arşiv veya obje depolama uygun olabilir.
  • Silinebilir veri: iş veya yasal gereklilik kalmadığında temizlenmelidir.

TTL performans ayarı değil, ürün kararıdır

TTL eklemek teknik olarak kolay görünebilir; ama yanlış TTL kullanıcı deneyimini veya uyum yükümlülüğünü bozabilir. Oturum verisi, önbellek, event logu, ödeme kaydı ve denetim kaydı aynı TTL mantığıyla silinemez.

Önce veri türünü ve saklama gerekçesini yazın. Sonra motorun TTL/partition/drop/archiving özellikleriyle bunu uygulayın.

Yaşam döngüsü karar matrisi

retention-matrix.txt
önbellek:*            -> TTL zorunlu, yeniden üretilebilir
session:*          -> iş kuralına göre kısa retention
orders             -> sıcak OLTP, yasal saklama dikkate alınır
events_raw         -> belirli süre sıcak, sonra rollup/arşiv
denetim_events       -> silme değil, uzun retention ve bütünlük kanıtı
debug_logs         -> kısa retention, maliyet kontrolü

Motorlara göre yaşam döngüsü aracı değişir

Redis tarafında TTL ana araçtır. ClickHouse tarafında partition ve TTL birlikte düşünülür. PostgreSQL/MySQL tarafında arşiv tablosu, partitioning veya planlı temizlik gerekebilir. MongoDB TTL index belirli zaman alanları için kullanışlıdır ama her doküman tipine uygun değildir.

MongoDB TTL index örneği

mongodb-ttl.js
db.sessions.createIndex(
  { expires_at: 1 },
  { expireAfterSeconds: 0, name: "idx_sessions_expires_at" }
)

ClickHouse TTL fikri

clickhouse-ttl.sql
CREATE TABLE events_raw
(
  tenant_id String,
  created_at DateTime,
  event_name LowCardinality(String),
  payload String
)
ENGINE = MergeTree
PARTITION BY toYYYYMM(created_at)
ORDER BY (tenant_id, event_name, created_at)
TTL created_at + INTERVAL 180 DAY;

Yedek saklama süresi ile canlı veri retention aynı şey değildir

Canlı tablodan veri silmek yedek maliyetini hemen düşürmeyebilir. Yedek saklama süresi, PITR penceresi ve arşiv politikası ayrı ayrı düşünülür. Bu ayrım yapılmazsa ekip “veriyi sildik ama fatura niye inmedi?” diye şaşırır.

TürkDB tarafında yedek listesi, PITR penceresi ve cluster kapasite bilgisi birlikte okunmalıdır. Yaşam döngüsü kararı, canlı veri ve yedek saklama politikasını aynı masaya koyduğunda gerçekten çalışır.

Yaşam döngüsü kontrolü

data-lifecycle-check.sh
turkdb cluster get app-db
turkdb backup list app-db
turkdb cluster pitr window app-db
Bu TürkDB bloğu kavramsal ürün akışını anlatır; mevcut çalışan komut, garanti edilen özellik veya teslim tarihi vaadi olarak okunmamalıdır.
Devam etmek istersen

Sorunu motor bazında derinleştirin

Benzer belirtiler farklı motorlarda farklı nedenlere dayanır; yayınlanan tüm rehberleri ana sayfadan takip edebilirsiniz.

Tüm makaleler