Aby usunąć dane z bazy danych, użyj zarządzanej usługi usuwania zbiorczego. Ta funkcja umożliwia usuwanie co najmniej 1 grupy kolekcji.
Na tej stronie dowiesz się, jak zbiorczo usuwać dokumenty za pomocą zarządzanej usługi zbiorczego usuwania. Usługa Cloud Firestore zarządzanego usuwania zbiorczego jest dostępna za pomocą narzędzia wiersza poleceń gcloud i Cloud Firestore interfejsu API REST.
Zanim zaczniesz
Zanim zaczniesz korzystać z usługi zarządzanego usuwania zbiorczego, musisz wykonać te czynności:
- Aby usunąć wiele dokumentów, włącz płatności w projekcie Google Cloud. Tylko projekty Google Cloud z włączonymi płatnościami mogą korzystać z funkcji zbiorczego usuwania.
-
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 usuwania zbiorczego:
- Role Cloud Firestore:
Owner,Cloud Datastore OwnerlubCloud 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 korzystać z gcloud, skonfiguruj narzędzie wiersza poleceń i połącz się z projektem w jeden z tych sposobów:
Otwórz
gcloudw konsoli Google Cloud, korzystając z Cloud Shell.Sprawdź, czy
gcloudjest skonfigurowany na potrzeby właściwego projektu:gcloud config set project [PROJECT_ID]
Usuwanie danych zbiorczo
Operacja zbiorczego usuwania najpierw znajduje wszystkie odpowiednie dokumenty w bazie danych i usuwa je partiami. Możesz nadal wysyłać zapytania dotyczące tych dokumentów i je czytać, ale wyniki mogą się różnić w zależności od postępów. Usuwanie zbiorcze nie usuwa żadnych dokumentów dodanych ani zmodyfikowanych po rozpoczęciu operacji.
Zbiorcze usuwanie konkretnych 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ę. Nazwy operacji możesz używać do usuwania i anulowania operacji oraz sprawdzania ich stanu.
Nazwy operacji mają prefiks projects/[PROJECT_ID]/databases/[DATABASE_ID]/operations/, np.:
projects/my-project/databases/(default)/operations/ASA1MTAwNDQxNAgadGx1YWZlZAcSeWx0aGdpbi1zYm9qLW5pbWRhEgopEg
Podczas określania nazwy operacji dla poleceń describe, cancel i delete możesz jednak pominąć prefiks.
Wyświetlanie listy wszystkich operacji zbiorczego usuwania
gcloud
Użyj polecenia operations list, aby wyświetlić wszystkie trwające i niedawno zakończone operacje, w tym operacje zbiorczego usuwania:
gcloud firestore operations list
Sprawdzanie stanu operacji
gcloud
Użyj polecenia operations describe, aby wyświetlić stan operacji zbiorczego usuwania.
gcloud firestore operations describe [OPERATION_NAME]
Szacowanie czasu ukończenia
Żądanie stanu długo trwającej operacji zwraca wskaźniki 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ć.workCompletedwyś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 przetworzone. Może ona być większa niż wartośćworkEstimated.
Aby uzyskać przybliżone oszacowanie postępu, podziel workCompleted przez workEstimated. Ta
prognoza może być niedokładna, 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ąć ukoń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 za projekt Google Cloud.
W przypadku operacji zbiorczego usuwania naliczane są opłaty za odczyt i usuwanie dokumentów według stawek podanych w Cloud Firestore cenniku. 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, dopóki nie zostaną zakończone. Podobnie odczyty i usunięcia wykonane podczas operacji zbiorczego usuwania są uwzględniane w wykorzystaniu bezpłatnego poziomu 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 rozliczanych. Na stronie Raporty 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, które mogą spowalniać zapytania.