TTL politikalarıyla veri saklamayı yönetin

Bu sayfada, yaşam süresi (TTL) politikalarını yapılandırmak için Google Cloud Platform Konsolu ve Google Cloud CLI'nın nasıl kullanılacağı açıklanmaktadır. Bu sayfayı okumadan önce Cloud Firestore veri modelini anlamalısınız.

Yaşam süresine genel bakış

Eski verileri veritabanlarınızdan otomatik olarak kaldırmak için geçerlilik süresi (TTL) ilkelerini kullanın. Bir TTL ilkesi, belirli bir koleksiyon grubundaki belgelerin sona erme süresi olarak belirli bir alanı 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, belge silme maliyetlerinize dahil edilir. Silme işlemlerinin fiyatlandırması için bkz. Cloud Firestore fiyatlandırması .

Sınırlar ve kısıtlamalar

  • Koleksiyon grubu başına yalnızca bir alan TTL alanı olarak işaretlenebilir.
  • Toplam 200 saha düzeyinde konfigürasyona izin verilir. Bir alan konfigürasyonu aynı alan için birden fazla konfigürasyon içerebilir. Örneğin, tek alanlı dizin oluşturma muafiyeti ve aynı alandaki TTL politikası, sınıra göre tek alan yapılandırması olarak sayılır.
  • Datastore modundaki Firestore müşterileri için TTL, Optimistic With Entity Groups eşzamanlılık moduyla kullanılamaz. Bunu takiben eşzamanlılık modunu değiştirmeyi düşünün.

TTL silme

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

  • TTL aracılığıyla silme işlemi anlık bir işlem değildir. Süresi dolmuş belgeler, TTL işlemi bunları gerçekten silene kadar sorgularda ve arama isteklerinde görünmeye devam eder. TTL, silme işlemlerinin toplam sahip olma maliyetinin azaltılması yararına silme işleminin zamanında yapılmasını sağlar. Veriler genellikle son kullanma tarihinden sonraki 24 saat içinde silinir.

  • Bir belgenin TTL aracılığıyla silinmesi, o belgenin altındaki alt koleksiyonların silinmesine neden olmaz.

  • Mevcut bir koleksiyon grubuna TTL politikası uygulamak, yeni TTL politikasına göre süresi dolmuş tüm verilerin toplu olarak silinmesine neden olur. Bu toplu silme işleminin de anlık olmadığını ve söz konusu koleksiyon grubu için ne kadar verinin mevcut olduğuna bağlı olduğunu unutmayın.

  • Bir belgenin geçerlilik süresi geçmişse ve koleksiyona yeni bir ttl ilkesi eklerseniz, ttl ilkesinin kurulumu tamamlanıp etkin hale geldikten sonra belge 24 saat içinde silinir.

  • TTL, belgeleri mutlaka sona erme zaman damgalarıyla aynı sırayla silmez.

  • Silme işlemleri işlemsel olarak yapılmaz. Aynı geçerlilik süresine sahip belgelerin aynı anda silinmesi zorunlu değildir. Bu davranışa ihtiyacınız varsa, silme işlemini bir istemci kitaplığı kullanarak gerçekleştirin.

  • Cloud Firestore, son kullanma tarihini belirlemek için her zaman en son TTL alanını dikkate alacaktır. Örneğin, süresi dolmuş ancak henüz silinmemiş bir belgenin TTL alanı daha sonraki bir tarihe güncellenmişse, belgenin süresi dolmaz ve yeni tarih kullanılır.

  • TTL, diğer veritabanı etkinlikleri üzerindeki etkiyi en aza indirecek şekilde tasarlanmıştır. TTL tarafından gerçekleştirilen silme işlemleri daha düşük bir öncelik ile ele alınır. TTL kaynaklı silme işlemlerinden kaynaklanan trafik artışlarını düzeltmek için başka stratejiler de mevcuttur.

  • TTL aracılığıyla silme, tüm etkin anlık görüntü dinleyicilerini çağırır ve Cloud Functions Cloud Firestore tetikleyicilerini tetikler.

TTL alanları ve dizinleri

Bir TTL alanı indekslenebilir veya indekslenmemiş olabilir. Ancak TTL alanı bir zaman damgası olduğundan, alanın dizine eklenmesi daha yüksek trafik hızlarında performansı etkileyebilir. Bir zaman damgası alanının dizine eklenmesi, en iyi uygulamalara aykırı olan sıcak noktalar oluşturabilir. Etkin noktalar, dar bir belge aralığında yüksek okuma, yazma ve silme oranlarına sahiptir.

Varsayılan olarak Cloud Firestore, tüm alanlar için tek alanlı bir dizin oluşturur. Bir TTL alanındaki dizinleri devre dışı bırakmak için tek alanlı dizin muafiyeti oluşturabilirsiniz .

İzinler

Bir TTL politikasını yapılandıran sorumlu, projede aşağıdaki izni gerektirir:

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

Bu izinleri atayan roller için bkz. Cloud Firestore Identity ve Access Management rolleri .

Sen başlamadan önce

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

gcloud components update

TTL ilkesi oluşturma

Bir TTL ilkesi oluşturduğunuzda, bir koleksiyon grubundaki belgelerin sona erme süresi olarak bir belge alanı belirlersiniz.

TTL, silinmeye uygun belgeleri tanımlamak için belirli bir alanı kullanır. Bu TTL alanı Date and time türünde olmalıdır. Halihazırda var 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 gelecekte, şu anda veya geçmişte bir zaman olabilir. Değer geçmişteki bir zaman ise belge hemen silinmeye uygundur. Örneğin, expireAt alanıyla bir TTL politikası oluşturabilir ve daha sonra bunu mevcut belgelere ekleyebilirsiniz.

  • Başka bir veri türünün kullanılması veya TTL alanı değerinin ayarlanmaması, tek bir belge için TTL'yi devre dışı bırakacaktır.

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

Google Bulut Konsolu

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

    Veritabanlarına Git

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

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

  4. İlke Oluştur'u tıklayın.

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

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

Konsol Yaşam Süresi sayfasına geri döner. İşlem başarılı bir şekilde başlarsa sayfa, TTL politikaları tablosuna bir giriş ekler. Başarısızlık durumunda sayfada bir hata mesajı görüntülenir.

gcloud

Bir TTL politikası yapılandırmak için firestore fields ttls update komutunu kullanın. gcloud CLI'nin işlemin tamamlanmasını beklemesini önlemek için --async işaretini ekleyin.

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

Boş bir veritabanında bile bir TTL ilkesinin etkinleştirilmesi on dakika veya daha uzun sürebilir. Bir işlemi başlattığınızda terminali kapatmak işlemi iptal etmez.

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

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

Google Bulut Konsolu

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

    Veritabanlarına Git

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

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

Konsol, veritabanınız için TTL politikalarını listeler ve her politikanın durumunu içerir.

gcloud

Bir TTL ilkesi 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 ilkelerini belirli bir koleksiyon grubu altında listelemek için aşağıdakileri kullanın:

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

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

CREATING durumundaki bir TTL politikası hakkında daha fazla ayrıntı görüntülemek için gcloud KSA'yı 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ıt, operasyonun ilerleyişine ilişkin bir tahmin içerir.

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

Bir TTL politikasını devre dışı bırakmak için aşağıdaki adımları izleyin.

Google Bulut Konsolu

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

    Veritabanlarına Git

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

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

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

  5. Sil'e tıklayarak onaylayın.

Konsol Yaşam Süresi sayfasına geri döner. Başarı durumunda Cloud Firestore, TTL politikasını tablodan kaldırır.

gcloud

1. Bir TTL politikasını yapılandırmak için firestore fields ttls update komutunu kullanın. gcloud CLI'nin işlemin tamamlanmasını beklemesini önlemek için --async işaretini ekleyin.

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

TTL silme işlemlerini izleyin

TTL kaynaklı silme işlemleriyle ilgili ölçümleri görüntülemek için Cloud Monitoring'i kullanabilirsiniz. Cloud Firestore, TTL için aşağıdaki ölçümleri sağlar:

firestore.googleapis.com/document/ttl_deletion_count Geçerlilik süresi silme sayısı

Yaşam Süresi (TTL) politikaları tarafından silinen belgelerin toplam sayısı.

firestore.googleapis.com/document/ttl_expiration_to_deletion_delays Silme gecikmelerine kadar geçerlilik süresinin sona ermesi

Bir belgenin Yaşam Süresi (TTL) ilkesi kapsamında süresinin dolması ile belgenin gerçekten silinmesi arasında geçen süre.

Cloud Firestore ölçümleriyle bir kontrol paneli oluşturmak için bkz. özel kontrol panelini yönetme ve kontrol paneli widget'ları ekleme .