Chỉ áp dụng cho phiên bản Cloud Firestore Enterprise. |
Trang này mô tả cách sử dụng Google Cloud Console và Google Cloud CLI để định cấu hình chính sách thời gian tồn tại (TTL).
Tổng quan về thời gian tồn tại
Sử dụng chính sách TTL để tự động xoá dữ liệu cũ khỏi cơ sở dữ liệu. Chính sách TTL chỉ định một trường nhất định làm thời gian hết hạn cho các tài liệu trong một tập hợp nhất định. Với TTL, bạn có thể giảm chi phí lưu trữ bằng cách dọn dẹp dữ liệu lỗi thời. Dữ liệu thường bị xoá trong vòng 24 giờ sau ngày hết hạn.
Giá
Các thao tác xoá TTL được tính vào chi phí xoá tài liệu của bạn. Để biết mức giá của các thao tác xoá, hãy xem Cloud Firestore Mức giá của phiên bản Enterprise.
Giới hạn và ràng buộc
- Bạn chỉ có thể đánh dấu một trường cho mỗi bộ sưu tập làm trường TTL.
- Bạn có thể có tối đa 500 cấu hình TTL ở cấp trường.
Xoá TTL
Hãy lưu ý những hành vi chính sau đây của việc xoá dựa trên TTL:
Việc xoá thông qua TTL không phải là một quy trình diễn ra ngay lập tức. Các chứng từ đã hết hạn vẫn xuất hiện trong các truy vấn và yêu cầu tra cứu cho đến khi quy trình TTL thực sự xoá chúng. Tính kịp thời của việc xoá giao dịch TTL để giảm tổng chi phí sở hữu cho việc xoá. Dữ liệu thường bị xoá trong vòng 24 giờ sau ngày hết hạn.
Việc áp dụng chính sách TTL cho một bộ sưu tập hiện có sẽ dẫn đến việc xoá hàng loạt tất cả dữ liệu đã hết hạn theo chính sách TTL mới. Xin lưu ý rằng thao tác xoá hàng loạt này cũng không diễn ra ngay lập tức và tuỳ thuộc vào lượng dữ liệu hiện có cho bộ sưu tập đó.
Nếu một tài liệu có thời gian hết hạn trong quá khứ và bạn thêm một chính sách TTL mới vào bộ sưu tập, thì tài liệu đó sẽ bị xoá trong vòng 24 giờ kể từ khi chính sách TTL hoàn tất quá trình thiết lập và bắt đầu hoạt động.
TTL không nhất thiết phải xoá các tài liệu theo cùng thứ tự với dấu thời gian hết hạn của chúng.
Việc xoá không được thực hiện theo cách giao dịch. Các tài liệu có cùng thời gian hết hạn không nhất thiết phải bị xoá cùng một lúc. Nếu bạn cần hành vi này, hãy xoá bằng thư viện ứng dụng.
Cloud Firestore có khả năng tương thích với MongoDB sẽ luôn tuân thủ trường TTL mới nhất để xác định thời gian hết hạn. Ví dụ: nếu một tài liệu đã hết hạn nhưng chưa bị xoá có trường TTL được cập nhật thành một ngày muộn hơn, thì tài liệu đó sẽ không hết hạn và ngày mới sẽ được sử dụng.
Cloud Firestore có khả năng tương thích với MongoDB chỉ hết hạn một tài liệu khi trường TTL được đặt thành loại
Date and time
hoặcBSON Date
. Để trống trường này hoặc đặt thành một giá trị nhưnull
để tắt thời gian hết hạn theo từng tài liệu.TTL được thiết kế để giảm thiểu tác động đến các hoạt động khác của cơ sở dữ liệu. Các thao tác xoá do TTL điều khiển sẽ được xử lý với mức độ ưu tiên thấp hơn. Các chiến lược khác cũng được áp dụng để giảm thiểu các đợt tăng đột biến lưu lượng truy cập do các lượt xoá dựa trên TTL.
Trường và chỉ mục TTL
Bạn có thể lập chỉ mục hoặc không lập chỉ mục cho trường TTL. Tuy nhiên, vì trường TTL là một dấu thời gian, nên việc lập chỉ mục trường này có thể ảnh hưởng đến hiệu suất ở tốc độ lưu lượng truy cập cao hơn. Việc lập chỉ mục một trường dấu thời gian có thể tạo ra các điểm nóng, điều này không phải là phương pháp hay. Điểm truy cập là tốc độ đọc, ghi và xoá cao đối với một phạm vi tài liệu hẹp.
Quyền
Chủ thể định cấu hình chính sách TTL cần có quyền sau trong dự án:
- Để xem các chính sách TTL, bạn cần có quyền
datastore.indexes.list
vàdatastore.indexes.get
. - Để sửa đổi chính sách TTL, bạn cần có quyền
datastore.indexes.update
. - Để kiểm tra trạng thái của các thao tác TTL, bạn cần có
datastore.operations.list
vàdatastore.operations.get
.
Để biết các vai trò chỉ định những quyền này, hãy xem phần Cloud Firestore Vai trò quản lý danh tính và quyền truy cập.
Trước khi bắt đầu
Trước khi bạn sử dụng gcloud CLI để quản lý các chính sách TTL, hãy dùng lệnh gcloud components update
để cập nhật các thành phần lên phiên bản mới nhất hiện có:
gcloud components update
Tạo chính sách TTL
Khi tạo chính sách TTL, bạn chỉ định một trường tài liệu làm thời gian hết hạn cho các tài liệu trong một bộ sưu tập.
TTL sử dụng một trường được chỉ định để xác định những tài liệu đủ điều kiện xoá.
Trường TTL này phải thuộc loại Timestamp
hoặc BSON Date
. Bạn có thể chọn một trường đã tồn tại hoặc chỉ định một trường mà bạn dự định thêm sau này.
Hãy cân nhắc những điều sau trước khi bạn đặt giá trị trường TTL:
Giá trị trường TTL có thể là thời gian trong tương lai, hiện tại hoặc quá khứ. Nếu giá trị là thời gian trong quá khứ, thì tài liệu sẽ đủ điều kiện để xoá ngay lập tức. Ví dụ: bạn có thể tạo một chính sách TTL bằng trường
expireAt
, sau đó thêm chính sách này vào các tài liệu hiện có.Việc sử dụng bất kỳ kiểu dữ liệu nào khác hoặc không đặt giá trị trường TTL sẽ tắt TTL cho từng tài liệu.
Để tạo một chính sách TTL, hãy làm theo các bước sau:
Bảng điều khiển Google Cloud
Trong bảng điều khiển Google Cloud, hãy chuyển đến trang Cơ sở dữ liệu.
Chọn cơ sở dữ liệu cần thiết trong danh sách cơ sở dữ liệu.
Trong trình đơn điều hướng, hãy nhấp vào Thời gian tồn tại.
Nhấp vào Tạo chính sách.
Nhập tên bộ sưu tập và tên trường dấu thời gian.
Nhấp vào Tạo.
Bảng điều khiển sẽ quay lại trang Thời gian tồn tại. Nếu thao tác bắt đầu thành công, trang sẽ thêm một mục vào bảng chính sách TTL. Khi thất bại, trang sẽ hiển thị một thông báo lỗi.
gcloud
Sử dụng lệnh
firestore fields ttls update
để định cấu hình chính sách TTL. Thêm cờ--async
để ngăn gcloud CLI chờ thao tác hoàn tất.gcloud firestore fields ttls update ttl_field --collection-group=collection_name --enable-ttl
Thời lượng bật chính sách TTL
Ngay cả trên một cơ sở dữ liệu trống, bạn cũng có thể mất từ 10 phút trở lên để bật chính sách TTL. Sau khi bạn bắt đầu một thao tác, việc đóng thiết bị đầu cuối sẽ không huỷ thao tác đó.
Xem chính sách TTL
Để xem các chính sách TTL và trạng thái của chúng, hãy làm theo các bước sau:
Bảng điều khiển Google Cloud
Trong bảng điều khiển Google Cloud, hãy chuyển đến trang Cơ sở dữ liệu.
Chọn cơ sở dữ liệu cần thiết trong danh sách cơ sở dữ liệu.
Trong trình đơn điều hướng, hãy nhấp vào Thời gian tồn tại.
Bảng điều khiển liệt kê các chính sách TTL cho cơ sở dữ liệu của bạn và bao gồm trạng thái của từng chính sách.
gcloud
Sử dụng lệnh
firestore fields ttls list
để định cấu hình chính sách TTL. Lệnh sau đây liệt kê tất cả các chính sách TTL.gcloud firestore fields ttls list
Để liệt kê các chính sách TTL trong một bộ sưu tập cụ thể, hãy sử dụng như sau:
gcloud firestore fields ttls list --collection-group=collection_name
Xem thông tin chi tiết về thao tác
Bạn có thể sử dụng gcloud CLI để xem thêm thông tin chi tiết về một chính sách TTL đang ở trạng thái CREATING
.
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:
gcloud firestore operations list
Phản hồi bao gồm thông tin ước tính về tiến trình của thao tác.
Tắt chính sách TTL
Để tắt chính sách TTL, hãy làm theo các bước sau:
Bảng điều khiển Google Cloud
Trong bảng điều khiển Google Cloud, hãy chuyển đến trang Cơ sở dữ liệu.
Chọn cơ sở dữ liệu cần thiết trong danh sách cơ sở dữ liệu.
Trong trình đơn điều hướng, hãy nhấp vào Thời gian tồn tại.
Trong bảng chính sách TTL, hãy tìm hàng cho chính sách TTL. Trong hàng này của bảng, hãy nhấp vào nút Xoá (thùng rác).
Xác nhận bằng cách nhấp vào Xoá.
Bảng điều khiển sẽ quay lại trang Thời gian tồn tại. Khi thành công, Cloud Firestore có khả năng tương thích với MongoDB sẽ xoá chính sách TTL khỏi bảng.
gcloud
Sử dụng lệnh
firestore fields ttls update
để định cấu hình chính sách TTL. Thêm cờ--async
để ngăn gcloud CLI chờ thao tác hoàn tất.gcloud firestore fields ttls update ttl_field --collection-group=collection_name --disable-ttl
Theo dõi việc xoá TTL
Bạn có thể sử dụng Cloud Monitoring để xem các chỉ số về việc xoá dựa trên TTL. Cloud Firestore có khả năng tương thích với MongoDB cung cấp các chỉ số sau cho TTL:
Loại chỉ số | Tên chỉ số | Nội dung mô tả chỉ số |
---|---|---|
firestore.googleapis.com/document/ttl_deletion_count | Số lượng xoá theo thời gian thực |
Tổng số lượng tài liệu bị xoá theo chính sách TTL. |
firestore.googleapis.com/document/ttl_expiration_to_deletion_delays | Thời gian hết hạn đến khi xoá |
Khoảng thời gian trôi qua giữa thời điểm một tài liệu hết hạn theo chính sách TTL và thời điểm tài liệu đó thực sự bị xoá. |
Để thiết lập trang tổng quan bằng Cloud Firestore có các chỉ số tương thích với MongoDB, hãy xem phần quản lý trang tổng quan tuỳ chỉnh và thêm tiện ích trang tổng quan.