Trang này mô tả cách sử dụng bảng điều khiển Google Cloud và Google Cloud CLI để định cấu hình chính sách thời gian tồn tại (TTL). Trước khi bạn đọc trang này, bạn nên nắm được Mô hình dữ liệu Cloud Firestore.
Tổng quan về thời gian phát trực tiếp
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 cụ thể làm thời gian hết hạn của 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 xoá 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 sẽ được tính vào chi phí xoá tài liệu của bạn. Để định giá số lượng hoạt động xoá, hãy xem giá Cloud Firestore.
Giới hạn và quy tắc ràng buộc
- Mỗi nhóm thu thập, bạn chỉ có thể đánh dấu một trường là trường TTL.
- Cho phép tổng cộng 200 cấu hình cấp trường. Cấu hình một 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 về giới hạn.
- Đối với khách hàng ở chế độ Firestore ở chế độ Datastore, bạn không thể sử dụng TTL với chế độ đồng thời Lạc quan với nhóm thực thể. Cân nhắc thay đổi chế độ đồng thời sang chế độ đồng thời Optimistic.
Xoá TTL
Vui lòng lưu ý các hành vi chính sau đây của quy trình xoá theo TTL:
Quá trình xoá qua TTL không phải là quá trình tức thì. Giấy tờ đã 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 quá trình TTL diễn ra thực sự sẽ xoá chúng. TTL thay đổi tính kịp thời để xoá dữ liệu vì lợi ích của tổng chi phí sở hữu bị xoá giảm. Dữ liệu thường bị xoá trong vòng 24 giờ sau ngày hết hạn.
Khi xoá một tài liệu thông qua TTL, các bộ sưu tập con trong đó sẽ không bị xoá tài liệu.
Việc áp dụng chính sách TTL cho một nhóm thu thập hiện có sẽ dẫn đến việc gửi hàng loạt bộ sưu tập xoá tất cả dữ liệu đã hết hạn theo chính sách TTL mới. Ghi chú quá trình xoá hàng loạt này cũng không diễn ra ngay lập tức mà phụ thuộc vào lượng dữ liệu dành cho nhóm 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 chính sách TTL mới vào bộ sưu tập, tài liệu sẽ bị xoá trong vòng 24 giờ thời điểm chính sách TTL hoàn tất việc thiết lập và bắt đầu có hiệu lực.
TTL không nhất thiết xoá các tài liệu theo cùng thứ tự như dấu thời gian hết hạn.
Việc xoá dữ liệu không được thực hiện qua hình thức giao dịch. Chứng từ có cùng ngày hết hạn có thể không bị xoá cùng một lúc. Nếu bạn yêu cầu hãy thực hiện thao tác xoá bằng cách sử dụng thư viện ứng dụng.
Cloud Firestore sẽ luôn tuân thủ trường TTL mới nhất để xác định 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 sau đó, chứng từ 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 khác của cơ sở dữ liệu. Xoá do TTL điều khiển được xử lý với mức độ ưu tiên thấp hơn. Các chiến lược khác để giải quyết mức tăng đột biến về lưu lượng truy cập từ các lượt xoá theo TTL.
Quá trình xoá thông qua các cuộc gọi TTL đều đang hoạt động trình nghe tổng quan nhanh và trình kích hoạt Cloud Functions Cloud Firestore điều kiện kích hoạt.
Trường và chỉ mục TTL
Trường TTL có thể được lập chỉ mục hoặc huỷ lập chỉ mục. Tuy nhiên, vì trường TTL là thì việc lập chỉ mục trường có thể ảnh hưởng đến hiệu suất ở tỷ lệ 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 điểm nóng chống lại các phương pháp hay nhất. Điểm phát sóng là tỷ lệ đọc, ghi và xoá 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 quy tắc miễn trừ cho chỉ mục một trường để tắt chỉ mục trên trường TTL.
Quyền
Việc định cấu hình chính sách TTL yêu cầu quyền sau đây trong dự án:
- Để xem các chính sách TTL, bạn phải tuân thủ
datastore.indexes.list
vàdatastore.indexes.get
. - Việc sửa đổi các chính sách TTL yêu cầu
datastore.indexes.update
quyền. - Việc kiểm tra trạng thái của các hoạt động TTL cần có
datastore.operations.list
vàdatastore.operations.get
.
Đối với những vai trò được chỉ định những quyền này, hãy xem 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 Giao diện dòng lệnh (CLI) của gcloud để quản lý các chính sách TTL, hãy sử dụng
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 sẽ chỉ định một trường tài liệu làm thời hạn cho tài liệu trong nhóm thu thậ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 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 định thêm sau này.
Hãy xem xét những điều sau trước khi đặt giá trị cho trường TTL:
Giá trị trường TTL có thể là thời gian trong tương lai, hiện tại hoặc trong quá khứ. Nếu giá trị là thời gian trước đây, tài liệu ngay lập tức đủ điều kiện để xoá. Ví dụ: bạn bạn có thể tạo một chính sách TTL với trường
expireAt
, sau đó thêm vào trường này tài liệu hiện có.Việ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ẽ tắt TTL cho từng tài liệu.
Để tạo 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 nhóm thu thập và tên trường dấu thời gian.
Nhấp vào Tạo.
Bảng điều khiển sẽ trở lại trang Thời gian tồn tại. Nếu thao tác khởi động thành công thì trang này sẽ thêm một mục vào bảng chính sách TTL. Bật thì trang sẽ hiển thị thông báo lỗi.
Google Cloud
Sử dụng 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
Khoảng thời gian bật chính sách TTL
Ngay cả trên cơ sở dữ liệu trống, có thể mất từ mười phút trở lên để bật TTL . Khi bạn bắt đầu một thao tác, việc đóng cửa sổ dòng lệnh sẽ không huỷ hoạt động.
Xem chính sách về TTL
Để xem các chính sách TTL và trạng thái của các chính sách đó, 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 này liệt kê các chính sách TTL cho cơ sở dữ liệu của bạn và bao gồm các chính sách trạng thái.
Google Cloud
Sử dụng
firestore fields ttls list
để định cấu hình chính sách TTL. Lệnh sau đây liệt kê tất cả TTL
Google Cloud.
gcloud firestore fields ttls list
Để liệt kê các chính sách TTL trong một nhóm thu thập cụ thể, hãy dùng cách 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 Giao diện dòng lệnh (CLI) của gcloud để xem thêm thông tin về chính sách TTL
đang ở trạng thái CREATING
.
Sử dụng lệnh operations list
để xem tất cả các mục đang chạy và
hoạt động mới hoàn thành 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 hoạt động.
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 chứa chính sách TTL. Trong phạm vi này hàng trong bảng, hã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 Xoá.
Bảng điều khiển sẽ trở lại trang Thời gian tồn tại. Sau khi thành công, Cloud Firestore sẽ xoá chính sách TTL khỏi bảng.
Google Cloud
1. Sử dụng
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
Theo dõi hoạt động xoá TTL
Bạn có thể sử dụng Cloud Monitoring để xem chỉ số về các lượt xoá theo TTL. Cloud Firestore cung cấp các chỉ số sau đây 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ượt xoá theo thời gian tồn tại |
Tổng số tài liệu đã bị xoá theo chính sách TTL. |
firestore.googleapis.com/document/ttl_expiration_to_deletion_delays | Hết hạn thời gian tồn tại của thời gian trì hoãn xoá |
Thời gian trôi qua tính từ khi tài liệu hết hạn theo một TTL và thời điểm thực sự bị xoá. |
Để thiết lập một trang tổng quan có các chỉ số về Cloud Firestore, hãy xem quản lý trang tổng quan tuỳ chỉnh và thêm tiện ích trang tổng quan.