TTL politikalarıyla veri saklamayı yönetme

Yalnızca Cloud Firestore Enterprise sürümü için geçerlidir.

Bu sayfada, Google Cloud Console ve Google Cloud CLI kullanılarak geçerlilik süresi (TTL) politikalarının nasıl yapılandırılacağı açıklanmaktadır.

Geçerlilik süresine genel bakış

TTL politikalarını kullanarak eski verileri veritabanlarınızdan otomatik olarak kaldırın. TTL politikası, belirli bir alanı belirli bir koleksiyondaki dokümanların geçerlilik bitiş tarihi olarak belirler. TTL ile eski verileri temizleyerek depolama maliyetlerini azaltabilirsiniz. Veriler genellikle son kullanma tarihinden sonraki 24 saat içinde silinir.

Fiyatlandırma

TTL silme işlemleri, doküman silme maliyetlerinize dahil edilir. Silme işlemlerinin fiyatlandırması için Cloud Firestore Enterprise sürümü fiyatlandırması başlıklı makaleyi inceleyin.

Sınırlar ve kısıtlamalar

  • Koleksiyon başına yalnızca bir alanı TTL alanı olarak işaretleyebilirsiniz.
  • En fazla 500 alan düzeyinde TTL yapılandırmasına sahip olabilirsiniz.

TTL silme

TTL'ye dayalı silme işleminin aşağıdaki temel davranışlarına dikkat edin:

  • TTL aracılığıyla silme işlemi anlık olarak gerçekleşmez. Geçerliliği dolmuş belgeler, TTL işlemi bunları gerçekten silene kadar sorgularda ve arama isteklerinde görünmeye devam eder. TTL, silme işlemlerinde toplam sahip olma maliyetini düşürme avantajı için silme işlemlerinin zamanlamasını değiştirir. Veriler genellikle geçerlilik tarihi sona erdikten sonraki 24 saat içinde silinir.

  • Mevcut bir koleksiyona TTL politikası uygulandığında, yeni TTL politikasına göre süresi dolmuş tüm veriler toplu olarak silinir. Bu toplu silme işleminin anında gerçekleşmediğini ve söz konusu koleksiyonda ne kadar veri olduğuna bağlı olduğunu unutmayın.

  • Bir dokümanın geçerlilik süresi geçmişteyse ve koleksiyona yeni bir TTL politikası eklerseniz doküman, TTL politikasının kurulumu tamamlanıp etkinleştirildikten sonraki 24 saat içinde silinir.

  • TTL, belgeleri son kullanma zaman damgalarıyla aynı sırada silmez.

  • Silme işlemleri, işlemsel olarak yapılmaz. Aynı geçerlilik süresine sahip dokümanlar aynı anda silinmeyebilir. Bu davranışı istiyorsanız silme işlemlerini bir istemci kitaplığı kullanarak gerçekleştirin.

  • MongoDB uyumlu Cloud Firestore, geçerlilik süresini belirlemek için her zaman en son TTL alanını kullanır. Örneğin, süresi dolmuş ancak henüz silinmemiş bir belgenin TTL alanı daha sonraki bir tarihle güncellenirse belgenin süresi dolmaz ve yeni tarih kullanılır.

  • MongoDB uyumluluğu olan Cloud Firestore, bir dokümanın süresini yalnızca TTL alanı Date and time veya BSON Date türüne ayarlandığında sona erdirir. Alan boş bırakılırsa veya null gibi bir değere ayarlanırsa doküman bazında geçerlilik süreleri devre dışı bırakılır.

  • TTL, diğer veritabanı etkinlikleri üzerindeki etkiyi en aza indirecek şekilde tasarlanmıştır. TTL'den kaynaklanan silme işlemleri daha düşük öncelikli olarak ele alınır. TTL'ye bağlı silme işlemlerinden kaynaklanan trafik artışlarını yumuşatmak için başka stratejiler de uygulanır.

TTL alanları ve dizinleri

TTL alanı dizine eklenebilir veya dizine eklenemez. Ancak TTL alanı bir zaman damgası olduğundan alanın dizine eklenmesi, yüksek trafik hızlarında performansı etkileyebilir. Zaman damgası alanının dizine eklenmesi, en iyi uygulamalara aykırı olan etkin noktalar oluşturabilir. Hotspot'lar, dar bir belge aralığında yüksek okuma, yazma ve silme oranlarıdır.

İzinler

TTL politikası yapılandıran asıl kullanıcının projede aşağıdaki izne sahip olması gerekir:

  • TTL politikalarını görüntülemek için datastore.indexes.list ve datastore.indexes.get izinleri gerekir.
  • TTL politikalarını değiştirmek için datastore.indexes.update izni gerekir.
  • TTL işlemlerinin durumunu kontrol etmek için datastore.operations.list ve datastore.operations.get gerekir.

Bu izinleri atayan roller için Cloud Firestore Kimlik ve Erişim Yönetimi rolleri başlıklı makaleyi inceleyin.

Başlamadan önce

TTL politikalarını yönetmek için gcloud CLI komutunu kullanmadan önce, bileşenleri mevcut en son sürüme güncellemek için gcloud components update komutunu kullanın:

gcloud components update

TTL politikası oluşturma

TTL politikası oluşturduğunuzda, bir belge alanını koleksiyondaki belgelerin geçerlilik süresi olarak belirlersiniz.

TTL, silinmeye uygun dokümanları tanımlamak için belirtilen bir alanı kullanır. Bu TTL alanı Timestamp veya BSON Date türünde olmalıdır. Hâlihazırda mevcut olan bir alanı seçebilir veya daha sonra eklemeyi planladığınız bir alanı belirleyebilirsiniz.

TTL alanı değerini ayarlamadan önce aşağıdakileri göz önünde bulundurun:

  • TTL alan değeri gelecekteki, şu anki veya geçmişteki bir zaman olabilir. Değer geçmiş bir zamansa doküman hemen silinmeye uygun hale gelir. Örneğin, expireAt alanını içeren bir TTL politikası oluşturabilir ve bu politikayı mevcut dokümanlara ekleyebilirsiniz.

  • Başka bir veri türü kullanmak veya TTL alan değerini ayarlamamak, ilgili doküman için TTL'yi devre dışı bırakır.

TTL politikası oluşturmak için aşağıdaki adımları uygulayın:

Google Cloud Console

  1. Google Cloud Console'da Veritabanları sayfasına gidin.

    Veritabanları'na gidin

  2. Veritabanları listesinden gerekli veritabanını seçin.

  3. Gezinme menüsünde Yaşam süresi'ni tıklayın.

  4. Politika Oluştur'u tıklayın.

  5. Bir koleksiyon adı ve zaman damgası alanı adı girin.

  6. Oluştur'u tıklayın.

Konsol, Geçerlilik süresi sayfasına döner. İşlem başarıyla başlatılırsa sayfadaki TTL politikaları tablosuna bir giriş eklenir. Başarısız olursa sayfada bir hata mesajı gösterilir.

gcloud

  1. gcloud CLI CLI'yı yükleyin ve başlatın.

  2. TTL politikası yapılandırmak için firestore fields ttls update komutunu kullanın. --async işaretini ekleyerek gcloud CLI öğesinin işlemin tamamlanmasını beklemesini engelleyin.

     gcloud firestore fields ttls update
    ttl_field --collection-group=collection_name
    --enable-ttl 

TTL politikası etkinleştirme süresi

Boş bir veritabanında bile TTL politikası etkinleştirme işlemi on dakika veya daha uzun sürebilir. Bir işlemi başlattıktan sonra terminali kapatmak işlemi iptal etmez.

TTL politikalarını görüntüleme

TTL politikalarını ve durumlarını görüntülemek için aşağıdaki adımları uygulayın:

Google Cloud Console

  1. Google Cloud Console'da Veritabanları sayfasına gidin.

    Veritabanları'na gidin

  2. Veritabanları listesinden gerekli veritabanını seçin.

  3. Gezinme menüsünde Yaşam süresi'ni tıklayın.

Konsolda, veritabanınızın TTL politikaları listelenir ve her politikanın durumu gösterilir.

gcloud

  1. gcloud CLI CLI'yı yükleyin ve başlatın.

  2. TTL politikası yapılandırmak için firestore fields ttls list komutunu kullanın. Aşağıdaki komut, tüm TTL politikalarını listeler.

    gcloud firestore fields ttls list
    

    TTL politikalarını belirli bir koleksiyon altında listelemek için aşağıdakileri kullanın:

    gcloud firestore fields ttls list  --collection-group=collection_name
    

İşlem ayrıntılarını görüntüleme

CREATING durumundaki bir TTL politikası hakkında daha fazla ayrıntı görüntülemek için gcloud CLI simgesini kullanabilirsiniz.

Çalışan ve yakın zamanda tamamlanan tüm işlemleri görmek için operations list komutunu kullanın:

gcloud firestore operations list

Yanıtta, işlemin ilerleme durumuyla ilgili bir tahmin yer alıyor.

TTL politikasını devre dışı bırakma

TTL politikasını devre dışı bırakmak için şu adımları uygulayın:

Google Cloud Console

  1. Google Cloud Console'da Veritabanları sayfasına gidin.

    Veritabanları'na gidin

  2. Veritabanları listesinden gerekli veritabanını seçin.

  3. Gezinme menüsünde Yaşam süresi'ni tıklayın.

  4. TTL politikası tablosunda TTL politikası satırını bulun. Bu tablo satırında Sil (çöp kutusu) düğmesini tıklayın.

  5. Sil'i tıklayarak işlemi onaylayın.

Konsol, Geçerlilik süresi sayfasına döner. İşlem başarılı olduğunda, MongoDB uyumluluğu ile Cloud Firestore, tablodan TTL politikasını kaldırır.

gcloud

  1. gcloud CLI CLI'yı yükleyin ve başlatın.

  2. TTL politikası yapılandırmak için firestore fields ttls update komutunu kullanın. --async işaretini ekleyerek gcloud CLI öğesinin işlemin tamamlanmasını beklemesini engelleyin.

    gcloud firestore fields ttls update ttl_field --collection-group=collection_name --disable-ttl
    

TTL silme işlemlerini izleme

TTL'ye bağlı silme işlemleriyle ilgili metrikleri görüntülemek için Cloud Monitoring simgesini kullanabilirsiniz. MongoDB uyumluluğu olan Cloud Firestore, TTL için aşağıdaki metrikleri sağlar:

Metrik türü Metrik adı Metrik açıklaması
firestore.googleapis.com/document/ttl_deletion_count Geçerlilik süresi içinde silinen öğe sayısı

TTL politikaları tarafından silinen dokümanların toplam sayısı.

firestore.googleapis.com/document/ttl_expiration_to_deletion_delays Geçerlilik süresinin sona ermesinden silme işlemlerine kadar olan gecikmeler

Bir belgenin TTL politikası kapsamında süresinin dolması ile gerçekten silinmesi arasında geçen süre.

MongoDB uyumluluk metrikleriyle Cloud Firestore'u içeren bir kontrol paneli oluşturmak için özel kontrol panelini yönetme ve kontrol paneli widget'ları ekleme başlıklı makaleleri inceleyin.