Zarządzaj przechowywaniem danych za pomocą zasad TTL

Na tej stronie opisano, jak używać konsoli Google Cloud Platform i interfejsu CLI Google Cloud do konfigurowania zasad czasu wygaśnięcia (TTL). Zanim przeczytasz tę stronę, powinieneś zrozumieć model danych Cloud Firestore .

Przegląd czasu życia

Użyj zasad czasu życia (TTL), aby automatycznie usuwać nieaktualne dane z baz danych. Polityka TTL wyznacza dane pole jako termin ważności dokumentów w danej grupie inkasowej. Dzięki TTL możesz obniżyć koszty przechowywania, usuwając przestarzałe dane. Dane są zazwyczaj usuwane w ciągu 24 godzin od daty ich wygaśnięcia.

cennik

Operacje usuwania TTL wliczają się do kosztów usunięcia dokumentu. Aby zapoznać się z cennikiem operacji usuwania, zobacz Cennik Cloud Firestore .

Granice i ograniczenia

  • Tylko jedno pole na grupę kolekcji może być oznaczone jako pole TTL.
  • Dozwolonych jest łącznie 200 konfiguracji na poziomie pola. Jedna konfiguracja pola może zawierać wiele konfiguracji dla tego samego pola. Na przykład zwolnienie z indeksowania pojedynczego pola i zasady TTL dotyczące tego samego pola wliczają się do limitu jako konfiguracja jednego pola.
  • W przypadku klientów Firestore w trybie Datastore nie można używać TTL w trybie współbieżności Optymistyczny z grupami jednostek . Następnie rozważ zmianę trybu współbieżności.

Usunięcie TTL

Zwróć uwagę na następujące kluczowe zachowania usuwania sterowanego TTL:

  • Usuwanie poprzez TTL nie jest procesem natychmiastowym. Wygasłe dokumenty nadal pojawiają się w zapytaniach i żądaniach wyszukiwania, dopóki proces TTL ich nie usunie. TTL zamienia terminowość usuwania na korzyść obniżonego całkowitego kosztu posiadania usuniętych danych. Dane są zazwyczaj usuwane w ciągu 24 godzin od daty ich wygaśnięcia.

  • Usunięcie dokumentu poprzez 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 pamiętać, że to usunięcie zbiorcze również nie jest natychmiastowe i zależy od ilości danych dostępnych dla tej grupy kolekcji.

  • Jeśli dokument ma datę wygaśnięcia w przeszłości i dodasz do kolekcji nową politykę TTL, dokument zostanie usunięty w ciągu 24 godzin od zakończenia konfiguracji zasady TTL i jej aktywowania.

  • TTL niekoniecznie usuwa dokumenty w tej samej kolejności, w jakiej znajdują się ich znaczniki czasu wygaśnięcia.

  • Usunięcia nie są dokonywane transakcyjnie. Dokumenty o tym samym terminie ważności nie muszą być usuwane w tym samym czasie. Jeśli potrzebujesz takiego zachowania, wykonaj usuwanie przy użyciu biblioteki klienta.

  • Cloud Firestore zawsze będzie uwzględniać najnowsze pole TTL w celu ustalenia daty wygaśnięcia. Na przykład, jeśli wygasły, ale jeszcze nie usunięty dokument ma zaktualizowane pole TTL na późniejszą datę, dokument nie utraci ważności i zostanie zastosowana nowa data.

  • TTL zaprojektowano tak, aby zminimalizować wpływ na inne działania związane z bazą danych. Usunięcia sterowane przez TTL są traktowane z niższym priorytetem. Stosowane są również inne strategie mające na celu złagodzenie skoków ruchu wynikających z usuwania na podstawie TTL.

  • Usunięcie za pomocą TTL wywołuje wszystkie aktywne odbiorniki migawek i wyzwala wyzwalacze Cloud Functions Cloud Firestore.

Pola i indeksy TTL

Pole TTL może być indeksowane lub nieindeksowane. Ponieważ jednak pole TTL jest znacznikiem czasu, indeksowanie pola może mieć wpływ na wydajność przy większym natężeniu ruchu. Indeksowanie pola sygnatury czasowej może spowodować utworzenie punktów aktywnych , co jest sprzeczne z najlepszymi praktykami. Hotspoty charakteryzują się dużą szybkością odczytu, zapisu i usuwania w wąskim zakresie dokumentów.

Domyślnie Cloud Firestore tworzy indeks jednopolowy dla wszystkich pól. Można utworzyć wykluczenie indeksu pojedynczego pola, aby wyłączyć indeksy w polu TTL.

Uprawnienia

Zleceniodawca konfigurujący politykę TTL wymaga w projekcie następujących uprawnień:

  • Wyświetlanie zasad TTL wymaga uprawnień datastore.indexes.list i datastore.indexes.get .
  • Modyfikowanie zasad TTL wymaga uprawnienia datastore.indexes.update .
  • Sprawdzenie statusu operacji TTL wymaga datastore.operations.list i datastore.operations.get .

Aby zapoznać się z rolami przypisującymi te uprawnienia, zobacz Role zarządzania tożsamością i dostępem w Cloud Firestore .

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 politykę TTL

Tworząc zasadę TTL, wyznaczasz pole dokumentu jako czas wygaśnięcia dokumentów w grupie kolekcji.

TTL używa określonego pola do identyfikacji dokumentów kwalifikujących się do usunięcia. To pole TTL musi być typu Date and time . Możesz wybrać pole, które już istnieje lub wyznaczyć pole, które planujesz dodać później.

Przed ustawieniem wartości pola TTL należy wziąć pod uwagę następujące kwestie:

  • Wartość pola TTL może oznaczać czas w przyszłości, teraźniejszość lub przeszłość. Jeśli wartość dotyczy czasu w przeszłości, dokument kwalifikuje się natychmiast do usunięcia. Możesz na przykład utworzyć zasadę TTL z polem expireAt , którą następnie dodasz do istniejących dokumentów.

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

Aby utworzyć zasadę TTL, wykonaj poniższe czynności:

Konsola chmurowa Google

  1. W konsoli Google Cloud Platform przejdź do strony Bazy danych .

    Przejdź do Baz danych

  2. Wybierz żądaną bazę danych z listy baz danych.

  3. W menu nawigacyjnym kliknij opcję Czas wygaśnięcia .

  4. Kliknij opcję Utwórz politykę .

  5. Wprowadź nazwę grupy kolekcji i nazwę pola sygnatury czasowej.

  6. Kliknij opcję Utwórz .

Konsola powraca do strony Czas wygaśnięcia . Jeśli operacja rozpocznie się pomyślnie, strona doda 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ć politykę TTL. Dodaj flagę --async , aby zapobiec oczekiwaniu interfejsu wiersza polecenia gcloud 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 dłużej. 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 chmurowa Google

  1. W konsoli Google Cloud Platform przejdź do strony Bazy danych .

    Przejdź do Baz danych

  2. Wybierz żądaną bazę danych z listy baz danych.

  3. W menu nawigacyjnym kliknij opcję Czas wygaśnięcia .

Konsola wyświetla zasady TTL dla Twojej bazy danych i zawiera status każdej zasady.

gcloud

Użyj polecenia firestore fields ttls list aby skonfigurować politykę TTL. Poniższe 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 poleceń:

   gcloud firestore fields ttls list  --collection-group=collection_group_name
   

Wyświetl szczegóły operacji

Możesz użyć interfejsu wiersza polecenia gcloud, aby wyświetlić więcej szczegółów na temat zasady TTL, która jest w stanie CREATING .

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

gcloud firestore operations list

Odpowiedź zawiera szacunkowy postęp operacji.

Wyłącz zasadę TTL

Wykonaj poniższe czynności, aby wyłączyć zasadę TTL.

Konsola chmurowa Google

  1. W konsoli Google Cloud Platform przejdź do strony Bazy danych .

    Przejdź do Baz danych

  2. Wybierz żądaną bazę danych z listy baz danych.

  3. W menu nawigacyjnym kliknij opcję Czas wygaśnięcia .

  4. W tabeli zasad TTL znajdź wiersz dotyczący zasady TTL. W tym wierszu tabeli kliknij przycisk Usuń (kosz).

  5. Potwierdź klikając Usuń .

Konsola powraca do strony Czas wygaśnięcia . Jeśli operacja się powiedzie, Cloud Firestore usunie zasadę TTL z tabeli.

gcloud

1. Użyj polecenia firestore fields ttls update , aby skonfigurować politykę TTL. Dodaj flagę --async , aby zapobiec oczekiwaniu interfejsu wiersza polecenia gcloud na zakończenie operacji.

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

Monitoruj usunięcia TTL

Możesz użyć Cloud Monitoring, aby wyświetlić wskaźniki dotyczące usunięć na podstawie TTL. Cloud Firestore udostępnia następujące wskaźniki TTL:

firestore.googleapis.com/document/ttl_deletion_count Liczba usunięć według czasu wygaśnięcia

Całkowita liczba dokumentów usuniętych przez zasady czasu wygaśnięcia (TTL).

firestore.googleapis.com/document/ttl_expiration_to_deletion_delays Wygaśnięcie czasu wygaśnięcia opóźnień usuwania

Czas, który upłynął pomiędzy wygaśnięciem dokumentu zgodnie z zasadami 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 .