Masowe usuwanie danych

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:

  1. 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.
  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:

    • Rola 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 korzystać z gcloud, skonfiguruj narzędzie wiersza poleceń i połącz się z projektem w jeden z tych sposobów:

Zbiorcze usuwanie danych

Operacja zbiorczego usuwania najpierw wyszukuje 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 usuwa tylko grupy kolekcji o podanych identyfikatorach. 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.

Nazwa działania ma 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, 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 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ść parametru workEstimated.

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ć wykonywaną 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 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ą spowolnić zapytania.