Catch up on highlights from Firebase at Google I/O 2023. Learn more

Quản lý lưu giữ dữ liệu với chính sách TTL

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.listdatastore.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.listdatastore.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

  1. 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

  2. Nhấp vào Tạo chính sách .

  3. Nhập tên nhóm bộ sưu tập và tên trường dấu thời gian.

  4. 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

  1. 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

  2. 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).

  3. 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ỉnhthêm tiện ích trang tổng quan .