Aby usunąć dane z bazy danych, możesz skorzystać z usługi zbiorczego usuwania zarządzanej Cloud Firestore. Ta funkcja umożliwia usunięcie co najmniej 1 grupy kolekcji.
Na tej stronie dowiesz się, jak zbiorczo usunąć dokumenty Cloud Firestore za pomocą usługi zarządzanego zbiorczego usuwania. Usługa zbiorczego usuwania zarządzanego Cloud Firestore jest dostępna za pomocą narzędzia wiersza poleceń gcloud
i interfejsu API Cloud Firestore (REST, RPC).
Zanim zaczniesz
Zanim użyjesz usługi zbiorczego usuwania zarządzanego, musisz wykonać te czynności:
- Włącz płatności w projekcie Google Cloud. Funkcja zbiorczego usuwania jest dostępna tylko w przypadku projektów Google Cloud z włączonymi płatnościami.
-
Sprawdź, czy Twoje konto ma niezbędne uprawnienia do Cloud Firestore. Jeśli jesteś właścicielem projektu, Twoje konto ma wymagane uprawnienia. W przeciwnym razie te role przyznają niezbędne uprawnienia do operacji zbiorczego usuwania:
- Rola Cloud Firestore:
Owner
,Cloud Datastore Owner
lubCloud Datastore Bulk Admin
- Rola Cloud Firestore:
Konfigurowanie gcloud
w projekcie
Operacje zbiorczego usuwania możesz inicjować w konsoli Google Cloud lub za pomocą narzędzia wiersza poleceń gcloud
. Aby korzystać z gcloud
, skonfiguruj narzędzie wiersza poleceń i połącz się z projektem w jeden z tych sposobów:
Otwórz
gcloud
w konsoli Google Cloud za pomocą Cloud Shell.Sprawdź, czy
gcloud
jest skonfigurowany na potrzeby odpowiedniego projektu:gcloud config set project [PROJECT_ID]
Zbiorcze usuwanie danych
Operacja zbiorczego usuwania najpierw znajduje wszystkie odpowiednie dokumenty w bazie danych i usuwa je partiami. Nadal możesz przeglądać te dokumenty i wysyłać do nich zapytania, ale wyniki mogą się różnić w zależności od postępów w realizacji projektu. Zbiorcze usuwanie nie usunie żadnych 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 spowoduje usunięcie tylko tych grup kolekcji, które mają podane identyfikatory. Grupa kolekcji obejmuje wszystkie dokumenty i dokumenty zagnieżdżone (na dowolnej ścieżce) z określonymi grupami kolekcji.
gcloud beta 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]
Zarządzanie operacjami zbiorczego usuwania
Po rozpoczęciu operacji zbiorczego usuwania Cloud Firestore przypisuje do niej niepowtarzalną nazwę. Za pomocą nazwy operacji możesz ją usunąć, anulować lub sprawdzić jej stan.
Nazwy działań mają prefiks projects/[PROJECT_ID]/databases/[DATABASE_ID]/operations/
, na przykład:
projects/my-project/databases/(default)/operations/ASA1MTAwNDQxNAgadGx1YWZlZAcSeWx0aGdpbi1zYm9qLW5pbWRhEgopEg
Możesz jednak pominąć prefiks, podając nazwę operacji w przypadku poleceń describe
, cancel
i delete
.
Wyświetlanie listy wszystkich operacji zbiorczego usuwania
gcloud
Aby wyświetlić wszystkie trwające i niedawno 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 ukończenia
Żądanie dotyczące stanu długo trwającej operacji zwraca dane workEstimated
i workCompleted
. Każdy z tych rodzajów danych jest zwracany w postaci liczby bajtów i liczby dokumentów:
workEstimated
zawiera szacowaną łączną liczbę bajtów i dokumentów, które zostaną przetworzone przez operację. Cloud Firestore może pominąć te dane, jeśli nie może podać szacunków.workCompleted
pokazuje liczbę bajtów i dokumentów usuniętych do tej pory. Po zakończeniu operacji wartość pokazuje łączną liczbę bajtów i rzeczywistą liczbę przetworzonych dokumentów, która może być większa niż wartość parametruworkEstimated
.
Aby uzyskać przybliżony szacowany postęp, podziel workCompleted
przez workEstimated
. Ta szacowana wartość może być niedokładna, ponieważ zależy od opóźnionego zbierania statystyk.
Anulowanie operacji
gcloud
Aby przerwać bieżącą operację, użyj polecenia operations cancel
:
gcloud firestore operations cancel [OPERATION_NAME]
Anulowanie trwającej operacji nie powoduje jej cofnięcia. Anulowanie zbiorczego usunięcia nie spowoduje przywrócenia usuniętych dokumentów.
Usuwanie operacji
Aby usunąć z listy ostatnich operacji zakończoną operację, użyj polecenia gcloud firestore operations delete
. Aby anulować bieżącą operację, użyj wcześniejszej operacji anulowania.
gcloud firestore operations delete [OPERATION_NAME]
Rozliczenia i ceny operacji zbiorczego usuwania
Zanim użyjesz usługi zbiorczego usuwania zarządzanego, musisz włączyć płatności w projekcie Google Cloud.
Za operacje zbiorczego usuwania dokumentów naliczamy opłaty za odczyt i usunięcie dokumentów według stawek podanych w Cloud Firestore cenniku. Operacje zbiorczego usuwania powodują odczyt jednego wpisu indeksu na znaleziony dokument i jedną operację usunięcia na usunięty dokument. Opłata za jedną operację odczytu jest naliczana za maksymalnie 1000 odczytanych wpisów indeksu. Na przykład w przypadku operacji zbiorczego usuwania, która spowodowała usunięcie 1500 dokumentów, zostanie naliczona opłata za 2 odczyty i 1500 usunięć dokumentów.
Pamiętaj, że Cloud Firestore pobiera opłaty za faktycznie wykonaną pracę. Jeśli operacja zostanie anulowana lub nie powiedzie się z powodu błędu użytkownika, zostaniesz obciążony opłatą za wykonane czynności. Cloud Firestore nie pobiera opłat za odczyt ani usuwanie dokumentów, które nie zostały ostatecznie usunięte (np. dokumentów, które zostały zmodyfikowane po rozpoczęciu operacji usuwania). Koszt zostanie przypisany w dniu zakończenia operacji.
Operacje zbiorczego usuwania nie będą powodować wyświetlania alertów dotyczących Google Cloudbudżetu, dopóki nie zostaną ukończone. Podobnie odczyty i usunięcia wykonane podczas operacji zbiorczego usuwania są stosowane do bezpłatnej puli/bezpłatnego wykorzystania po zakończeniu operacji. Operacje zbiorczego usuwania nie będą miały wpływu na dane dotyczące wykorzystania wyświetlane w sekcji wykorzystania w konsoli.
Wyświetlanie kosztów zbiorczego usuwania
Operacje zbiorczego usuwania stosują etykietę goog-firestoremanaged:bulkdelete
do operacji naliczania opłat. Na stronie raportów usługi Google Cloud Billing możesz użyć tej etykiety, aby wyświetlić koszty związane z operacjami zbiorczego usuwania.
Sprawdzone metody
Unikaj pomijania usuniętych danych, które mogą spowolnić zapytania.