Disk sorunu veri saklama kararıdır
ClickHouse disk doluluğu çoğu zaman teknik bir temizlik işi gibi ele alınır. Oysa ilk soru teknik değildir: Bu veri ne kadar süre sıcak diskte kalmalı? Son 7 gün operasyon için, son 90 gün rapor için, daha eski veri arşiv için yeterli olabilir.
Bu karar verilmeden TTL eklemek veya partition silmek risklidir. Yanlış saklama süresi ürün raporlarını, müşteri sözleşmesini veya uyum ihtiyacını bozabilir.
- Event verisi ile denetim kaydı aynı saklama süresine sahip olmayabilir.
- Raporun okuduğu tarih aralığı gerçek saklama ihtiyacını gösterir.
- Sıcak disk, arşiv ve yedek ayrı maliyet kalemleridir.
- Temizlik kararı geri dönüş ihtiyacıyla birlikte yazılmalıdır.
Hangi tablo ve partition büyüyor?
İlk adım tablo bazında disk kullanımını görmek, sonra partition dağılımına inmektir. system.parts bu iş için çok değerlidir; aktif partlar, satır sayısı ve byte miktarı hızlıca okunabilir.
Sadece toplam disk kullanımına bakmak yetmez. Bazen tek bir yanlış partition, bazen çok fazla küçük part, bazen de eski ama hâlâ sıcak diskte duran veri maliyeti büyütür.
Tablo ve partition disk kullanımı
SELECT database, table, partition, count() AS parts, sum(rows) AS rows, formatReadableSize(sum(bytes_on_disk)) AS disk_size FROM system.parts WHERE active GROUP BY database, table, partition ORDER BY sum(bytes_on_disk) DESC LIMIT 50;
TTL hemen disk boşaltmayabilir
ClickHouse TTL tanımı, verinin mantıksal olarak ne zaman silineceğini anlatır; fiziksel disk boşalması merge süreçlerine bağlıdır. Bu yüzden TTL ekledim ama disk hâlâ dolu demek tek başına hata değildir.
Yine de TTL’nin doğru kolona bağlı olduğundan, tarih alanının beklenen değeri taşıdığından ve merge süreçlerinin yetişebildiğinden emin olmak gerekir. Çok agresif TTL veya çok küçük insertler merge baskısını artırabilir.
TTL tanımı örneği
ALTER TABLE analytics.events MODIFY TTL event_date + INTERVAL 90 DAY DELETE; SHOW CREATE TABLE analytics.events;
TTL kararını canlı tabloda uygulamadan önce test ortamında ve gerçek veri dağılımıyla deneyin.
DROP PARTITION güçlü ama geri dönüşü plan ister
Eski partitionları silmek disk sorununu hızlı çözer; ama bu işlem ürün ve uyum açısından doğru mu önce netleşmelidir. Silinen verinin yedeği var mı, raporlar etkilenir mi, müşteri sözleşmesinde saklama sözü var mı?
Partition silme kararını olay gibi kaydedin. Hangi partition, hangi gerekçeyle, hangi onayla silindi? Bu küçük kayıt ileride “veri nereye gitti?” sorusunu sakinleştirir.
Partition silmeden önce kontrol notu
Tablo: Partition: Tarih aralığı: Disk kazanımı tahmini: Yedek/geri dönüş durumu: Etkilenen rapor var mı: Uyum/sözleşme engeli var mı: Onay: Uygulama zamanı: