Trang này mô tả cách sử dụng Google Cloud Platform Console và Google Cloud CLI để định cấu hình các chính sách về thời gian tồn tại (TTL). Trước khi đọc trang này, bạn nên hiểu mô hình dữ liệu Cloud Firestore .
Tổng quan về thời gian tồn tại
Sử dụng chính sách thời gian tồn tại (TTL) để tự động xóa dữ liệu cũ khỏi cơ sở dữ liệu của bạn. 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 nhóm bộ sưu tập nhất định. Với TTL, bạn có thể giảm chi phí lưu trữ bằng cách xóa dữ liệu lỗi thời. Dữ liệu thường bị xóa trong vòng 72 giờ sau ngày hết hạn.
định giá
Thao tác xóa TTL được tính vào chi phí xóa tài liệu của bạn. Để biết giá của các thao tác xóa, hãy xem phần Định giá của Cloud Firestore .
Giới hạn và ràng buộc
- Chỉ một trường trên mỗi nhóm bộ sưu tập có thể được đánh dấu là trường TTL.
- Cho phép tổng cộng 200 cấu hình cấp trường. Một cấu hình trường có thể chứa nhiều cấu hình cho cùng một trường. Ví dụ: miễn lập chỉ mục một trường và chính sách TTL trên cùng một trường được tính là một cấu hình trường đối với giới hạn.
xóa TTL
Lưu ý các hành vi chính sau đây của việc xóa theo hướng TTL:
Việc xóa thông qua TTL không phải là một quá trình tức thời. Các tài liệu hết hạn tiếp tục 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ự xóa chúng. TTL đánh đổi tính kịp thời của việc xóa vì lợi ích của việc giảm tổng chi phí sở hữu cho việc xóa. Dữ liệu thường bị xóa trong vòng 72 giờ sau ngày hết hạn.
Việc xóa một tài liệu thông qua TTL sẽ không xóa các tập hợp con trong tài liệu đó.
Việc áp dụng chính sách TTL cho một nhóm bộ sưu tập hiện có dẫn đến việc xóa hàng loạt tất cả dữ liệu đã hết hạn theo chính sách TTL mới. Lưu ý rằng việc xóa hàng loạt này cũng không diễn ra ngay lập tức và phụ thuộc vào lượng dữ liệu tồn tại cho nhóm bộ sưu tập đó.
TTL không nhất thiết phải xóa tài liệu theo thứ tự như dấu thời gian hết hạn của chúng.
Việc xóa không được thực hiện theo 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 xóa cùng một lúc. Nếu bạn yêu cầu hành vi này, hãy thực hiện thao tác xóa bằng thư viện máy khách.
Cloud Firestore sẽ luôn tôn trọng trường TTL mới nhất để xác định ngày hết hạn. Ví dụ: nếu một tài liệu đã hết hạn nhưng chưa bị xóa có trường TTL được cập nhật vào một ngày sau đó, tài liệu sẽ không hết hạn và ngày mới sẽ được sử dụng.
TTL được thiết kế để giảm thiểu tác động đến các hoạt động cơ sở dữ liệu khác. Việc xóa do TTL thúc đẩy đượ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 bớt lưu lượng truy cập tăng đột biến do xóa do TTL.
Việc xóa thông qua TTL gọi tất cả các trình xử lý ảnh chụp nhanh đang hoạt động và kích hoạt các trình kích hoạt Cloud Function Cloud Firestore.
Các trường và chỉ mục TTL
Trường TTL có thể được lập chỉ mục hoặc không được lập chỉ mục. Tuy nhiên, vì trường TTL là dấu thời gian nên việc lập chỉ mục trường 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 trường dấu thời gian có thể tạo ra các điểm phát sóng trái với các phương pháp hay nhất. Các điểm nóng có tỷ lệ đọc, ghi và xóa cao đối với một phạm vi tài liệu hẹp.
Theo mặc định, Cloud Firestore tạo chỉ mục một trường cho tất cả các trường. Bạn có thể tạo miễn trừ chỉ mục trường đơn để tắt chỉ mục trên trường TTL.
Quyền
Hiệu trưởng định cấu hình chính sách TTL yêu cầu quyền sau trong dự án:
- Việc xem các chính sách TTL yêu cầu quyền
datastore.indexes.list
vàdatastore.indexes.get
. - Sửa đổi chính sách TTL yêu cầu quyền
datastore.indexes.update
. - Kiểm tra trạng thái của hoạt động TTL yêu cầu
datastore.operations.list
vàdatastore.operations.get
.
Đối với các vai trò chỉ định các quyền này, hãy xem vai trò Quản lý quyền truy cập và nhận dạng Cloud Firestore .
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 sử 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 bạn tạo một 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 nhóm bộ sưu tập.
TTL sử dụng một trường được chỉ định để xác định các tài liệu đủ điều kiện để xóa. Trường TTL này phải thuộc loại Date and time
. Bạn có thể chọn một trường đã tồn tại hoặc bạn có thể chỉ định một trường mà bạn dự định thêm vào sau.
Hãy xem xét những điều sau đây trước khi bạn đặt giá trị trường TTL:
Giá trị trường TTL có thể là một thời điểm trong tương lai, hiện tại hoặc trong quá khứ. Nếu giá trị là một thời điểm trong quá khứ, tài liệu sẽ ngay lập tức đủ điều kiện để xóa. Ví dụ: bạn có thể tạo chính sách TTL với trường
expireAt
, sau đó bạn thêm chính sách này vào tài liệu hiện có.Sử dụng bất kỳ loại dữ liệu nào khác hoặc không đặt giá trị trường TTL sẽ vô hiệu hóa TTL cho từng tài liệu.
Thực hiện theo các bước bên dưới để tạo chính sách TTL:
Bảng điều khiển đám mây của Google
Truy cập trang Thời gian tồn tại của Cloud Firestore trong Bảng điều khiển Google Cloud Platform.
Nhấp vào Tạo chính sách .
Nhập tên nhóm 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 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 không thành công, trang sẽ hiển thị 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_group_name --enable-ttl
Ngay cả trên cơ sở dữ liệu trống, có thể mất mười phút hoặc hơn để kích hoạ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 hủy thao tác.
Xem chính sách TTL
Thực hiện theo các bước bên dưới để xem các chính sách TTL và trạng thái của chúng.
Bảng điều khiển đám mây của Google
Truy cập trang Thời gian tồn tại của Cloud Firestore trong Bảng điều khiển Google Cloud Platform.
Chuyển đến trang 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 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 nhóm bộ sưu tập cụ thể, hãy sử dụng như sau:
gcloud firestore fields ttls list --collection-group=collection_group_name
Xem chi tiết hoạt động
Bạn có thể sử dụng gcloud CLI để xem thêm chi tiết về chính sách TTL ở trạng thái CREATING
.
Sử dụng lệnh operations list
để xem tất cả các hoạt động đang chạy và đã hoàn thành gần đây:
gcloud firestore operations list
Phản hồi bao gồm một ước tính về tiến trình của hoạt động.
Vô hiệu hóa chính sách TTL
Thực hiện theo các bước bên dưới để tắt chính sách TTL.
Bảng điều khiển đám mây của Google
Truy cập trang Thời gian tồn tại của Cloud Firestore trong Bảng điều khiển Google Cloud Platform.
Trong bảng chính sách TTL, hãy tìm hàng dành cho chính sách TTL. Trong hàng của bảng này, nhấp vào nút Xóa (thùng rác).
Xác nhận bằng cách nhấp vào Xóa .
Bảng điều khiển quay lại trang Thời gian tồn tại . Khi thành công, Cloud Firestore sẽ xóa chính sách TTL khỏi bảng.
gcloud
1. 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_group_name --disable-ttl
Giám sát xóa TTL
Bạn có thể sử dụng Giám sát đám mây để xem số liệu về việc xóa theo hướng TTL. Cloud Firestore cung cấp các số liệu sau cho TTL:
firestore.googleapis.com/document/ttl_deletion_count | Số lần xóa thời gian tồn tại | Tổng số tài liệu bị xóa theo chính sách Thời gian tồn tại (TTL). |
firestore.googleapis.com/document/ttl_expiration_to_deletion_delays | Thời gian tồn tại hết hạn để xóa chậm trễ | Thời gian đã trôi qua kể từ khi một tài liệu hết hạn theo chính sách Thời gian tồn tại (TTL) và khi nó thực sự bị xóa. |
Để thiết lập trang tổng quan với số liệu của Cloud Firestore, hãy xem quản lý trang tổng quan tùy chỉnh và thêm tiện ích trang tổng quan .