Menghapus data secara massal
Gunakan layanan penghapusan massal terkelola untuk menghapus data dari database Anda. Fitur ini mendukung penghapusan terhadap satu atau beberapa grup koleksi.
Halaman ini menjelaskan cara menghapus dokumen secara massal menggunakan
layanan penghapusan massal terkelola. Layanan
penghapusan massal terkelola Firestore dengan kompatibilitas MongoDB tersedia melalui
alat command line gcloud
dan REST API Firestore.
Sebelum memulai
Sebelum dapat menggunakan layanan penghapusan massal terkelola, Anda harus menyelesaikan tugas-tugas berikut:
- Aktifkan penagihan untuk project Google Cloud Anda. Hanya project Google Cloud dengan penagihan aktif yang dapat menggunakan fungsi penghapusan massal.
-
Pastikan akun Anda memiliki izin yang diperlukan untuk Firestore dengan kompatibilitas MongoDB. Jika Anda adalah pemilik project, berarti akun Anda memiliki izin yang diperlukan. Jika tidak, peran berikut dapat memberikan izin yang diperlukan untuk operasi penghapusan massal:
- Peran Firestore dengan kompatibilitas MongoDB:
Owner
,Cloud Datastore Owner
, atauCloud Datastore Bulk Admin
- Peran Firestore dengan kompatibilitas MongoDB:
Menyiapkan gcloud
untuk project Anda
Anda dapat memulai operasi penghapusan massal melalui konsol Google Cloud atau
alat command line gcloud
. Untuk menggunakan gcloud
, siapkan alat command line
dan hubungkan ke project Anda dengan salah satu cara berikut:
Akses
gcloud
dari konsol Google Cloud menggunakan Cloud Shell.Pastikan
gcloud
dikonfigurasi untuk project yang tepat:gcloud config set project [PROJECT_ID]
Menghapus data secara massal
Pertama, operasi penghapusan massal akan menemukan semua dokumen yang berlaku di database Anda, lalu menghapusnya secara massal. Anda masih bisa membuat kueri atau membaca dokumen ini, meskipun hasilnya mungkin bervariasi berdasarkan progres yang dibuat. Penghapusan massal tidak menghapus dokumen yang ditambahkan atau diubah setelah operasi dimulai.
Menghapus grup koleksi tertentu secara massal
gcloud
Untuk menghapus grup koleksi tertentu secara massal, gunakan
flag --collection-ids
. Operasi ini hanya menghapus
grup koleksi dengan ID yang diberikan.
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
dari database cymbal
.
Anda juga memiliki koleksi untuk ratings
, reviews
, dan outlets
.
Untuk menghapus koleksi restaurants
dan reviews
secara massal, perintah Anda akan terlihat seperti berikut:
gcloud firestore bulk-delete \ --collection-ids=restaurants,reviews \ --database='cymbal'
Mengelola operasi penghapusan massal
Setelah Anda memulai operasi penghapusan massal, Firestore dengan kompatibilitas MongoDB akan menetapkan nama unik untuk operasi tersebut. Anda dapat menggunakan nama operasi untuk menghapus, membatalkan, atau memeriksa status operasi.
Nama operasi diawali dengan projects/[PROJECT_ID]/databases/[DATABASE_ID]/operations/
,
misalnya:
projects/my-project/databases/(default)/operations/ASA1MTAwNDQxNAgadGx1YWZlZAcSeWx0aGdpbi1zYm9qLW5pbWRhEgopEg
Namun, Anda dapat tidak menyertakan awalan saat menentukan nama operasi untuk
perintah describe
, cancel
, dan delete
.
Mencantumkan semua operasi penghapusan massal
gcloud
Gunakan perintah operations list
untuk melihat semua operasi yang sedang berjalan dan baru selesai, termasuk operasi penghapusan massal:
gcloud firestore operations list
Memeriksa status operasi
gcloud
Gunakan perintah operations describe
untuk menampilkan status operasi penghapusan massal.
gcloud firestore operations describe [OPERATION_NAME]
Memperkirakan waktu penyelesaian
Permintaan untuk status operasi yang berjalan lama akan menampilkan metrik
workEstimated
dan workCompleted
. Setiap metrik tersebut ditampilkan baik
dalam jumlah byte maupun jumlah dokumen:
workEstimated
menampilkan estimasi total jumlah byte dan dokumen yang akan diproses oleh sebuah operasi. Firestore dengan kompatibilitas MongoDB mungkin menghilangkan metrik ini jika tidak dapat membuat perkiraan.workCompleted
menunjukkan jumlah byte dan dokumen yang dihapus sejauh ini. Setelah operasi selesai, nilai akan menunjukkan jumlah total byte dan dokumen yang benar-benar diproses, dan mungkin lebih besar dari nilaiworkEstimated
.
Bagilah workCompleted
dengan workEstimated
untuk mengetahui perkiraan kasar dari progresnya. Perkiraan ini mungkin tidak akurat karena tergantung pada koleksi statistik yang tertunda.
Membatalkan operasi
gcloud
Gunakan perintah operations cancel
untuk menghentikan operasi yang sedang berlangsung:
gcloud firestore operations cancel [OPERATION_NAME]
Jika operasi yang sedang berjalan dibatalkan, operasi tersebut tidak akan diurungkan. Operasi penghapusan massal yang dibatalkan tidak akan memulihkan dokumen yang dihapus.
Menghapus operasi
Gunakan perintah gcloud firestore operations delete
untuk menghapus
operasi yang telah selesai dari daftar operasi terbaru. Untuk membatalkan operasi yang sedang berjalan, gunakan operasi pembatalan sebelumnya.
gcloud firestore operations delete [OPERATION_NAME]
Penagihan dan harga untuk operasi penghapusan massal
Anda harus mengaktifkan penagihan untuk project Google Cloud sebelum menggunakan layanan penghapusan massal terkelola.
Operasi penghapusan massal dikenai biaya untuk pembacaan dan penghapusan dokumen sebesar tarif yang tercantum dalam harga edisi Enterprise Firestore.Anda dikenai biaya 1 unit penulisan untuk setiap tranch data dokumen atau data entri indeks sebesar 1 KiB yang dihapus.
Anda akan dikenai biaya minimum satu unit baca per dokumen yang dihapus. Jika ukuran nama dokumen lebih besar dari 4 KiB, Anda akan dikenai biaya 1 unit baca per 4 KiB, dibulatkan ke atas, untuk dokumen tersebut.
Perhatikan bahwa Firestore dengan kompatibilitas MongoDB akan mengenakan biaya berdasarkan pekerjaan yang sebenarnya dilakukan. Jika operasi dibatalkan atau gagal karena kesalahan pengguna, Anda akan ditagih berdasarkan progres yang telah dilakukan. Firestore dengan kompatibilitas MongoDB tidak akan mengenakan biaya baca atau hapus untuk dokumen yang pada akhirnya tidak dihapus, seperti dokumen yang diubah setelah operasi hapus dimulai. Biaya akan dibebankan pada hari penyelesaian operasi.
Operasi penghapusan massal tidak memicu pemberitahuan anggaranGoogle Cloud Anda hingga operasi selesai. Demikian pula, operasi baca dan hapus yang dilakukan selama operasi penghapusan massal akan diterapkan pada penggunaan paket gratis Anda setelah operasi selesai. Operasi penghapusan massal tidak memengaruhi penggunaan yang ditampilkan di bagian penggunaan konsol.
Melihat biaya penghapusan massal
Operasi penghapusan massal menerapkan label goog-firestoremanaged:bulkdelete
ke operasi yang ditagih. Di halaman Cloud Billing reports,
Anda dapat menggunakan label ini untuk melihat biaya yang terkait dengan operasi penghapusan massal.