Bu sayfada, Google Cloud Console ve Google Cloud CLI'ın nasıl kullanılacağı açıklanmaktadır. geçerlilik süresi (TTL) politikalarını yapılandırın. Bu sayfayı okumadan önce yapmanız gereken Cloud Firestore veri modeli.
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 son kullanma tarihinden sonraki 24 saat içinde silinir.
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
- Koleksiyon grubu başına 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 modunda Firestore müşterileri için TTL, Varlık Gruplarıyla İyimser. 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 belgeler, TTL işlemi onları gerçekten silene kadar sorgularda ve arama isteklerinde görünmeye devam eder. Şu avantaj için TTL takas silme zaman çizelgeleri: daha düşük toplam sahip olma maliyeti Veriler genellikle geçerlilik bitiş tarihinden 24 saat sonra silinir.
Bir dokümanın TTL aracılığıyla silinmesi, o dokümanın altındaki alt koleksiyonların silinmesine neden olmaz. uygulayacaksınız.
Mevcut bir koleksiyon grubuna TTL politikası uygulandığında toplu sonuç verir yeni TTL politikasına göre süresi dolmuş tüm verilerin silinmesini sağlayabilir. 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. Bunu zorunlu tutuyorsanız istemci kitaplığını kullanarak silme işlemlerini gerçekleştirin.
Cloud Firestore, sona erecektir. Ö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 indirmek için tasarlanmıştır. Silme işlemleri daha düşük öncelikli olarak değerlendirilir. 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 dizinler
Bir TTL alanı dizine eklenebilir veya dizinden çıkarılabilir. Ancak, TTL alanı zaman damgası varsa alanın dizine eklenmesi, daha yüksek trafik oranlarında performansı etkileyebilir. Bir zaman damgası alanının dizine eklenmesi, en iyi uygulamalara aykırı olan sıcak noktalar oluşturabilir. Hotspot'lar, dar bir belge aralığında yüksek okuma, yazma ve silme oranlarıdır.
Varsayılan olarak Cloud Firestore, tüm alanlar için tek alanlı bir dizin oluşturur. Şunları yapabilirsiniz: tek alanlı dizin muafiyeti oluşturma kullanarak TTL alanında dizinleri devre dışı bırakın.
İzinler
TTL politikasını yapılandıran asıl kullanıcının projede aşağıdaki izne sahip olması gerekir:
- TTL politikalarının görüntülenebilmesi için
datastore.indexes.list
gereklidir vedatastore.indexes.get
izinleri. - TTL politikalarının değiştirilmesi için
datastore.indexes.update
gereklidir izni gerekir. - TTL işlemlerinin durumunu kontrol etmek için
datastore.operations.list
vedatastore.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
Bir TTL politikası oluşturun
Bir TTL politikası oluşturduğunuzda geçerlilik bitiş tarihi olarak bir doküman alanı belirlersiniz. doküman için gereken süreyi belirtir.
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ının değerini ayarlamadan önce aşağıdakileri göz önünde bulundurun:
TTL alanının değeri gelecekteki bir zaman, şimdi veya geçmişteki bir zaman olabilir. Değer bir zaman ise doküman hemen silinebilir. Örneğin,
expireAt
alanıyla bir TTL politikası oluşturabilir, daha sonra bunu belgeler.Başka bir veri türünün kullanılması veya TTL alanı değerinin ayarlanmaması, ilgili doküman için TTL'nin devre dışı bırakılmasına neden olur.
TTL politikası oluşturmak için aşağıdaki adımları uygulayın:
Google Cloud Console
Google Cloud Console'da Veritabanları sayfasına gidin.
Veritabanları listesinden gerekli veritabanını seçin.
Gezinme menüsünden Geçerlilik süresi'ni tıklayın.
Politika Oluştur'u tıklayın.
Bir koleksiyon grubu adı ve zaman damgası alanı adı girin.
Oluştur'u tıklayın.
Konsol Geçerlilik süresi sayfasına döner. İşlem başarılı bir şekilde başlatıldığında 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'nin etkinleştirilmesi on dakika veya daha uzun sürebilir politikası. 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
Google Cloud Console'da Veritabanları sayfasına gidin.
Veritabanları listesinden gerekli veritabanını seçin.
Gezinme menüsünden Geçerlilik süresi'ni tıklayın.
Konsol, veritabanınız için TTL politikalarını listeler ve her politikanın durumunu içerir.
gcloud
Şunu kullanın:
firestore fields ttls list
komutunu kullanabilirsiniz. Aşağıdaki komut tüm TTL'leri listeler
politikalar.
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
Google Cloud Console'da Veritabanları sayfasına gidin.
Veritabanı listesinden gerekli veritabanını seçin.
Gezinme menüsünde Yaşam süresi'ni tıklayın.
TTL politikası tablosunda TTL politikasının satırını bulun. Bunun içinde tablo satırında Sil (çöp kutusu) düğmesini tıklayın.
Sil'i tıklayarak işlemi onaylayın.
Konsol Geçerlilik süresi sayfasına 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. Ş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 --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.