Na tej stronie opisano, jak używać konsoli Google Cloud Platform Console i Google Cloud CLI do konfigurowania zasad czasu wygaśnięcia (TTL). Zanim przeczytasz tę stronę, powinieneś zapoznać się z modelem danych Cloud Firestore .
Przegląd czasu życia
Korzystaj z zasad czasu życia (TTL), aby automatycznie usuwać nieaktualne dane z baz danych. Polityka TTL wyznacza dane pole jako czas wygaśnięcia dokumentów w danej grupie kolekcji. Dzięki TTL możesz obniżyć koszty przechowywania, usuwając przestarzałe dane. Dane są zazwyczaj usuwane w ciągu 72 godzin od daty ich wygaśnięcia.
cennik
Operacje usuwania TTL są wliczane do kosztów usuwania dokumentów. Cennik operacji usuwania można znaleźć w cenniku Cloud Firestore .
Granice i ograniczenia
- Tylko jedno pole na grupę kolekcji może być oznaczone jako pole TTL.
- W sumie dozwolonych jest 200 konfiguracji na poziomie pola. Jedna konfiguracja pola może zawierać wiele konfiguracji dla tego samego pola. Na przykład wykluczenie z indeksowania pojedynczego pola i zasada TTL dla tego samego pola liczą się jako jedna konfiguracja pola w ramach limitu.
usunięcie TTL
Zwróć uwagę na następujące kluczowe zachowania usuwania opartego na TTL:
Usuwanie przez TTL nie jest procesem natychmiastowym. Wygasłe dokumenty nadal pojawiają się w zapytaniach i żądaniach wyszukiwania, dopóki proces TTL nie usunie ich. TTL handluje terminowością usuwania na rzecz obniżenia całkowitego kosztu posiadania dla usunięcia. Dane są zazwyczaj usuwane w ciągu 72 godzin od daty ich wygaśnięcia.
Usunięcie dokumentu za pośrednictwem TTL nie powoduje usunięcia podkolekcji w ramach tego dokumentu.
Zastosowanie zasad TTL do istniejącej grupy kolekcji powoduje zbiorcze usunięcie wszystkich danych, które wygasły zgodnie z nowymi zasadami TTL. Należy zauważyć, że to masowe usuwanie również nie jest natychmiastowe i zależy od ilości danych dostępnych dla tej grupy kolekcji.
TTL niekoniecznie usuwa dokumenty w tej samej kolejności, co ich znaczniki czasu wygaśnięcia.
Usunięcia nie są dokonywane transacyjnie. Dokumenty z tym samym czasem wygaśnięcia niekoniecznie są usuwane w tym samym czasie. Jeśli wymagane jest takie zachowanie, wykonaj usuwanie przy użyciu biblioteki klienta.
Cloud Firestore zawsze będzie honorować ostatnie pole TTL, aby określić datę wygaśnięcia. Na przykład, jeśli wygasły, ale jeszcze nieusunięty dokument ma zaktualizowane pole TTL do późniejszej daty, dokument nie utraci ważności i zostanie użyta nowa data.
TTL ma na celu zminimalizowanie wpływu na inne działania bazy danych. Usunięcia spowodowane przez TTL są traktowane z niższym priorytetem. Stosowane są również inne strategie mające na celu wygładzenie skoków ruchu z usunięć opartych na TTL.
Usuwanie przez TTL wywołuje wszystkie aktywne detektory migawek i wyzwalacze Wyzwalacze Cloud Functions Cloud Firestore.
Pola i indeksy TTL
Pole TTL może być indeksowane lub nieindeksowane. Ponieważ jednak pole TTL jest sygnaturą czasową, indeksowanie pola może wpłynąć na wydajność przy wyższym natężeniu ruchu. Indeksowanie pola znacznika czasu może spowodować utworzenie punktów aktywnych , co jest sprzeczne z najlepszymi praktykami. Hotspoty charakteryzują się wysoką szybkością odczytu, zapisu i usuwania w wąskim zakresie dokumentów.
Domyślnie Cloud Firestore tworzy indeks z jednym polem dla wszystkich pól. Możesz utworzyć wykluczenie indeksu pojedynczego pola, aby wyłączyć indeksy w polu TTL.
Uprawnienia
Podmiot zabezpieczeń konfigurujący zasady TTL wymaga następujących uprawnień w projekcie:
- Wyświetlanie zasad TTL wymaga uprawnień
datastore.indexes.list
idatastore.indexes.get
. - Modyfikowanie zasad TTL wymaga uprawnienia
datastore.indexes.update
. - Sprawdzanie stanu operacji TTL wymaga
datastore.operations.list
idatastore.operations.get
.
Aby uzyskać informacje o rolach, które przypisują te uprawnienia, zobacz Role Cloud Firestore Identity and Access Management .
Zanim zaczniesz
Zanim użyjesz interfejsu wiersza polecenia gcloud do zarządzania zasadami TTL, użyj polecenia gcloud components update
, aby zaktualizować komponenty do najnowszej dostępnej wersji:
gcloud components update
Utwórz zasady TTL
Tworząc zasady TTL, wyznaczasz pole dokumentu jako czas wygaśnięcia dokumentów w grupie kolekcji.
TTL używa określonego pola do identyfikowania dokumentów, które kwalifikują się do usunięcia. To pole TTL musi być typu Date and time
. Możesz wybrać pole, które już istnieje, lub możesz wyznaczyć pole, które planujesz dodać później.
Przed ustawieniem wartości pola TTL rozważ następujące kwestie:
Wartość pola TTL może być czasem w przyszłości, teraz lub w przeszłości. Jeśli wartością jest czas w przeszłości, dokument kwalifikuje się natychmiast do usunięcia. Na przykład możesz utworzyć zasady TTL z polem
expireAt
, które następnie dodasz do istniejących dokumentów.Użycie innego typu danych lub nieustawienie wartości pola TTL spowoduje wyłączenie TTL dla danego dokumentu.
Wykonaj poniższe czynności, aby utworzyć zasady TTL:
Konsola Google Cloud
Przejdź do strony czasu życia Cloud Firestore w konsoli Google Cloud Platform.
Kliknij Utwórz zasady .
Wprowadź nazwę grupy kolekcji i nazwę pola sygnatury czasowej.
Kliknij Utwórz .
Konsola powróci do strony Czas życia . Jeśli operacja zostanie pomyślnie uruchomiona, strona dodaje wpis do tabeli zasad TTL. W przypadku niepowodzenia strona wyświetla komunikat o błędzie.
gcloud
Użyj polecenia firestore fields ttls update
aby skonfigurować zasady TTL. Dodaj flagę --async
, aby interfejs wiersza polecenia gcloud nie czekał na zakończenie operacji.
gcloud firestore fields ttls update ttl_field --collection-group=collection_group_name --enable-ttl
Nawet w przypadku pustej bazy danych włączenie zasady TTL może zająć dziesięć minut lub więcej. Po rozpoczęciu operacji zamknięcie terminala nie anuluje operacji.
Zobacz zasady TTL
Wykonaj poniższe czynności, aby wyświetlić zasady TTL i ich stany.
Konsola Google Cloud
Przejdź do strony czasu życia Cloud Firestore w konsoli Google Cloud Platform.
Konsola wyświetla zasady TTL dla Twojej bazy danych i zawiera stan każdej zasady.
gcloud
Użyj polecenia firestore fields ttls list
aby skonfigurować zasady TTL. Następujące polecenie wyświetla listę wszystkich zasad TTL.
gcloud firestore fields ttls list
Aby wyświetlić zasady TTL w określonej grupie kolekcji, użyj następujących opcji:
gcloud firestore fields ttls list --collection-group=collection_group_name
Zobacz szczegóły operacji
Możesz użyć interfejsu wiersza polecenia gcloud, aby wyświetlić więcej szczegółów o zasadzie TTL, która jest w stanie CREATING
.
Użyj polecenia operations list
aby zobaczyć wszystkie uruchomione i ostatnio zakończone operacje:
gcloud firestore operations list
Odpowiedź zawiera oszacowanie postępu operacji.
Wyłącz zasady TTL
Wykonaj poniższe czynności, aby wyłączyć zasady TTL.
Konsola Google Cloud
Przejdź do strony czasu życia Cloud Firestore w konsoli Google Cloud Platform.
W tabeli zasad TTL znajdź wiersz zasady TTL. W tym wierszu tabeli kliknij przycisk Usuń (kosz).
Potwierdź klikając Usuń .
Konsola powróci do strony Czas życia . Jeśli się powiedzie, Cloud Firestore usuwa zasadę TTL z tabeli.
gcloud
1. Użyj polecenia firestore fields ttls update
aby skonfigurować zasady TTL. Dodaj flagę --async
, aby interfejs wiersza polecenia gcloud nie czekał na zakończenie operacji.
gcloud firestore fields ttls update ttl_field --collection-group=collection_group_name --disable-ttl
Monitoruj usuwanie TTL
Możesz użyć Cloud Monitoring, aby wyświetlić dane dotyczące usunięć opartych na TTL. Cloud Firestore zapewnia następujące wskaźniki dla TTL:
firestore.googleapis.com/document/ttl_deletion_count | Liczba usunięć czasu życia | Całkowita liczba dokumentów usuniętych przez zasady czasu wygaśnięcia (TTL). |
firestore.googleapis.com/document/ttl_expiration_to_deletion_delays | Opóźnienia czasu wygaśnięcia do usunięcia | Czas, jaki upłynął między wygaśnięciem dokumentu zgodnie z zasadą czasu wygaśnięcia (TTL) a faktycznym usunięciem. |
Aby skonfigurować pulpit nawigacyjny z danymi Cloud Firestore, zobacz zarządzanie niestandardowym pulpitem nawigacyjnym i dodawanie widżetów pulpitu nawigacyjnego .