Użyj zarządzanej usługi usuwania zbiorczego, aby usunąć dane z bazy danych. Ta funkcja obsługuje usuwanie w co najmniej 1 grupie kolekcji.
Zarządzana usługa usuwania zbiorczego
Aby zbiorczo usunąć dokumenty, użyj zarządzanej usługi zbiorczego usuwania. Zarządzana usługa usuwania zbiorczego Cloud Firestore jest dostępna za pomocą narzędzia wiersza poleceń gcloud i interfejsu API REST Cloud Firestore.
Zanim zaczniesz
Zanim zaczniesz korzystać z zarządzanej usługi usuwania zbiorczego, musisz wykonać te czynności:
- Aby usunąć dokumenty zbiorczo, włącz płatności w projekcie Google Cloud. Funkcji usuwania zbiorczego można używać tylko w projektach 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 niezbędne uprawnienia do operacji usuwania zbiorczego dają te role:
- Role Cloud Firestore:
Owner,Cloud Datastore OwnerlubCloud Datastore Bulk Admin
- Role Cloud Firestore:
Konfigurowanie gcloud w projekcie
Operacje usuwania zbiorczego 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 na jeden z tych sposobów:
Uzyskaj dostęp do
gcloudz konsoli Google Cloud za pomocą Cloud Shell.Sprawdź, czy narzędzie
gcloudjest skonfigurowane dla właściwego projektu:gcloud config set project [PROJECT_ID]
Usuwanie danych za pomocą zarządzanej usługi usuwania zbiorczego
Operacja usuwania zbiorczego najpierw znajduje wszystkie odpowiednie dokumenty w bazie danych, a następnie usuwa je partiami. Nadal możesz wysyłać zapytania do tych dokumentów lub je odczytywać, ale wyniki mogą się różnić w zależności od postępów. Usuwanie zbiorcze 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 dokumenty zagnieżdżone (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 najwyższego poziomu 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 usuwania zbiorczego
Po rozpoczęciu operacji usuwania zbiorczego Cloud Firestore przypisuje jej unikalną nazwę. Możesz użyć nazwy operacji, aby ją usunąć, anulować lub sprawdzić jej stan.
Nazwy operacji są poprzedzone prefiksem projects/[PROJECT_ID]/databases/[DATABASE_ID]/operations/, na przykład:
projects/my-project/databases/(default)/operations/ASA1MTAwNDQxNAgadGx1YWZlZAcSeWx0aGdpbi1zYm9qLW5pbWRhEgopEg
Możesz jednak pominąć prefiks, gdy podajesz nazwę operacji w poleceniach describe, cancel i delete.
Wyświetlanie listy wszystkich operacji usuwania zbiorczego
gcloud
Aby wyświetlić wszystkie uruchomione i ostatnio zakończone operacje, w tym operacje usuwania zbiorczego, 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]
Oszacowanie czasu ukończenia
Żądanie stanu długo trwającej operacji zwraca dane workEstimated i workCompleted. Każdy z tych rodzajów danych jest zwracany zarówno w liczbie bajtów, jak i liczbie dokumentów:
workEstimatedpokazuje szacowaną łączną liczbę bajtów i dokumentów, które zostaną przetworzone w ramach operacji. Cloud Firestore może pominąć te dane, jeśli nie może oszacować wartości.workCompletedpokazuje 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 ona być większa niż wartośćworkEstimated.
Aby uzyskać przybliżone oszacowanie postępu, podziel workCompleted przez workEstimated. Te szacunki mogą być niedokładne, ponieważ zależą od opóźnionego zbierania statystyk.
Anulowanie operacji
gcloud
Aby zatrzymać operację w toku, użyj polecenia operations cancel:
gcloud firestore operations cancel [OPERATION_NAME]
Anulowanie wykonywanej operacji nie powoduje jej cofnięcia. Anulowanie operacji zbiorczego usuwania nie powoduje przywrócenia usuniętych dokumentów.
Usuwanie operacji
Aby usunąć ukończoną operację z listy ostatnich operacji, użyj polecenia gcloud firestore operations delete. Aby anulować działanie, użyj wcześniejszej operacji anulowania.
gcloud firestore operations delete [OPERATION_NAME]
Rozliczenia i ceny za zarządzane operacje usuwania zbiorczego
Zanim użyjesz usługi zarządzanego usuwania zbiorczego, musisz włączyć płatności w projekcie Google Cloud.
Operacje zbiorczego usuwania są rozliczane za odczyty i usunięcia dokumentów według stawek podanych w cenniku Cloud Firestore. Operacje usuwania zbiorczego powodują odczyt jednego wpisu indeksu na każdy znaleziony dokument i jedną operację usunięcia na każdy usunięty dokument. Opłata za 1 operację odczytu jest naliczana za maksymalnie 1000 odczytanych wpisów indeksu. Na przykład za operację zbiorczego usunięcia, która usunęła 1500 dokumentów, zostanie naliczona opłata 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 nie powiedzie się z powodu błędu użytkownika, zostanie naliczona opłata za wykonane działania. Cloud Firestore nie będzie naliczać opłat za odczyty ani usunięcia 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 usuwania zbiorczego nie powodują aktywowania alertów dotyczących budżetu Google Cloud, dopóki nie zostaną zakończone. Podobnie odczyty i usunięcia wykonane podczas operacji usuwania zbiorczego są stosowane do wykorzystania w ramach poziomu bezpłatnego po zakończeniu operacji. Operacje usuwania zbiorczego 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 raportów rozliczeniowych usługi Google Cloud możesz użyć tej etykiety, aby wyświetlić koszty związane z operacjami usuwania zbiorczego.
Sprawdzone metody
Unikaj pomijania usuniętych danych, ponieważ może to spowolnić zapytania.