Xoá dữ liệu hàng loạt

Chỉ áp dụng cho phiên bản Cloud Firestore Enterprise.

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. Tính năng này hỗ trợ việc xoá đối với một hoặc nhiều nhóm bộ sưu tập.

Trang này mô tả cách xoá hàng loạt tài liệu bằ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ó khả năng tương thích với MongoDB của Cloud Firestore có sẵn thông qua công cụ dòng lệnh gcloudCloud Firestore REST API.

Trước khi bắt đầu

Để 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 việc sau:

  1. 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.
  2. Đảm bảo tài khoản của bạn có các quyền cần thiết đối với Cloud Firestore có khả năng tương thích với MongoDB. Nếu là chủ sở hữu dự án, thì tài khoản của bạn có các quyền cần thiết. Nếu không, các vai trò sau đây sẽ cấp các quyền cần thiết cho các thao tác xoá hàng loạt:

Thiết lập gcloud cho dự án của bạn

Bạn có thể bắt đầu các thao tác xoá hàng loạt thông qua bảng điều khiển Google Cloud 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:

Xoá hàng loạt dữ liệu

Thao tác xoá hàng loạt trước tiên sẽ tìm tất cả các tài liệu áp dụng 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 những tài liệu này, mặc dù kết quả có thể khác nhau tuỳ thuộc vào tiến trình đã đạt được. Thao tác xoá hàng loạt sẽ 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 bộ sưu tập cụ thể

gcloud

Để xoá hàng loạt các 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 bộ sưu tập có mã nhận dạng đã cho.

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]

Quản lý các thao tác xoá hàng loạt

Sau khi bạn bắt đầu một thao tác xoá hàng loạt, Cloud Firestore có khả năng tương thích với MongoDB sẽ chỉ định cho thao tác đó một tên duy nhấ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, canceldelete.

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 để cho biết trạng thái của một 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ố workEstimatedworkCompleted. Mỗi chỉ số này được trả về theo cả số lượng byte và số lượng tài liệu:

  • workEstimated cho 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ó khả năng tương thích với MongoDB có thể bỏ qua chỉ số này nếu không thể ước tính.

  • workCompleted cho biết số lượng byte và tài liệu đã bị xoá cho đến thời điểm hiện tại. Sau khi thao tác hoàn tất, giá trị này cho biết tổng số byte và tài liệu đã được xử lý thực tế, có thể lớn hơn giá trị của workEstimated.

Chia workCompleted cho workEstimated để ước tính tiến trình một cách sơ bộ. Số liệu ướ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 bị 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à định giá cho các thao tác xoá hàng loạt

Bạn phải bật tính năng thanh toán cho dự án Google Cloud thì mới có thể sử dụng dịch vụ xoá hàng loạt được quản lý.

Xin lưu ý rằng Cloud Firestore có tính năng tương thích với MongoDB sẽ tính phí dựa trên công việc thực tế đã thực hiện. 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 tương thích với MongoDB sẽ không tính phí cho các thao tác đọ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.

Các thao tác xoá hàng loạt sẽ không kích hoạt cảnh báo Google Cloudngân sách cho đến khi hoàn tất. Tương tự, các thao tác đọc và xoá được thực hiện trong quá trình xoá hàng loạt sẽ được áp dụng cho mức sử dụng bậc miễn phí sau khi quá trình này hoàn tất. Các thao tác xoá hàng loạt không ảnh hưởng đến mức sử dụng xuất hiện trong phần mức sử dụng của bảng điều khiển.

Xem chi phí xoá hàng loạt

Các 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 qua đám mây, 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.