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.listve
datastore.indexes.getizinlerini gerektirir.
- TTL politikalarını değiştirmek
datastore.indexes.updateiznini gerektirir.
- TTL işlemlerinin durumunu kontrol etmek için
datastore.operations.listve
datastore.operations.getgerekir.
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,
expireAtalanı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
Google Cloud Platform Console'da Veritabanları sayfasına gidin.
Veritabanları listesinden gerekli veritabanını seçin.
Gezinme menüsünde Yaşam Süresi'ni tıklayın.
İlke Oluştur'u tıklayın.
Bir koleksiyon grubu adı ve zaman damgası alanı adı girin.
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
Google Cloud Platform Console'da Veritabanları sayfasına gidin.
Veritabanları listesinden gerekli veritabanını seçin.
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
Google Cloud Platform Console'da Veritabanları sayfasına gidin.
Veritabanları listesinden gerekli veritabanını seçin.
Gezinme menüsünde Yaşam Süresi'ni tıklayın.
TTL ilkesi tablosunda TTL ilkesine ilişkin satırı bulun. Bu tablo satırında Sil (çöp kutusu) düğmesini tıklayın.
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.