Sử dụng dịch vụ xoá hàng loạt được quản lý để xoá dữ liệu khỏi cơ sở dữ liệu của bạn. Tính năng này hỗ trợ xoá một hoặc nhiều nhóm tập hợp.
Dịch vụ xoá hàng loạt được quản lý
Để xoá hàng loạt tài liệu, hãy sử dụng dịch vụ xoá hàng loạt được quản lý. Dịch vụ xoá hàng loạt được quản lý của Cloud Firestore được cung cấp thông qua công cụ dòng lệnh gcloud và API REST của Cloud Firestore.
Trước khi bắt đầu
Trước khi có thể sử dụng dịch vụ xoá hàng loạt được quản lý, bạn phải hoàn tất các nhiệm vụ sau:
- Để xoá tài liệu hàng loạt, hãy bật tính năng thanh toán cho dự án Google Cloud của bạn. Chỉ những dự án Google Cloud đã bật tính năng thanh toán mới có thể sử dụng chức năng xoá hàng loạt.
-
Đảm bảo rằng tài khoản của bạn có các quyền cần thiết cho Cloud Firestore. Nếu bạn là chủ sở hữu dự án, tài khoản của bạn sẽ có các quyền cần thiết. Nếu không, các vai trò sau đây sẽ cấp quyền cần thiết cho thao tác xoá hàng loạt:
- Vai trò Cloud Firestore:
Owner,Cloud Datastore OwnerhoặcCloud Datastore Bulk Admin
- Vai trò Cloud Firestore:
Thiết lập gcloud cho dự án của bạn
Bạn có thể bắt đầu thao tác xoá hàng loạt thông qua Google Cloud Console hoặc công cụ dòng lệnh gcloud. Để sử dụng gcloud, hãy thiết lập công cụ dòng lệnh và kết nối với dự án của bạn theo một trong những cách sau:
Truy cập vào
gcloudtrong Google Cloud Console bằng Cloud Shell.Đảm bảo
gcloudđược định cấu hình cho đúng dự án:gcloud config set project [PROJECT_ID]
Xoá dữ liệu bằng dịch vụ xoá hàng loạt được quản lý
Thao tác xoá hàng loạt trước tiên sẽ tìm tất cả tài liệu phù hợp trong cơ sở dữ liệu của bạn rồi xoá chúng theo lô. Bạn vẫn có thể truy vấn hoặc đọc các tài liệu này, nhưng kết quả có thể khác nhau tuỳ theo tiến trình thực hiện. Thao tác xoá hàng loạt không xoá bất kỳ tài liệu nào được thêm hoặc sửa đổi sau khi thao tác bắt đầu.
Xoá nhiều nhóm tập hợp cụ thể cùng lúc
gcloud
Để xoá hàng loạt nhóm bộ sưu tập cụ thể, hãy sử dụng cờ --collection-ids.
Thao tác này chỉ xoá các nhóm tập hợp có mã nhận dạng đã cho.
Nhóm bộ sưu tập bao gồm tất cả tài liệu và tài liệu lồng nhau (tại bất kỳ đường dẫn nào) có các nhóm bộ sưu tập được chỉ định.
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 cấp cao nhất của cơ sở dữ liệu cymbal. Trong mỗi tài liệu nhà hàng, có nhiều bộ sưu tập con lồng nhau như ratings, reviews và outlets. Để xoá hàng loạt nhóm tập hợp restaurants và reviews, lệnh của bạn sẽ có dạng như sau:
gcloud firestore bulk-delete \ --collection-ids=restaurants,reviews \ --database='cymbal'
Quản lý các thao tác xoá hàng loạt
Sau khi bạn bắt đầu thao tác xoá hàng loạt, Cloud Firestore sẽ gán cho thao tác đó một tên riêng biệt. Bạn có thể sử dụng tên thao tác để xoá, huỷ hoặc kiểm tra trạng thái của thao tác.
Tên thao tác có tiền tố là projects/[PROJECT_ID]/databases/[DATABASE_ID]/operations/, ví dụ:
projects/my-project/databases/(default)/operations/ASA1MTAwNDQxNAgadGx1YWZlZAcSeWx0aGdpbi1zYm9qLW5pbWRhEgopEg
Tuy nhiên, bạn có thể bỏ qua tiền tố khi chỉ định tên thao tác cho các lệnh describe, cancel và delete.
Liệt kê tất cả các thao tác xoá hàng loạt
gcloud
Sử dụng lệnh operations list để xem tất cả các thao tác đang chạy và đã hoàn tất gần đây, bao gồm cả các thao tác xoá hàng loạt:
gcloud firestore operations list
Kiểm tra trạng thái hoạt động
gcloud
Sử dụng lệnh operations describe để hiện trạng thái của thao tác xoá hàng loạt.
gcloud firestore operations describe [OPERATION_NAME]
Ước tính thời gian hoàn thành
Yêu cầu về trạng thái của một thao tác diễn ra trong thời gian dài sẽ trả về các chỉ số
workEstimated và workCompleted. Mỗi chỉ số này được trả về theo cả
số byte và số tài liệu:
workEstimatedcho biết tổng số byte và tài liệu ước tính mà một thao tác sẽ xử lý. Cloud Firestore có thể bỏ qua chỉ số này nếu không thể đưa ra thông tin ước tính.workCompletedcho biết số byte và số tài liệu đã xoá cho đến nay. Sau khi thao tác hoàn tất, giá trị này sẽ cho biết tổng số byte và tài liệu thực tế đã được xử lý. Giá trị này có thể lớn hơn giá trị củaworkEstimated.
Chia workCompleted cho workEstimated để ước tính sơ bộ tiến độ. Thông tin ước tính này có thể không chính xác vì phụ thuộc vào việc thu thập số liệu thống kê bị trì hoãn.
Huỷ thao tác
gcloud
Sử dụng lệnh operations cancel để dừng một thao tác đang diễn ra:
gcloud firestore operations cancel [OPERATION_NAME]
Việc huỷ một thao tác đang chạy sẽ không huỷ thao tác đó. Thao tác xoá hàng loạt đã huỷ sẽ không khôi phục các tài liệu đã xoá.
Xoá một thao tác
Sử dụng lệnh gcloud firestore operations delete để xoá một thao tác đã hoàn tất khỏi danh sách các thao tác gần đây. Để huỷ một thao tác đang chạy, hãy sử dụng thao tác huỷ trước đó.
gcloud firestore operations delete [OPERATION_NAME]
Thanh toán và giá cho các thao tác xoá hàng loạt được quản lý
Bạn phải bật tính năng thanh toán cho dự án Google Cloud trước khi sử dụng dịch vụ xoá hàng loạt được quản lý.
Thao tác xoá hàng loạt sẽ tính phí cho các thao tác đọc và xoá tài liệu theo mức giá nêu trong phần Cloud Firestore giá. Thao tác xoá hàng loạt sẽ thực hiện một lần đọc mục nhập chỉ mục cho mỗi tài liệu tìm thấy và một thao tác xoá cho mỗi tài liệu bị xoá. Bạn sẽ bị tính phí một thao tác đọc cho tối đa 1.000 mục nhập chỉ mục được đọc. Ví dụ: đối với một thao tác xoá hàng loạt đã xoá 1.500 tài liệu, bạn sẽ bị tính phí cho 2 lượt đọc tài liệu và 1.500 lượt xoá tài liệu.Xin lưu ý rằng Cloud Firestore tính phí dựa trên công việc thực tế đã hoàn thành. Nếu thao tác bị huỷ hoặc không thành công do lỗi của người dùng, bạn sẽ bị tính phí theo tiến trình đã thực hiện. Cloud Firestore sẽ không tính phí đọc hoặc xoá đối với những tài liệu không bị xoá, chẳng hạn như những tài liệu được sửa đổi sau khi thao tác xoá bắt đầu. Chi phí sẽ được tính vào ngày hoàn tất hoạt động.
Thao tác xoá hàng loạt không kích hoạt cảnh báo về ngân sách Google Cloud cho đến khi hoàn tất. Tương tự, các thao tác đọc và xoá được thực hiện trong một thao tác xoá hàng loạt sẽ được áp dụng cho mức sử dụng của bạn trong cấp miễn phí sau khi thao tác đó hoàn tất. Thao tác xoá hàng loạt không ảnh hưởng đến mức sử dụng được hiển thị trong phần mức sử dụng của bảng điều khiển.
Xem chi phí xoá hàng loạt
Thao tác xoá hàng loạt sẽ áp dụng nhãn goog-firestoremanaged:bulkdelete cho các thao tác được tính phí. Trên trang báo cáo thanh toán Cloud Billing, bạn có thể sử dụng nhãn này để xem chi phí liên quan đến các thao tác xoá hàng loạt.
Các phương pháp hay nhất
Tránh bỏ qua dữ liệu đã xoá vì việc này có thể làm chậm truy vấn.