Na tej stronie opisano, jak skonfigurować zasady czasu życia (TTL) za pomocą konsoli Google Cloud i interfejsu wiersza poleceń Google Cloud. Zanim zaczniesz czytać tę stronę, zapoznaj się z modelem danych Cloud Firestore.
Omówienie czasu życia
Używaj zasad TTL, aby automatycznie usuwać nieaktualne dane z baz danych. Zasada TTL wyznacza określone pole jako czas ważności dokumentów w danej grupie kolekcji. Dzięki TTL możesz obniżyć koszty przechowywania danych, usuwając nieaktualne 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. Informacje o cenach operacji usuwania znajdziesz w cenniku Cloud Firestore.
Limity i ograniczenia
- Jako pole TTL można oznaczyć tylko jedno pole w grupie kolekcji.
- Dozwolone jest łącznie 200 konfiguracji na poziomie pola. Jedna konfiguracja pola może zawierać wiele konfiguracji tego samego pola. Na przykład: wykluczenie indeksowania pojedynczego pola i zasada TTL w tym samym polu są liczone jako jedna konfiguracja pola w ramach limitu.
- W przypadku klientów Firestore w trybie Datastore wartości TTL nie można używać w trybie równoległości Optymistyczny z grupami elementów. Rozważ zmianę trybu równoległości na tryb równoległości z optymalizacją.
Usuwanie wartości TTL
Pamiętaj o tych najważniejszych zachowaniach w przypadku usuwania na podstawie wartości TTL:
Usuwanie za pomocą TTL nie jest procesem natychmiastowym. Wygasłe dokumenty będą nadal pojawiać się w zapytaniach i zapytaniach wyszukiwania, dopóki proces TTL nie usunie ich. Zasady TTL umożliwiają skrócenie czasu usuwania w celu obniżenia całkowitego kosztu posiadania. Dane są zwykle usuwane w ciągu 24 godzin po upłynięciu ich daty ważności.
Usunięcie dokumentu za pomocą TTL nie powoduje usunięcia podzbiorów w tym dokumencie.
Zastosowanie zasady TTL do istniejącej grupy kolekcji spowoduje zbiorcze usunięcie wszystkich wygasłych danych zgodnie z nową zasadą TTL. Pamiętaj, że to zbiorcze usunięcie nie jest natychmiastowe i zależy od ilości danych w danej grupie zbiorów.
Jeśli dokument ma datę wygaśnięcia w przeszłości i dodasz do kolekcji nową zasadę TTL, dokument zostanie usunięty w ciągu 24 godzin od zakończenia konfigurowania zasady TTL i jej aktywacji.
TTL niekoniecznie usuwa dokumenty w tej samej kolejności, w jakiej są one oznaczone datą wygaśnięcia.
Usunięcia nie są przeprowadzane w ramach transakcji. Dokumenty z tym samym terminem ważności niekoniecznie zostaną usunięte w tym samym czasie. Jeśli potrzebujesz takiego zachowania, usuń te pliki za pomocą biblioteki klienta.
Cloud Firestore zawsze będzie używać najnowszego pola TTL do określenia daty wygaśnięcia. Jeśli na przykład w przypadku dokumentu, którego ważność wygasła, ale nie został on jeszcze usunięty, pole TTL zostanie zaktualizowane do późniejszej daty, dokument nie utraci ważności i będzie używana nowa data.
TTL ma na celu zminimalizowanie wpływu na inne działania w bazie danych. Usunięcia spowodowane przez TTL są traktowane z mniejszym priorytetem. Stosujemy też inne strategie, aby wygładzić skok ruchu spowodowany usunięciem treści z powodu wygaśnięcia okresu ważności.
Usunięcie za pomocą TTL wywołuje wszystkie aktywne detektory zrzutu i wyzwalacze Cloud Functions Cloud Firestore.
Pola i indeksy TTL
Pole TTL może być indeksowane lub nieindeksowane. Jednak pole TTL jest sygnaturą czasową, więc indeksowanie tego pola może wpływać na wydajność przy wyższych współczynnikach ruchu. Indeksowanie pola sygnatury czasowej może tworzyć punkty gorące, co jest niezgodne ze sprawdzonymi metodami. Obszary te to miejsca o wysokiej częstotliwości odczytu, zapisu i usuwania w wąskim zakresie dokumentów.
Domyślnie Cloud Firestore tworzy indeks pojedynczego pola dla wszystkich pól. Możesz utworzyć wykluczenie indeksu pojedynczego pola, aby wyłączyć indeksy w polu TTL.
Uprawnienia
Uprawniony podmiot konfigurujący zasadę TTL musi mieć w projekcie te uprawnienia:
- 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
.
Informacje o rolach, które przypisują te uprawnienia, znajdziesz w artykule Cloud Firestore Role zarządzania tożsamościami i dostępem.
Zanim zaczniesz
Zanim zaczniesz zarządzać zasadami TTL za pomocą interfejsu wiersza poleceń gcloud, uaktualnij komponenty do najnowszej dostępnej wersji, używając polecenia gcloud components update
:
gcloud components update
Utwórz zasadę TTL
Podczas tworzenia zasady TTL określasz 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 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 czasem w przeszłości, dokument można usunąć od razu. Możesz na przykład utworzyć zasadę TTL z polem
expireAt
, którą następnie dodasz do istniejących dokumentów.Użycie dowolnego innego typu danych lub brak ustawienia wartości pola TTL spowoduje wyłączenie TTL w przypadku pojedynczego dokumentu.
Aby utworzyć zasadę TTL:
Google Cloud Console
W konsoli Google Cloud otwórz stronę Bazy danych.
Wybierz wymaganą bazę danych z listy baz danych.
W menu nawigacyjnym kliknij Czas do publikacji.
Kliknij Utwórz zasadę.
Wpisz nazwę grupy zbiorów i nazwę pola z datą i godziną.
Kliknij Utwórz.
Konsola wróci do strony Czas życia. Jeśli operacja zostanie uruchomiona pomyślnie, strona doda wpis do tabeli zasad TTL. W przeciwnym razie na stronie wyświetli się komunikat o błędzie.
gcloud
Aby skonfigurować zasadę TTL, użyj polecenia firestore fields ttls
update
. Dodaj flagę --async
, aby zapobiec oczekiwaniu interfejsu wiersza poleceń gcloud na zakończenie operacji.
gcloud firestore fields ttls update ttl_field --collection-group=collection_group_name --enable-ttl
Czas włączenia zasady TTL
Włączenie zasady TTL może potrwać co najmniej 10 minut, nawet w przypadku pustej bazy danych. Po rozpoczęciu operacji zamknięcie terminala nie powoduje 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.
Wybierz wymaganą bazę danych z listy baz danych.
W menu nawigacyjnym kliknij Czas do publikacji.
Konsola zawiera listę zasad TTL Twojej bazy danych wraz ze stanem każdej z nich.
gcloud
Aby skonfigurować zasadę TTL, użyj polecenia firestore fields ttls list
. Poniższe polecenie wyświetla wszystkie zasady dotyczące TTL.
gcloud firestore fields ttls list
Aby wyświetlić zasady TTL w ramach określonej grupy kolekcji, wykonaj te czynności:
gcloud firestore fields ttls list --collection-group=collection_group_name
Wyświetlanie szczegółów operacji
Aby wyświetlić więcej informacji o zasadach TTL, które mają stan CREATING
, możesz użyć interfejsu wiersza poleceń gcloud.
Aby wyświetlić wszystkie trwające i niedawno zakończone operacje, użyj polecenia operations list
:
gcloud firestore operations list
Odpowiedź zawiera szacowany postęp operacji.
Wyłączanie zasady TTL
Aby wyłączyć politykę TTL, wykonaj te czynności:
Google Cloud Console
W konsoli Google Cloud otwórz stronę Bazy danych.
Wybierz wymaganą bazę danych z listy baz danych.
W menu nawigacyjnym kliknij Czas dożywotności.
W tabeli zasad TTL odszukaj wiersz zasady TTL. W wierszu tabeli kliknij przycisk Usuń (kosz).
Potwierdź, klikając Usuń.
Konsola wróci do strony Czas życia. W przypadku powodzenia Cloud Firestore usuwa zasadę TTL z tabeli.
gcloud
1. Aby skonfigurować zasadę TTL, użyj polecenia firestore fields ttls update
. Dodaj flagę --async
, aby zapobiec oczekiwaniu interfejsu wiersza poleceń gcloud na zakończenie operacji.
gcloud firestore fields ttls update ttl_field --collection-group=collection_group_name --disable-ttl
Monitorowanie usuwania wartości TTL
Aby wyświetlić dane o usunięciu elementów na podstawie wartości TTL, możesz użyć Cloud Monitoring. Cloud Firestore udostępnia te dane dotyczące wartości TTL:
Typ danych | Nazwa danych | Opis danych |
---|---|---|
firestore.googleapis.com/document/ttl_deletion_count | Liczba usunięcia z czasem życia |
Łączna liczba dokumentów usuniętych przez zasady TTL. |
firestore.googleapis.com/document/ttl_expiration_to_deletion_delays | Opóźnienia w usuwaniu po upływie czasu życia |
Czas między wygaśnięciem dokumentu zgodnie z zasadą TTL a jego faktycznym usunięciem. |
Aby skonfigurować panel z danymi Cloud Firestore, zapoznaj się z artykułem Zarządzanie panelem niestandardowym i Dodawanie widżetów do panelu.