Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Zarządzaj przechowywaniem danych za pomocą zasad TTL

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

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

Przegląd czasu życia

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

cennik

Operacje usuwania TTL są wliczane do kosztów usuwania dokumentów. Cennik operacji usuwania można znaleźć w cenniku Cloud Firestore .

Granice i ograniczenia

  • Tylko jedno pole na grupę kolekcji może być oznaczone jako pole TTL.
  • W sumie dozwolonych jest 200 konfiguracji na poziomie pola. Jedna konfiguracja pola może zawierać wiele konfiguracji dla tego samego pola. Na przykład wykluczenie z indeksowania pojedynczego pola i zasada TTL dla tego samego pola liczą się jako jedna konfiguracja pola w ramach limitu.

usunięcie TTL

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

  • Usuwanie przez TTL nie jest procesem natychmiastowym. Wygasłe dokumenty nadal pojawiają się w zapytaniach i żądaniach wyszukiwania, dopóki proces TTL nie usunie ich. TTL handluje terminowością usuwania na rzecz obniżenia całkowitego kosztu posiadania dla usunięcia. Dane są zazwyczaj usuwane w ciągu 72 godzin od daty ich wygaśnięcia.

  • Usunięcie dokumentu za pośrednictwem 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 zauważyć, że to masowe usuwanie również nie jest natychmiastowe i zależy od ilości danych dostępnych dla tej grupy kolekcji.

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

  • Usunięcia nie są dokonywane transacyjnie. Dokumenty z tym samym czasem wygaśnięcia niekoniecznie są usuwane w tym samym czasie. Jeśli wymagane jest takie zachowanie, wykonaj usuwanie przy użyciu biblioteki klienta.

  • Cloud Firestore zawsze będzie honorować ostatnie pole TTL, aby określić datę wygaśnięcia. Na przykład, jeśli wygasły, ale jeszcze nieusunięty dokument ma zaktualizowane pole TTL do późniejszej daty, dokument nie utraci ważności i zostanie użyta nowa data.

  • TTL ma na celu zminimalizowanie wpływu na inne działania bazy danych. Usunięcia spowodowane przez TTL są traktowane z niższym priorytetem. Stosowane są również inne strategie mające na celu wygładzenie skoków ruchu z usunięć opartych na TTL.

  • Usunięcie przez TTL wysyła powiadomienia push do aktywnych odbiorników 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 sygnaturą czasową, indeksowanie pola może wpłynąć na wydajność przy wyższym natężeniu ruchu. Indeksowanie pola znacznika czasu może spowodować utworzenie punktów aktywnych , co jest sprzeczne z najlepszymi praktykami. Hotspoty charakteryzują się wysoką szybkością odczytu, zapisu i usuwania w wąskim zakresie dokumentów.

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

Uprawnienia

Podmiot zabezpieczeń konfigurujący zasady TTL wymaga następujących uprawnień w projekcie:

  • 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.list i datastore.operations.get .

Aby uzyskać informacje o rolach, które przypisują te uprawnienia, zobacz Role Cloud Firestore Identity and Access Management .

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 zasady TTL

Tworząc zasady TTL, wyznaczasz 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 możesz wyznaczyć pole, które planujesz dodać później. Wartość pola TTL może być czasem w przyszłości, teraz lub w przeszłości. Jeśli wartością jest czas w przeszłości, dokument kwalifikuje się natychmiast do usunięcia.

Na przykład możesz utworzyć zasady TTL z polem expireAt , które następnie dodasz do istniejących dokumentów.

Wykonaj poniższe czynności, aby utworzyć zasady TTL:

Konsola Google Cloud

  1. Przejdź do strony czasu życia Cloud Firestore w konsoli Google Cloud Platform.

    Przejdź do strony Czas życia

  2. Kliknij Utwórz zasady .

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

  4. Kliknij Utwórz .

Konsola powróci do strony Czas życia . Jeśli operacja zostanie pomyślnie uruchomiona, strona dodaje 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ć zasady TTL. Dodaj flagę --async , aby interfejs wiersza polecenia gcloud nie czekał 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 więcej. 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 Google Cloud

Przejdź do strony czasu życia Cloud Firestore w konsoli Google Cloud Platform.

Przejdź do strony Czas życia

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

gcloud

Użyj polecenia firestore fields ttls list , aby skonfigurować zasady TTL. Następujące 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 opcji:

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

Zobacz szczegóły operacji

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

Użyj polecenia operations list aby zobaczyć wszystkie uruchomione i ostatnio zakończone operacje:

gcloud firestore operations list

Odpowiedź zawiera oszacowanie postępu operacji.

Wyłącz zasady TTL

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

Konsola Google Cloud

  1. Przejdź do strony czasu życia Cloud Firestore w konsoli Google Cloud Platform.

    Przejdź do strony Czas życia

  2. W tabeli zasad TTL znajdź wiersz zasady TTL. W tym wierszu tabeli kliknij przycisk Usuń (kosz).

  3. Potwierdź klikając Usuń .

Konsola powróci do strony Czas życia . Jeśli się powiedzie, Cloud Firestore usuwa zasadę TTL z tabeli.

gcloud

Użyj polecenia firestore fields ttls update , aby skonfigurować zasady TTL. Dodaj flagę --async , aby interfejs wiersza polecenia gcloud nie czekał na zakończenie operacji.

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

Monitoruj usuwanie TTL

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

Liczba usunięć czasu życia

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

Opóźnienia czasu wygaśnięcia do usunięcia

Czas, jaki upłynął między wygaśnięciem dokumentu zgodnie z zasadą 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 .