Tổng quan về các thao tác trên Kênh Firestore

Các thao tác trong quy trình Firestore là một tính năng chính của phiên bản Firestore Enterprise, được xây dựng trên một công cụ truy vấn mới để mở rộng đáng kể phạm vi của các truy vấn có thể có. Các thao tác trong Pipeline của Firestore sử dụng một cú pháp truy vấn linh hoạt và một phương thức lập chỉ mục riêng biệt, trong đó chỉ mục là không bắt buộc và không được tạo tự động, cho phép các thao tác truy xuất dữ liệu nâng cao cho các ứng dụng.

Các tính năng của hoạt động trong quy trình Firestore

Phiên bản Firestore Enterprise và các hoạt động Pipeline mới sử dụng một công cụ truy vấn mới, nâng cao, giúp loại bỏ nhiều hạn chế hiện có của phiên bản Firestore Standard. Các thao tác trong quy trình Firestore cung cấp hơn 120 tính năng truy vấn mới. Các thao tác trong Pipeline Firestore có những chức năng sau:

Cú pháp có thể kết hợp theo giai đoạn

Truy vấn quy trình được tạo bằng cách xác định một loạt giai đoạn tuần tự được thực thi theo thứ tự. Điều này cho phép các thao tác phức tạp, chẳng hạn như lọc trên kết quả của một hoạt động tổng hợp mà trước đây không thể thực hiện được.

Ví dụ sau đây cho thấy một truy vấn quy trình tìm số lượng mã sản phẩm riêng biệt đã xem trong tháng trước:

guard let cutoffDate = Calendar.current.date(byAdding: .month, value: -1, to: Date()) else {
  return
}
let snapshot = try await db.pipeline()
  .collection("productViews")
  .where(Field("viewedAt").greaterThan(cutoffDate.timeIntervalSince1970))
  .aggregate([Field("productId").countDistinct().as("uniqueProductViews")])
  .execute()

Các khả năng mở rộng

Truy vấn Pipelines mang đến nhiều chức năng mới, bao gồm:

  • Tổng hợp: Hỗ trợ các hàm tổng hợp mới (chẳng hạn như sum(...), min(...)count_distinct(...)) kết hợp với các trường phân nhóm tuỳ ý.
  • Lọc phức tạp: Hỗ trợ hơn 120 hàm mới để thể hiện các câu lệnh where(...) phức tạp tuỳ ý, bao gồm regex_match(...), add(...)str_contains(...), tất cả đều không có yêu cầu về chỉ mục cố định.
  • Đọc / Chiếu một phần: Truy xuất các tập hợp con động của tài liệu bằng cách sử dụng select(...), remove_fields(...) và nhiều giai đoạn thao tác khác với tài liệu.

Hỗ trợ theo thời gian thực và ngoại tuyến

Để sử dụng tính năng Theo thời gian thực và Ngoại tuyến, nhà phát triển có thể sử dụng các thao tác Firestore Core trên phiên bản Firestore Enterprise.

Tích hợp ứng dụng và công cụ

Phiên bản Enterprise có các tính năng chuyên biệt để tương tác và quản lý Truy vấn trong quy trình:

  • Giải thích và lập hồ sơ truy vấn: Bạn có thể sử dụng kết quả Giải thích truy vấn để biết một truy vấn sử dụng bao nhiêu đơn vị đọc hoặc ghi và phân tích quá trình thực thi của truy vấn đó.
  • Thông tin chi tiết về cụm từ tìm kiếm: Phiên bản dành cho doanh nghiệp hỗ trợ Thông tin chi tiết về cụm từ tìm kiếm. Tính năng này giúp bạn xác định vị trí có thể tạo chỉ mục để cải thiện hiệu suất và chi phí bằng cách cung cấp thông tin chi tiết về các đặc điểm hiệu suất của cụm từ tìm kiếm.
  • Các loại chỉ mục mới: Bạn có thể tạo chỉ mục chuyên biệt cho phiên bản Enterprise, bao gồm cả chỉ mục thưa. Công cụ này cũng hỗ trợ việc tạo và chỉnh sửa chỉ mục tìm kiếm vectơ cho cơ sở dữ liệu doanh nghiệp.

Sự khác biệt giữa Firestore Standard và Firestore Enterprise

Sự khác biệt chính về hoạt động giữa các hoạt động Core và Pipeline nằm ở việc quản lý lập chỉ mục, điều này ảnh hưởng trực tiếp đến hiệu suất và chi phí.

Firestore Standard – Các thao tác cốt lõi Firestore Enterprise – Các thao tác cốt lõi và thao tác theo quy trình
Yêu cầu về việc lập chỉ mục Bạn phải có chỉ mục cho các truy vấn.

Chỉ mục cho các trường riêng lẻ được tạo tự động, trong khi các truy vấn phức tạp hơn dựa vào chỉ mục kết hợp hoặc chỉ mục nhóm tập hợp mà bạn phải định cấu hình theo cách thủ công.

Không bắt buộc phải có chỉ mục, do đó, chỉ mục là không bắt buộc đối với các truy vấn.

Bạn xác định chỉ mục khi cần. Phiên bản dành cho doanh nghiệp cũng hỗ trợ nhiều loại chỉ mục hơn, bao gồm cả chỉ mục không thưa thớt/thưa thớt và chỉ mục duy nhất.

Rủi ro về hiệu suất Truy vấn được lập chỉ mục: Hiệu suất và chi phí tăng theo quy mô của tập kết quả.

Truy vấn chưa được lập chỉ mục: Hiệu suất và chi phí tăng theo quy mô của tập dữ liệu.

Truy vấn được lập chỉ mục: Hiệu suất và chi phí tăng theo quy mô của tập kết quả.

Bạn nên sử dụng công cụ Giải thích truy vấn và Thông tin chi tiết về truy vấn để tạo chỉ mục cũng như cải thiện hiệu suất và chi phí của các truy vấn.

Hệ quả về chi phí lưu trữ Bạn phải chịu chi phí lưu trữ phát sinh từ các chỉ mục tự động và chỉ mục kết hợp. Bạn tiết kiệm được chi phí lưu trữ vì các chỉ mục không được tự động tạo cho mọi trường.
Giá vốn Tính phí cho mỗi thao tác đọc, ghixoá tài liệu. Tính phí theo Đơn vị đọc (các phần 4 KB) và Đơn vị ghi (các phần 1 KB). Việc ghi các mục chỉ mục sẽ tiêu tốn Đơn vị ghi.

Tìm hiểu về mô hình định giá mới qua một số ví dụ.

Quy tắc bảo mật Quy tắc bảo mật bảo vệ các bộ sưu tập bằng cách xác minh quyền đọc/ghi. Quy tắc bảo mật bảo vệ các bộ sưu tập bằng cách xác minh quyền đọc/ghi. Tìm hiểu cách mô hình hoá dữ liệu để hỗ trợ các truy vấn trong quy trình trong hướng dẫn Mô hình dữ liệu.