Masowe usuwanie danych

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ń gcloudCloud Firestore interfejsu API REST.Cloud Firestore

Zanim zaczniesz

Zanim zaczniesz korzystać z usługi zarządzanego usuwania zbiorczego, musisz wykonać te czynności:

  1. 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.
  2. 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 lub Cloud Datastore Bulk Admin.

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:

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]
Wyobraź sobie na przykład wiele dokumentów reprezentujących restauracje w kolekcji najwyższego poziomu restaurants w bazie danych cymbal. W każdym dokumencie restauracji znajduje się kilka zagnieżdżonych podkolekcji, takich jak ratings, reviewsoutlets. Aby zbiorczo usunąć grupy kolekcji restaurantsreviews, 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, canceldelete.

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 workEstimatedworkCompleted. 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.