Aby usunąć dane z bazy danych, użyj zarządzanej usługi zbiorczego usuwania. Ta funkcja obsługuje usuwanie z co najmniej 1 grupy kolekcji.
Na tej stronie opisano, jak zbiorczo usuwać dokumenty za pomocą zarządzanej usługi zbiorczego usuwania. Zarządzana usługa zbiorczego usuwania Cloud Firestore jest
dostępna za pomocą narzędzia wiersza poleceń gcloud
i interfejsu Cloud Firestore REST API.
Zanim zaczniesz
Zanim zaczniesz korzystać z zarządzanej usługi zbiorczego usuwania, musisz wykonać te czynności:
- Aby zbiorczo usuwać dokumenty, włącz płatności w projekcie Google Cloud. Tylko Google Cloud projekty z włączonymi płatnościami mogą korzystać z funkcji zbiorczego usuwania.
-
Upewnij się, że Twoje konto ma uprawnienia wymagane w Cloud Firestore. Jeśli jesteś właścicielem projektu, Twoje konto ma wymagane uprawnienia. W przeciwnym razie te role przyznają uprawnienia wymagane do wykonywania operacji zbiorczego usuwania:
- Cloud Firestore role:
Owner,Cloud Datastore Owner, lubCloud Datastore Bulk Admin
- Cloud Firestore role:
Konfigurowanie gcloud w projekcie
Operacje zbiorczego usuwania możesz inicjować w konsoli Google Cloud lub za pomocą narzędzia wiersza poleceń gcloud. Aby używać gcloud, skonfiguruj narzędzie wiersza poleceń i połącz się z projektem w jeden z tych sposobów:
Uzyskaj dostęp do
gcloudz konsoli Google Cloud za pomocą Cloud Shell.Upewnij się, że
gcloudjest skonfigurowane w odpowiednim projekcie:gcloud config set project [PROJECT_ID]
Zbiorcze usuwanie danych
Operacja zbiorczego usuwania najpierw znajduje wszystkie odpowiednie dokumenty w bazie danych, a następnie usuwa je partiami. Możesz nadal wysyłać zapytania do tych dokumentów i je odczytywać, ale wyniki mogą się różnić w zależności od postępu. Zbiorcze usuwanie nie powoduje usunięcia dokumentów dodanych lub zmodyfikowanych po rozpoczęciu operacji.
Zbiorcze usuwanie określonych grup kolekcji
gcloud
Aby zbiorczo usunąć określone grupy kolekcji, użyj flagi
--collection-ids.
Operacja usuwa tylko grupy kolekcji o podanych identyfikatorach.
Grupa kolekcji obejmuje wszystkie dokumenty i zagnieżdżone dokumenty (w dowolnej ścieżce) z określonymi grupami kolekcji.
gcloud firestore bulk-delete \ --collection-ids=[COLLECTION_GROUP_ID_1_OR_KIND_1],[COLLECTION_GROUP_ID_2_OR_KIND_2],[SUBCOLLECTION_GROUP_ID_1_OR_KIND_3] \ --database=[DATABASE]
restaurants w bazie danych cymbal. W każdym dokumencie restauracji znajduje się kilka zagnieżdżonych kolekcji podrzędnych, takich jak ratings, reviews i outlets. Aby zbiorczo usunąć grupy kolekcji restaurants i reviews, użyj tego polecenia:
gcloud firestore bulk-delete \ --collection-ids=restaurants,reviews \ --database='cymbal'
Zarządzanie operacjami zbiorczego usuwania
Po rozpoczęciu operacji zbiorczego usuwania Cloud Firestore przypisuje operacji unikalną nazwę. Za pomocą nazwy operacji możesz ją usunąć, anulować lub sprawdzić jej stan.
Nazwy operacji mają prefiks projects/[PROJECT_ID]/databases/[DATABASE_ID]/operations/, na przykład:
projects/my-project/databases/(default)/operations/ASA1MTAwNDQxNAgadGx1YWZlZAcSeWx0aGdpbi1zYm9qLW5pbWRhEgopEg
Podczas określania nazwy operacji w przypadku poleceń describe, cancel i delete możesz jednak pominąć prefiks.
Wyświetlanie listy wszystkich operacji zbiorczego usuwania
gcloud
Aby zobaczyć wszystkie trwające i
ostatnio zakończone operacje, w tym operacje zbiorczego usuwania, użyj polecenia operations list:
gcloud firestore operations list
Sprawdzanie stanu operacji
gcloud
Aby wyświetlić stan
operacji zbiorczego usuwania, użyj polecenia operations describe.
gcloud firestore operations describe [OPERATION_NAME]
Szacowanie czasu zakończenia
Żądanie stanu długo trwającej operacji zwraca dane workEstimated i workCompleted. Każda z tych danych jest zwracana w postaci liczby bajtów i liczby dokumentów:
workEstimatedpokazuje szacunkową łączną liczbę bajtów i dokumentów, które zostaną przetworzone przez operację. Cloud Firestore może pominąć tę wartość, jeśli nie może jej oszacować.workCompletedpokazuje liczbę bajtów i dokumentów, które zostały dotychczas usunięte. Po zakończeniu operacji wartość ta pokazuje łączną liczbę bajtów i dokumentów, które zostały faktycznie przetworzone. Może być ona większa niż wartośćworkEstimated.
Aby uzyskać przybliżone oszacowanie postępu, podziel workCompleted przez workEstimated. To oszacowanie może być niedokładne, ponieważ zależy od opóźnionego zbierania statystyk.
Anulowanie operacji
gcloud
Aby zatrzymać trwającą operację
, użyj polecenia operations cancel:
gcloud firestore operations cancel [OPERATION_NAME]
Anulowanie trwającej operacji nie powoduje jej cofnięcia. Anulowana operacja zbiorczego usuwania nie przywraca usuniętych dokumentów.
Usuwanie operacji
Aby usunąć zakończoną operację z listy ostatnich operacji, użyj polecenia gcloud firestore operations delete. Aby anulować trwającą operację, użyj wcześniejszej operacji anulowania.
gcloud firestore operations delete [OPERATION_NAME]
Rozliczenia i ceny operacji zbiorczego usuwania
Zanim zaczniesz korzystać z zarządzanej usługi zbiorczego usuwania, musisz włączyć płatności w projekcie Google Cloud.
Operacje zbiorczego usuwania są rozliczane za odczyty i usuwanie dokumentów według stawek podanych w Cloud Firestore cenniku. Operacje zbiorczego usuwania powodują wykonanie 1 odczytu wpisu indeksu na każdy znaleziony dokument i 1 operacji usuwania na każdy usunięty dokument. Za odczyt do 1000 wpisów indeksu naliczana jest 1 operacja odczytu. Na przykład w przypadku operacji zbiorczego usuwania, która usunęła 1500 dokumentów, zostaną naliczone opłaty za 2 odczyty dokumentów i 1500 usunięć dokumentów.Pamiętaj, że Cloud Firestore nalicza opłaty za faktycznie wykonaną pracę. Jeśli operacja zostanie anulowana lub zakończy się niepowodzeniem z powodu błędu użytkownika, zostaną naliczone opłaty za wykonaną pracę. Cloud Firestore nie nalicza opłat za odczyty ani usuwanie dokumentów, które nie zostaną ostatecznie usunięte, np. dokumentów zmodyfikowanych po rozpoczęciu operacji usuwania. Koszt zostanie przypisany do dnia zakończenia operacji.
Operacje zbiorczego usuwania nie powodują wysyłania alertów o budżecie Google Cloud do momentu ich zakończenia. Podobnie odczyty i usuwanie wykonane podczas operacji zbiorczego usuwania są stosowane do bezpłatnego limitu wykorzystania po zakończeniu operacji. Operacje zbiorczego usuwania nie wpływają na wykorzystanie widoczne w sekcji wykorzystania w konsoli.
Wyświetlanie kosztów zbiorczego usuwania
Operacje zbiorczego usuwania stosują etykietę goog-firestoremanaged:bulkdelete do operacji płatnych. Na stronie raportów Rozliczeń usługi Google Cloud
możesz użyć tej etykiety, aby wyświetlić koszty związane z operacjami zbiorczego usuwania.
Sprawdzone metody
Unikaj pomijania usuniętych danych, co może spowolnić zapytania.