Aby usunąć dane z bazy danych, użyj zarządzanej usługi usuwania zbiorczego. Ta funkcja umożliwia usuwanie danych z co najmniej 1 grupy kolekcji.
Na tej stronie dowiesz się, jak zbiorczo usuwać dokumenty za pomocą zarządzanej usługi zbiorczego usuwania. Usługa zarządzanego zbiorczego usuwania jest dostępna za pomocą narzędzia wiersza poleceń gcloud
i Cloud Firestore interfejsu API REST.Cloud Firestore
Zanim zaczniesz
Zanim zaczniesz korzystać z usługi zarządzanego usuwania zbiorczego, musisz wykonać te czynności:
- Włącz płatności w projekcie Google Cloud. Tylko projekty Google Cloud z włączonymi płatnościami mogą korzystać z funkcji usuwania zbiorczego.
-
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:
- Role Cloud Firestore:
Owner
,Cloud Datastore Owner
lubCloud Datastore Bulk Admin
.
- Role 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 używać 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, klikając Cloud Shell.Sprawdź, czy
gcloud
jest skonfigurowany na potrzeby właściwego projektu:gcloud config set project [PROJECT_ID]
Usuwanie danych zbiorczo
Operacja zbiorczego usuwania najpierw wyszukuje wszystkie odpowiednie dokumenty w bazie danych i usuwa je partiami. Możesz nadal wysyłać zapytania dotyczące tych dokumentów i je odczytywać, ale wyniki mogą się różnić w zależności od postępów. Zbiorcze usuwanie nie powoduje usunięcia żadnych dokumentów dodanych lub zmodyfikowanych po rozpoczęciu operacji.
Usuwanie zbiorcze 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 podkolekcji, 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 usługa Cloud Firestore przypisuje jej unikalną 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/
, np.:
projects/my-project/databases/(default)/operations/ASA1MTAwNDQxNAgadGx1YWZlZAcSeWx0aGdpbi1zYm9qLW5pbWRhEgopEg
Możesz jednak pominąć prefiks podczas określania nazwy operacji dla 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 usuwania zbiorczego, użyj polecenia operations describe
.
gcloud firestore operations describe [OPERATION_NAME]
Szacowanie czasu ukończenia
Żądanie stanu długo trwającej operacji zwraca dane workEstimated
i workCompleted
. Każde z tych danych jest zwracane w postaci liczby bajtów i liczby dokumentów:
workEstimated
– szacowana łączna liczba bajtów i dokumentów, które zostaną przetworzone w ramach operacji. Cloud Firestore może pominąć te dane, jeśli nie może ich oszacować.workCompleted
wyświetla liczbę bajtów i dokumentów usuniętych do tej pory. Po zakończeniu operacji wartość 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ępów, podziel workCompleted
przez workEstimated
. Ten szacunek może być niedokładny, 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. Anulowanie operacji zbiorczego usuwania nie powoduje przywrócenia usuniętych dokumentów.
Usuwanie operacji
Użyj polecenia gcloud firestore operations delete
, aby usunąć zakończoną operację z listy ostatnich operacji. 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 usługi zarządzanego usuwania zbiorczego, musisz włączyć płatności w projekcie Google Cloud.
W przypadku operacji zbiorczego usuwania opłaty są naliczane za odczyt i usuwanie dokumentów według stawek podanych w Cloud Firestorecenniku. Operacje zbiorczego usuwania powodują odczyt 1 wpisu indeksu na znaleziony dokument i 1 operację usuwania na usunięty dokument. Opłata za 1 operację odczytu jest naliczana za odczytanie maksymalnie 1000 pozycji indeksu. Na przykład w przypadku operacji zbiorczego usuwania, która usunęła 1500 dokumentów, opłata zostanie naliczona za 2 odczyty dokumentów i 1500 usunięć dokumentów.Pamiętaj, że Cloud Firestore opłaty za wykonaną pracę. Jeśli operacja zostanie anulowana lub nie powiedzie się z powodu błędu użytkownika, zostanie naliczona opłata za postęp. Cloud Firestore nie będzie naliczać opłat za odczyty ani usunięcia dokumentów, które nie zostaną ostatecznie usunięte, np. dokumentów zmodyfikowanych po rozpoczęciu operacji usuwania. Koszt zostanie przypisany w dniu zakończenia operacji.
Operacje zbiorczego usuwania nie wywołują alertów dotyczących Google Cloudbudżetu do momentu zakończenia. Podobnie odczyty i usunięcia wykonane podczas operacji zbiorczego usuwania są stosowane do wykorzystania bezpłatnego limitu po zakończeniu operacji. Operacje zbiorczego usuwania nie mają wpływu na wykorzystanie widoczne w sekcji wykorzystania w konsoli.
Wyświetlanie kosztów usuwania zbiorczego
Operacje zbiorczego usuwania stosują etykietę goog-firestoremanaged:bulkdelete
do operacji podlegających opłacie. Na stronie raportów dotyczących 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.