Quản lý lưu giữ dữ liệu bằng 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 24 giờ sau ngày hết hạn.

Định giá

Hoạt động 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 hoạt động xóa, hãy xem Giá của Cloud Firestore .

Giới hạn và hạn chế

  • Chỉ có một trường cho mỗi nhóm bộ sưu tập có thể được đánh dấu là trường TTL.
  • Tổng cộng có 200 cấu hình cấp trường được cho phép. 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 trừ lập chỉ mục một trường và chính sách TTL trên cùng một trường sẽ được tính là một cấu hình trường hướng tới giới hạn.
  • Đối với khách hàng của Firestore ở chế độ Kho dữ liệu, không thể sử dụng TTL với chế độ đồng thời là Lạc quan với các nhóm thực thể . Hãy cân nhắc việc thay đổi chế độ đồng thời theo cách này .

Xóa TTL

Lưu ý các hành vi chính sau đây của việc xóa theo hướng TTL:

  • 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 quá 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 giảm tổng chi phí sở hữu đối với việc xóa. Dữ liệu thường bị xóa trong vòng 24 giờ sau ngày hết hạn.

  • Việc xóa tài liệu thông qua TTL sẽ không xóa các bộ sưu tập con trong tài liệu đó.

  • Việc áp dụng chính sách TTL trên nhóm bộ sưu tập hiện có sẽ 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 của nhóm bộ sưu tập đó.

  • Nếu 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 thì tài liệu sẽ bị xóa trong vòng 24 giờ kể từ khi chính sách ttl hoàn tất thiết lập và bắt đầu hoạt động.

  • 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 bị 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 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 thời 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 sang ngày sau đó thì 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 đ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 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 điều khiển.

  • Việc xóa thông qua TTL sẽ gọi tất cả trình nghe ảnh chụp nhanh đang hoạt động và kích hoạt Chức năng đám mây Trình kích hoạt 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 nóng đi ngược lại các phương pháp hay nhất. Điểm phát sóng có tốc độ đọc, ghi và xóa cao đối với 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 một trường để 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 sự cho phép sau trong dự án:

  • Việc xem các chính sách TTL yêu cầu các quyền datastore.indexes.listdatastore.indexes.get .
  • Việc sửa đổi chính sách TTL yêu cầu quyền datastore.indexes.update .
  • Việc kiểm tra trạng thái hoạt động của TTL yêu cầu datastore.operations.listdatastore.operations.get .

Để biết 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 của 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 chính sách TTL, bạn chỉ định trường tài liệu làm thời gian hết hạn cho các tài liệu trong 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 định thêm sau.

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 trong quá khứ. Nếu giá trị là thời gian 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ó.

  • 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ẽ 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. Trong Google Cloud Platform Console, hãy truy cập trang Cơ sở dữ liệu .

    Đi tới cơ sở dữ liệu

  2. Chọn cơ sở dữ liệu cần thiết từ danh sách cơ sở dữ liệu.

  3. Trong menu điều hướng, nhấp vào Thời gian tồn tại .

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

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

  6. 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ục nhập vào bảng chính sách TTL. Khi thất bại, 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. 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

  1. Trong Google Cloud Platform Console, hãy truy cập trang Cơ sở dữ liệu .

    Đi tới cơ sở dữ liệu

  2. Chọn cơ sở dữ liệu cần thiết từ danh sách cơ sở dữ liệu.

  3. Trong menu điều hướng, 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 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 ước tính tiến độ 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. Trong Google Cloud Platform Console, hãy truy cập trang Cơ sở dữ liệu .

    Đi tới cơ sở dữ liệu

  2. Chọn cơ sở dữ liệu cần thiết từ danh sách cơ sở dữ liệu.

  3. Trong menu điều hướng, nhấp vào Thời gian tồn tại .

  4. Trong bảng chính sách TTL, tìm hàng dành cho chính sách TTL. Trong hàng của bảng này, hãy nhấp vào nút Xóa (thùng rác).

  5. 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 việc 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 Hết thời gian tồn tại do trì hoãn xóa

Thời gian trôi qua kể từ khi tài liệu hết hạn theo chính sách Thời gian tồn tại (TTL) cho đến khi tài liệu đó 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 .