Zarządzanie przechowywaniem danych za pomocą zasad TTL

Na tej stronie dowiesz się, jak korzystać z konsoli Google Cloud Platform i Google Cloud CLI aby skonfigurować zasady dotyczące czasu życia danych (TTL). Zanim przeczytasz tę stronę, musisz zapoznać się z Model danych Cloud Firestore.

Przegląd czasu transmisji na żywo

Automatyczne używanie zasad TTL możesz usuwać z baz danych nieaktualne dane. Zasada TTL wyznacza 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 od daty jej wygaśnięcia.

Ceny

Operacje usuwania TTL są wliczane do kosztów usuwania dokumentów. Informacje o cenach operacji usuwania znajdziesz w cenniku Cloud Firestore.

Ograniczenia

  • Jako pole TTL można oznaczyć tylko 1 pole na grupę kolekcji.
  • Dozwolonych jest maksymalnie 200 konfiguracji na poziomie pola. Konfiguracja 1 pola może zawierać wiele konfiguracji tego samego pola. Przykład: wykluczenie indeksowania pojedynczego pola i zasada TTL dla tego samego pola liczą się jako konfiguracji jednego pola.
  • 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ównoczesności na tryb optymalizacji równoczesności.

Usunięcie wartości TTL

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

  • Usuwanie przez TTL nie jest procesem natychmiastowym. Dokumenty, które utraciły ważność będą nadal pojawiać się w zapytaniach i żądaniach wyszukiwania, dopóki nie nastąpi proces TTL powoduje ich usunięcie. 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.

  • Wartość TTL nie zawsze usuwa dokumenty w tej samej kolejności sygnatury czasowe ich wygaśnięcia.

  • Usuwanie danych nie odbywa się w sposób transakcyjny. Dokumenty o tej samej dacie ważności nie zawsze są usuwane razem. Jeśli jest to wymagane usuń za pomocą biblioteki klienta.

  • Cloud Firestore zawsze będzie przestrzegać ostatniego pola TTL w celu określenia utraty ważności. Jeśli na przykład dokument, który wygasł, ale nie został jeszcze usunięty, zawiera zmienionego pola TTL na późniejszą datę, dokument nie wygaśnie, a zostanie użyta nowa data.

  • Wartość TTL została zaprojektowana tak, aby zminimalizować wpływ na inne działania baz danych. Usunięte oparte na TTL są traktowane z niższym 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 zrzutów i aktywatory funkcji w Cloud Functions Aktywatory Cloud Firestore.

Pola i indeksy TTL

Pole TTL może być indeksowane lub nieindeksowane. Ponieważ jednak pole TTL jest jednak sygnatura czasowa, indeksowanie pola może wpłynąć na skuteczność przy większym odsetku 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 z jednym polem dla wszystkich pól. Dostępne opcje utworzyć wykluczenie z indeksu pojedynczego pola aby wyłączyć indeksy w polu TTL.

Uprawnienia

Podmiot zabezpieczeń, który konfiguruje zasadę TTL, wymaga następujących uprawnień w projekt:

  • 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 którymi przypisano te uprawnienia, znajdziesz w artykule na temat ról Cloud Firestore Identity and Access Management.

Zanim zaczniesz

Zanim zaczniesz zarządzać zasadami TTL za pomocą interfejsu wiersza poleceń gcloud, skorzystaj z interfejsu gcloud components update , by zaktualizować komponenty do najnowszej dostępnej wersji:

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. 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 przypadać w przyszłości, teraz lub w przeszłości. Jeśli wartością jest czas w przeszłości, dokument będzie można natychmiast usunąć. 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, wykonaj te czynności:

Google Cloud Console

  1. W konsoli Google Cloud Platform 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.

  4. Kliknij Utwórz zasadę.

  5. Wpisz nazwę grupy kolekcji i nazwę pola sygnatury czasowej.

  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ł. pojawi 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 Platform 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 wyświetli listę zasad TTL dla bazy danych oraz stanu.

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ć listę zasad TTL w określonej grupie kolekcji, użyj tego polecenia:

   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ć zasadę TTL, wykonaj te czynności:

Google Cloud Console

  1. W konsoli Google Cloud Platform 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.

  4. W tabeli zasad TTL znajdź wiersz zasady TTL. W ciągu wiersza tabeli, kliknij przycisk Usuń (kosz).

  5. Potwierdź, klikając Usuń.

Konsola powróci na stronę Czas życia danych. Po sukcesie Cloud Firestore usunie zasadę TTL z tabeli.

gcloud

1. Użyj 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 --disable-ttl
   

Monitorowanie usunięć TTL

Możesz użyć Cloud Monitoring, aby wyświetlić wskaźniki dotyczące usunięć opartych na TTL. Cloud Firestore udostępnia te wskaźniki dla 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 Wygaśnięcie czasu życia do opóźnień w usunięciu

Czas, który upłynął od wygaśnięcia dokumentu z pamięcią TTL zasad i czasu usunięcia.

Aby skonfigurować panel ze wskaźnikami Cloud Firestore, zapoznaj się z artykułem zarządzanie panelem niestandardowym oraz dodać widżety pulpitu.