Zarządzanie przechowywaniem danych za pomocą zasad TTL

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 lub BSON 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 i datastore.indexes.get.
  • Modyfikowanie zasad TTL wymaga uprawnienia datastore.indexes.update.
  • Sprawdzanie stanu operacji TTL wymaga datastore.operations.listdatastore.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

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

    Otwórz Bazy danych

  2. Na liście baz danych wybierz odpowiednią bazę danych.

  3. W menu nawigacyjnym kliknij Time-to-live (Czas życia).

  4. Kliknij Utwórz zasadę.

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

  6. 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

  1. Zainstaluj i zainicjuj interfejs wiersza poleceń gcloud CLI.

  2. 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

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

    Otwórz Bazy danych

  2. Na liście baz danych wybierz odpowiednią bazę danych.

  3. 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

  1. Zainstaluj i zainicjuj interfejs wiersza poleceń gcloud CLI.

  2. 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

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

    Otwórz Bazy danych

  2. Na liście baz danych wybierz odpowiednią bazę danych.

  3. W menu nawigacyjnym kliknij Time-to-live (Czas życia).

  4. W tabeli zasad TTL odszukaj wiersz z zasadami TTL. W tym wierszu tabeli kliknij przycisk Usuń (kosz).

  5. 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

  1. Zainstaluj i zainicjuj interfejs wiersza poleceń gcloud CLI.

  2. 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.