Zarządzanie przechowywaniem danych za pomocą zasad TTL

Na tej stronie opisano, jak skonfigurować zasady czasu życia (TTL) za pomocą konsoli Google Cloud i interfejsu wiersza poleceń Google Cloud. Zanim przeczytasz tę stronę, musisz zapoznać się z Model danych Cloud Firestore.

Omówienie czasu życia

Używaj zasad TTL, aby automatycznie usuwać nieaktualne dane z baz danych. Zasada TTL oznacza dane pole jako termin ważności dokumentów w danej grupie 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ływie ich daty ważności.

Ceny

Operacje usuwania TTL są wliczane do kosztów usuwania dokumentów. Informacje o cenach operacji usuwania, patrz cennik Cloud Firestore.

Limity i ograniczenia

  • Jako pole TTL można oznaczyć tylko jedno pole w grupie kolekcji.
  • Dozwolonych jest maksymalnie 200 konfiguracji na poziomie pola. Konfiguracja 1 pola może zawierać wiele konfiguracji tego samego pola. Na przykład: wykluczenie indeksowania pojedynczego pola i zasada TTL w tym samym polu są traktowane jako jedna konfiguracja pola w ramach limitu.
  • W przypadku klientów Firestore w trybie Datastore nie można używać wartości TTL z trybem równoczesności Optymalizacja dzięki grupom jednostek. Rozważ zmianę trybu równoległości na tryb równoległości z optymalizacją.

Usunięcie wartości TTL

Zwróć uwagę na te kluczowe zachowania usuwania opartego na TTL:

  • Usuwanie przez 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. Czas usuwania wartości TTL na rzecz obniżony całkowity koszt posiadania. Dane są zwykle usuwane w ciągu 24 godzin od daty ich wygaśnięcia.

  • Usunięcie dokumentu z ustawieniem TTL nie spowoduje usunięcia podkolekcji podrzędnych dokument.

  • Zastosowanie zasady TTL do istniejącej grupy kolekcji powoduje zbiorcze wyniki usunięcie wszystkich danych, które wygasły zgodnie z nowymi zasadami TTL. Notatka to usunięcie zbiorcze nie jest natychmiastowe i zależy od ilości danych, dla tej grupy kolekcji.

  • Jeśli dokument ma datę ważności w przeszłości i dodasz nową zasadę TTL do kolekcji, dokument zostanie usunięty w ciągu 24 godzin od chwili, gdy zasada TTL zakończy konfigurację i stanie się aktywna.

  • TTL niekoniecznie usuwa dokumenty w tej samej kolejności, w jakiej są one oznaczone datą wygaśnięcia.

  • Usuwanie danych nie odbywa się w sposób transakcyjny. Dokumenty z tym samym terminem ważności nie muszą być usuwane w tym samym czasie. Jeśli potrzebujesz takiego zachowania, wykonaj usunięcia 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ść minęł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.

  • Wartość TTL została zaprojektowana tak, aby zminimalizować wpływ na inne działania baz danych. Usunięcia spowodowane przez TTL są traktowane z mniejszym priorytetem. Inne strategie to a także zniwelować gwałtowne skoki ruchu z usuwania zależnego od wartości TTL.

  • Usuwanie przez wywołania TTL – wszystkie aktywne detektory i aktywatory zrzutów Cloud Functions Cloud Firestore reguły.

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 utworzyć hotspoty, co jest niezgodne ze sprawdzonymi metodami. Aktywne obszary są z wysokich wskaźników odczytu, zapisu i usuwania do wąskiego zakresu 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 datastore.indexes.list i datastore.indexes.get uprawnienia.
  • Modyfikowanie zasad TTL wymaga datastore.indexes.update uprawnienia.
  • Sprawdzanie stanu operacji TTL wymaga datastore.operations.list i datastore.operations.get.

Informacje o rolach z tymi uprawnieniami znajdziesz w artykule Cloud Firestore Role w zarządzaniu 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 datę wygaśnięcia czas dokumentów w grupie kolekcji.

TTL używa określonego pola do identyfikowania dokumentów, które mogą zostać usunięte. To pole TTL musi być typu Date and time. Możesz wybrać pole, które już istnieje lub możesz wyznaczyć pole, które chcesz dodać później.

Zanim ustawisz wartość pola TTL, weź pod uwagę te informacje:

  • 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. Na przykład: może utworzyć zasadę TTL z polem expireAt, które następnie dodasz do istniejące dokumenty.

  • Użycie innego typu danych lub nieustawienie wartości pola TTL spowoduje wyłączenie wartości TTL dla pojedynczego dokumentu.

Aby utworzyć zasadę TTL:

Google Cloud Console

  1. W konsoli Google Cloud otwórz stronę Bazy danych.

    Otwórz Bazy danych

  2. Wybierz wymaganą bazę danych z listy baz danych.

  3. W menu nawigacyjnym kliknij Czas do publikacji.

  4. Kliknij Utwórz zasadę.

  5. Wpisz nazwę grupy zbiorów i nazwę pola z datą i godziną.

  6. Kliknij Utwórz.

Konsola powróci na stronę Czas życia danych. Jeśli operacja zostanie uruchomiony, strona doda wpis do tabeli zasad TTL. W przeciwnym razie na stronie wyświetli się komunikat o błędzie.

gcloud

Korzystanie z firestore fields ttls update aby skonfigurować zasadę TTL. Dodaj flagę --async, aby zapobiec nie czekanie na zakończenie operacji w interfejsie wiersza poleceń gcloud.

 gcloud firestore fields ttls update
  ttl_field --collection-group=collection_group_name
  --enable-ttl 

Czas trwania włączania zasady TTL

Nawet w przypadku pustej bazy danych włączenie TTL może potrwać 10 minut lub dłużej . Po rozpoczęciu operacji zamknięcie terminala nie powoduje anulowania .

Wyświetl zasady TTL

Aby wyświetlić zasady TTL i ich stany, wykonaj te czynności:

Google Cloud Console

  1. W konsoli Google Cloud otwórz stronę Bazy danych.

    Otwórz Bazy danych

  2. Wybierz wymaganą bazę danych z listy baz danych.

  3. W menu nawigacyjnym kliknij Czas życia danych.

Konsola zawiera listę zasad TTL bazy danych wraz ze stanem każdej z nich.

gcloud

Użyj firestore fields ttls list aby skonfigurować zasadę TTL. Następujące polecenie wyświetla listę wszystkich wartości 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świetl szczegóły operacji

Więcej informacji o zasadzie TTL możesz wyświetlić za pomocą interfejsu wiersza poleceń gcloud w stanie CREATING.

Użyj polecenia operations list, aby wyświetlić wszystkie uruchomione i ostatnio zakończone operacje:

gcloud firestore operations list

Odpowiedź zawiera oszacowanie postępu operacji.

Wyłączanie zasady TTL

Aby wyłączyć politykę TTL, wykonaj te czynności:

Google Cloud Console

  1. W konsoli Google Cloud otwórz stronę Bazy danych.

    Otwórz stronę Bazy danych

  2. Wybierz wymaganą bazę danych z listy baz danych.

  3. W menu nawigacyjnym kliknij Czas do publikacji.

  4. W tabeli zasad TTL znajdź wiersz zasady TTL. W wierszu tabeli kliknij przycisk Usuń (ikona kosza).

  5. 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 treści 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ęć związanych z czasem życia

Łączna liczba dokumentów usuniętych przez zasady TTL.

firestore.googleapis.com/document/ttl_expiration_to_deletion_delays Opóźnienia między czasem życia a usunięciem

Czas między wygaśnięciem dokumentu zgodnie z zasadą TTL a jego rzeczywistym usunięciem.

Aby skonfigurować panel z danymi Cloud Firestore, zobacz zarządzanie panelem niestandardowym oraz dodać widżety panelu.