Dotyczy tylko wersji Cloud Firestore Enterprise. |
Na tej stronie dowiesz się, jak skonfigurować zasady czasu życia (TTL) za pomocą konsoli Google Cloud i Google Cloud CLI.
Omówienie czasu życia
Używaj zasad TTL, aby automatycznie usuwać nieaktualne dane z baz danych. Zasady TTL wyznaczają określone pole jako czas wygaśnięcia dokumentów w danej kolekcji. Dzięki TTL możesz zmniejszyć koszty przechowywania, usuwając przestarzałe dane. Dane są zwykle usuwane w ciągu 24 godzin po upłynięciu ich daty ważności.
Ceny
Operacje usuwania TTL są wliczane do kosztów usuwania dokumentów. Cennik operacji usuwania znajdziesz w sekcji Cloud Firestore Ceny wersji Enterprise.
Limity i ograniczenia
- Jako pole TTL możesz oznaczyć tylko 1 pole w kolekcji.
- Możesz mieć maksymalnie 500 konfiguracji TTL na poziomie pola.
Usuwanie TTL
Zwróć uwagę na te kluczowe zachowania związane z usuwaniem na podstawie czasu życia:
Usuwanie za pomocą TTL nie jest natychmiastowe. Wygasłe dokumenty nadal będą się pojawiać w zapytaniach i prośbach o wyszukiwanie, dopóki proces TTL ich nie usunie. TTL wymienia terminowość usuwania transakcji na korzyść niższego całkowitego kosztu posiadania w przypadku usuwania. Dane są zwykle usuwane w ciągu 24 godzin po upłynięciu ich daty ważności.
Zastosowanie zasady TTL do istniejącej kolekcji powoduje zbiorcze usunięcie wszystkich wygasłych danych zgodnie z nową zasadą TTL. Uwaga: to zbiorcze usuwanie również nie jest natychmiastowe i zależy od ilości danych w danej kolekcji.
Jeśli dokument ma czas wygaśnięcia w przeszłości i dodasz do kolekcji nowe zasady TTL, zostanie on usunięty w ciągu 24 godzin od momentu, w którym zasady TTL zostaną skonfigurowane i aktywowane.
TTL niekoniecznie usuwa dokumenty w tej samej kolejności co ich sygnatury czasowe wygaśnięcia.
Usuwanie nie jest wykonywane w ramach transakcji. Dokumenty z tym samym czasem wygaśnięcia niekoniecznie są usuwane w tym samym czasie. Jeśli chcesz, aby tak się działo, usuń elementy za pomocą biblioteki klienta.
Cloud Firestore w trybie zgodności z MongoDB zawsze będzie uwzględniać najnowsze pole TTL, aby określić datę wygaśnięcia. Jeśli na przykład w przypadku dokumentu, który utracił ważność, ale nie został jeszcze usunięty, pole TTL zostanie zaktualizowane do późniejszej daty, dokument nie utraci ważności i zostanie użyta nowa data.
Cloud Firestore w trybie zgodności z MongoDB usuwa dokument tylko wtedy, gdy pole TTL ma typ
Date and time
lubBSON Date
. Pozostaw to pole puste lub ustaw wartość, np.null
, aby wyłączyć wygasanie poszczególnych dokumentów.TTL ma na celu zminimalizowanie wpływu na inne działania w bazie danych. Usuwanie spowodowane przez TTL ma niższy priorytet. Stosujemy też inne strategie, aby wygładzać skoki natężenia ruchu spowodowane usuwaniem danych na podstawie czasu życia.
Pola i indeksy TTL
Pole TTL może być indeksowane lub nieindeksowane. Jednak ponieważ pole TTL jest sygnaturą czasową, indeksowanie tego pola może wpływać na wydajność przy większym natężeniu ruchu. Indeksowanie pola sygnatury czasowej może powodować powstawanie punktów dostępu, co jest niezgodne ze sprawdzonymi metodami. Hotspoty to wysokie wskaźniki odczytu, zapisu i usuwania w wąskim zakresie dokumentów.
Uprawnienia
Podmiot konfigurujący zasady TTL musi mieć w projekcie to uprawnienie:
- 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
.
Role, które przypisują te uprawnienia, znajdziesz w sekcji Cloud Firestore Role Identity and Access Management.
Zanim zaczniesz
Zanim użyjesz polecenia gcloud CLI do zarządzania zasadami TTL, użyj polecenia
gcloud components update
do zaktualizowania komponentów do najnowszej dostępnej wersji:
gcloud components update
Utwórz zasadę TTL
Gdy tworzysz zasadę TTL, wyznaczasz pole dokumentu jako czas wygaśnięcia dokumentów w kolekcji.
TTL używa określonego pola do identyfikowania dokumentów, które kwalifikują się do usunięcia.
To pole TTL musi być typu Timestamp
lub BSON Date
. Możesz wybrać pole, które już istnieje, lub wskazać pole, które planujesz dodać później.
Zanim ustawisz wartość pola TTL, weź pod uwagę te kwestie:
Wartość pola TTL może być czasem w przyszłości, teraźniejszości lub przeszłości. Jeśli wartość jest datą w przeszłości, dokument kwalifikuje się do natychmiastowego usunięcia. Możesz na przykład utworzyć zasadę TTL z polem
expireAt
, a następnie dodać ją do istniejących dokumentów.Użycie innego typu danych lub nieustawienie wartości pola TTL spowoduje wyłączenie TTL dla poszczególnych dokumentów.
Aby utworzyć zasadę TTL, wykonaj te czynności:
Google Cloud Console
W konsoli Google Cloud otwórz stronę Bazy danych.
Na liście baz danych wybierz odpowiednią bazę danych.
W menu nawigacyjnym kliknij Time-to-live (Czas życia).
Kliknij Utwórz zasadę.
Wpisz nazwę kolekcji i nazwę pola sygnatury czasowej.
Kliknij Utwórz.
Konsola wróci na stronę Czas życia. Jeśli operacja rozpocznie się prawidłowo, na stronie zostanie dodany wpis do tabeli zasad TTL. W przypadku niepowodzenia na stronie wyświetli się komunikat o błędzie.
gcloud
Zainstaluj i zainicjuj interfejs wiersza poleceń gcloud CLI.
Aby skonfigurować zasadę TTL, użyj polecenia
firestore fields ttls update
. Dodaj flagę--async
, aby zapobiec czekaniu przez gcloud CLI na zakończenie operacji.gcloud firestore fields ttls update ttl_field --collection-group=collection_name --enable-ttl
Czas włączenia zasady TTL
Nawet w przypadku pustej bazy danych włączenie zasad TTL może potrwać 10 minut lub dłużej. Po rozpoczęciu operacji zamknięcie terminala nie spowoduje jej anulowania.
Wyświetlanie zasad TTL
Aby wyświetlić zasady TTL i ich stany, wykonaj te czynności:
Google Cloud Console
W konsoli Google Cloud otwórz stronę Bazy danych.
Na liście baz danych wybierz odpowiednią bazę danych.
W menu nawigacyjnym kliknij Time-to-live (Czas życia).
Konsola wyświetla listę zasad TTL dla bazy danych, w tym stan każdej zasady.
gcloud
Zainstaluj i zainicjuj interfejs wiersza poleceń gcloud CLI.
Aby skonfigurować zasadę TTL, użyj polecenia
firestore fields ttls list
. To polecenie wyświetla listę wszystkich zasad TTL.gcloud firestore fields ttls list
Aby wyświetlić listę zasad TTL w określonej kolekcji, użyj tego polecenia:
gcloud firestore fields ttls list --collection-group=collection_name
Wyświetl szczegóły operacji
Możesz użyć ikony gcloud CLI, aby wyświetlić więcej szczegółów o zasadach TTL, które są w stanie CREATING
.
Użyj polecenia operations list
, aby wyświetlić wszystkie trwające i ostatnio zakończone operacje:
gcloud firestore operations list
Odpowiedź zawiera szacunkowy postęp operacji.
Wyłączanie zasady TTL
Aby wyłączyć zasadę TTL, wykonaj te czynności:
Google Cloud Console
W konsoli Google Cloud otwórz stronę Bazy danych.
Na liście baz danych wybierz odpowiednią bazę danych.
W menu nawigacyjnym kliknij Time-to-live (Czas życia).
W tabeli zasad TTL odszukaj wiersz z zasadami TTL. W tym wierszu tabeli kliknij przycisk Usuń (kosz).
Potwierdź, klikając Usuń.
Konsola wróci na stronę Czas życia. Jeśli operacja się powiedzie, Cloud Firestore w trybie zgodności z MongoDB usunie z tabeli zasadę TTL.
gcloud
Zainstaluj i zainicjuj interfejs wiersza poleceń gcloud CLI.
Aby skonfigurować zasadę TTL, użyj polecenia
firestore fields ttls update
. Dodaj flagę--async
, aby zapobiec czekaniu przez gcloud CLI na zakończenie operacji.gcloud firestore fields ttls update ttl_field --collection-group=collection_name --disable-ttl
Monitorowanie usunięć TTL
Aby wyświetlić dane o usuwaniu danych na podstawie czasu życia, kliknij Cloud Monitoring. Cloud Firestore w trybie zgodności z MongoDB udostępnia te dane dotyczące TTL:
Typ wskaźnika | Nazwa danych | Opis danych |
---|---|---|
firestore.googleapis.com/document/ttl_deletion_count | Liczba usunięć z powodu czasu życia |
Łączna liczba dokumentów usuniętych przez zasady TTL. |
firestore.googleapis.com/document/ttl_expiration_to_deletion_delays | Opóźnienia między wygaśnięciem czasu życia a usunięciem |
Czas, który upłynął od wygaśnięcia dokumentu zgodnie z zasadami TTL do jego faktycznego usunięcia. |
Aby skonfigurować panel z wskaźnikami Firestore w trybie zgodności z MongoDB, zapoznaj się z artykułami zarządzanie panelem niestandardowym i dodawanie widżetów do panelu.