TTL politikalarıyla veri saklamayı yönetme

Bu sayfada, kullanım süresi (TTL) politikalarını yapılandırmak için Google Cloud Console ve Google Cloud CLI'nin nasıl kullanılacağı açıklanmaktadır. Bu sayfayı okumadan önce Cloud Firestore veri modelini anlamanız gerekir.

Geçerlilik süresine genel bakış

Otomatik olarak şunları yapmak için TTL politikalarını kullanın: veritabanlarındaki eski verileri kaldırın. TTL politikası, belirli bir alanı belirli bir koleksiyon grubundaki dokümanların geçerlilik süresi olarak belirler. TTL ile şunları yapabilirsiniz: depolama maliyetlerini azaltmak için eski verileri temizleyin. Veriler genellikle silinir geçerlilik bitiş tarihinden sonraki 24 saat içinde gösterilir.

Fiyatlandırma

TTL silme işlemleri, belge silme maliyetlerinize dahil edilir. Fiyatlandırma için hakkında daha fazla bilgi edinmek için Cloud Firestore fiyatlandırmasına göz atın.

Sınırlar ve kısıtlamalar

  • Her koleksiyon grubu için yalnızca bir alan TTL alanı olarak işaretlenebilir.
  • Toplam 200 alan düzeyinde yapılandırmaya izin verilir. Bir alan yapılandırması aynı alan için birden fazla yapılandırma içerebilir. Örneğin, tek alanlı dizine ekleme muafiyeti ve aynı alanda bulunan TTL politikası, sınıra doğru bir alan yapılandırması ekleyin.
  • Datastore modundaki Firestore müşterileri için TTL, Öğe Gruplarıyla Optimistic eşzamanlılık moduyla kullanılamaz. Eşzamanlılık modunu İyimser eşzamanlılık modu olarak değiştirmeyi deneyin.

TTL silme

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

  • TTL yoluyla silme işlemi anlık bir süreç değildir. Süresi dolan dokümanlar TTL işlemine kadar sorgularda ve arama isteklerinde görünmeye devam eder. bunları siler. TTL, silme işleminin zamanında yapılmasını silme işlemlerinin toplam sahip olma maliyetini düşürme avantajıyla takas eder. Veriler genellikle geçerlilik bitiş tarihinden 24 saat sonra silinir.

  • Bir dokümanın TTL aracılığıyla silinmesi, söz konusu dokümanın altındaki alt koleksiyonların silinmesine neden olmaz.

  • Mevcut bir toplama grubuna bir TTL politikası uygulanması, süresi dolan tüm verilerin yeni TTL politikasına göre toplu olarak silinmesine neden olur. Not toplu silme işleminin anlık olmadığını ve uygulanan veri miktarına var.

  • Bir dokümanın son geçerlilik tarihi geçmişteyse ve yeni bir TTL politikası eklerseniz söz konusu doküman 24 saat içinde silinir. sona erecektir.

  • TTL, dokümanları geçerlilik bitiş zaman damgalarıyla aynı sırada silmez.

  • Silme işlemleri işlemsel olarak yapılmaz. Son kullanma tarihi aynı olan belgeler her zaman aynı anda silinmemesi gerekir. Bu davranışa ihtiyacınız varsa silme işlemlerini bir istemci kitaplığı kullanarak gerçekleştirin.

  • 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 dokümanın TTL alanı daha sonraki bir tarihe güncellenirse, belgenin geçerlilik süresi sona ermez ve yeni tarih kullanılacak.

  • TTL, diğer veritabanı etkinlikleri üzerindeki etkiyi en aza indirecek şekilde tasarlanmıştır. TTL tarafından yönlendirilen silme işlemleri daha düşük öncelikli olarak ele alınır. TTL'ye dayalı silme işlemlerinden kaynaklanan trafik artışlarını azaltmak için başka stratejiler de vardır.

  • TTL aracılığıyla silme işlemi, 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ı dizine eklenebilir veya dizinden çıkarılabilir. Ancak TTL alanı bir zaman damgası olduğundan alanın dizine eklenmesi, daha yüksek trafik oranlarında performansı etkileyebilir. Bir zaman damgası alanının dizine eklenmesi, hotspots yararlanın. Hotspot'lar 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. TTL alanındaki dizinleri devre dışı bırakmak için tek alanlı dizin muafiyeti oluşturabilirsiniz.

İzinler

TTL politikasını yapılandıran ana hesap, proje:

  • TTL politikalarının görüntülenebilmesi için datastore.indexes.list gereklidir ve datastore.indexes.get izinleri.
  • 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 KSA'yı kullanmadan önce gcloud components update komutunu mevcut en son sürüme güncelleyin:

gcloud components update

TTL politikası oluşturma

TTL politikası oluşturduğunuzda, bir koleksiyon grubundaki dokümanların geçerlilik bitiş tarihi olarak bir doküman alanı belirlersiniz.

TTL, silinmeye uygun dokümanları tanımlamak için belirtilen bir alanı kullanır. Bu TTL alanı, Date and time türünde olmalıdır. Veri feed'i oluştururken veya daha sonra eklemeyi planladığınız bir alan belirtebilirsiniz.

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 bir zaman ise doküman hemen silinebilir. Örneğin, expireAt alanını içeren bir TTL politikası oluşturabilir ve daha sonra bu politikayı mevcut belgelere 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.

Bir TTL politikası oluşturmak için şu adımları izleyin:

Google Cloud Console

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

    Veritabanlarına git

  2. Veritabanı 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 grubu 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şlarsa sayfa, TTL politikaları tablosuna bir giriş ekler. Şu tarihte: başarısız olursa sayfada bir hata mesajı görüntülenir.

gcloud

firestore fields ttls update'ı kullanma komutunu kullanabilirsiniz. Şunları önlemek için --async işaretini ekleyin: gcloud KSA'nın, işlemin tamamlanmasını beklemesini engeller.

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

TTL politikası etkinleştirme süresi

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

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

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

Google Cloud Console

  1. Google Cloud 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ın TTL politikalarını listeler ve her politikanın durumu.

gcloud

Şunu kullanın: firestore fields ttls list komutunu kullanabilirsiniz. Aşağıdaki komut tüm TTL politikalarını listeler.

   gcloud firestore fields ttls list
   

Belirli bir koleksiyon grubu altındaki TTL politikalarını listelemek için aşağıdakileri kullanın:

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

İşlem ayrıntılarını göster

TTL politikasıyla ilgili daha fazla ayrıntı görüntülemek için gcloud KSA'yı kullanabilirsiniz CREATING durumundadır.

operations list komutunu kullanarak tüm çalışan ve yakın zamanda tamamlanan işlemler:

gcloud firestore operations list

Yanıt, işlemin ilerlemesiyle ilgili bir tahmin içerir.

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

Bir TTL politikasını devre dışı bırakmak 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. Veritabanı 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ının 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 geri döner. Başarıda, Cloud Firestore, TTL politikasını tablodan kaldırır.

gcloud

1. Şunu kullanın: firestore fields ttls update komutunu kullanabilirsiniz. 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 izleme

TTL odaklı silme işlemleriyle ilgili metrikleri görüntülemek için Cloud Monitoring kullanabilirsiniz. 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 Canlı kalma süresi silme 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 dolmasından silme gecikmelerine kadar geçen süre

Bir dokümanın TTL kapsamında geçerlilik süresi sona erdiği zaman arasında geçen süre politikanın ne zaman silindiği gibi.

Cloud Firestore metrikleriyle kontrol paneli oluşturmak için şuraya bakın: özel kontrol panelini yönetin ve gösterge tablosu widget'ları ekleyin.