ภาพรวมการดำเนินการของไปป์ไลน์ Firestore

การดำเนินการไปป์ไลน์ Firestore เป็นฟีเจอร์หลักของ Firestore Enterprise Edition ซึ่งสร้างขึ้นบนเครื่องมือค้นหาใหม่เพื่อขยาย ช่วงของคำค้นหาที่เป็นไปได้ให้กว้างขึ้นอย่างมาก การดำเนินการไปป์ไลน์ Firestore ใช้ไวยากรณ์การค้นหาที่ยืดหยุ่นและวิธีการจัดทำดัชนีที่แตกต่างกันซึ่งดัชนีเป็นแบบไม่บังคับและไม่ได้สร้างขึ้นโดยอัตโนมัติ ทำให้การดำเนินการดึงข้อมูลขั้นสูงสำหรับแอปพลิเคชันเป็นไปได้

ฟีเจอร์ของการดำเนินการไปป์ไลน์ Firestore

Firestore Enterprise Edition และการดำเนินการไปป์ไลน์ใหม่ใช้เครื่องมือค้นหาขั้นสูงใหม่ที่ช่วยขจัดข้อจำกัดที่มีอยู่มากมายของ Firestore Standard Edition การดำเนินการไปป์ไลน์ Firestore มีฟีเจอร์การค้นหาใหม่ๆ กว่า 120 รายการ การดำเนินการของไปป์ไลน์ Firestore มีความสามารถดังนี้

ไวยากรณ์ที่ประกอบได้ตามระยะ

การค้นหาแบบไปป์ไลน์สร้างขึ้นโดยการกำหนดชุดขั้นตอนตามลำดับที่จะ ดำเนินการตามลำดับ ซึ่งช่วยให้ดำเนินการที่ซับซ้อนได้ เช่น การกรองใน ผลลัพธ์ของการรวม ซึ่งก่อนหน้านี้ทำไม่ได้

ตัวอย่างต่อไปนี้แสดงการค้นหาแบบไปป์ไลน์ที่ค้นหาจำนวนรหัสผลิตภัณฑ์ที่ไม่ซ้ำกัน ที่ดูในเดือนที่ผ่านมา

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()

ความสามารถที่เพิ่มขึ้น

การค้นหาไปป์ไลน์จะเปิดตัวความสามารถใหม่ๆ มากมาย ซึ่งรวมถึงความสามารถต่อไปนี้

  • การรวม: รองรับฟังก์ชันการรวมใหม่ (เช่น sum(...), min(...) และ count_distinct(...)) ร่วมกับฟิลด์การจัดกลุ่มที่กำหนดเอง
  • การกรองที่ซับซ้อน: รองรับฟังก์ชันใหม่กว่า 120 รายการเพื่อแสดงข้อความ where(...) ที่ซับซ้อนโดยพลการ รวมถึง regex_match(...), add(...) และ str_contains(...) โดยไม่ต้องมีข้อกำหนดดัชนีที่เฉพาะเจาะจง
  • การอ่าน / การคาดการณ์บางส่วน: ดึงข้อมูลชุดย่อยแบบไดนามิกของเอกสารโดยใช้ select(...), remove_fields(...) และขั้นตอนการจัดการเอกสารอื่นๆ อีกมากมาย

การสนับสนุนแบบเรียลไทม์และแบบออฟไลน์

หากต้องการใช้แบบเรียลไทม์และออฟไลน์ นักพัฒนาแอปสามารถใช้การดำเนินการหลักของ Firestore ในรุ่น Firestore Enterprise ได้

การผสานรวมไคลเอ็นต์และเครื่องมือ

รุ่น Enterprise มีฟีเจอร์เฉพาะสำหรับการโต้ตอบและจัดการ คำค้นหาในไปป์ไลน์ ดังนี้

  • การอธิบายและการสร้างโปรไฟล์การค้นหา: คุณสามารถใช้ผลลัพธ์ของคำอธิบายการค้นหาเพื่อทำความเข้าใจว่าการค้นหาใช้หน่วยการอ่านหรือการเขียนกี่หน่วย และวิเคราะห์การดำเนินการของการค้นหา
  • ข้อมูลเชิงลึกของคำค้นหา: รุ่น Enterprise รองรับข้อมูลเชิงลึกของคำค้นหา ซึ่งจะช่วยคุณพิจารณาได้ว่าจะสร้างดัชนีที่ใดเพื่อปรับปรุงประสิทธิภาพและต้นทุนโดยการให้ข้อมูลเชิงลึกเกี่ยวกับลักษณะประสิทธิภาพของคำค้นหา
  • ดัชนีประเภทใหม่: คุณสร้างดัชนีเฉพาะสำหรับรุ่น Enterprise ได้ รวมถึงดัชนีแบบกระจัดกระจาย นอกจากนี้ยังรองรับการสร้างและแก้ไขดัชนีการค้นหาแบบเวกเตอร์สำหรับฐานข้อมูลขององค์กรด้วย

ความแตกต่างระหว่าง Firestore Standard กับ Firestore Enterprise

ความแตกต่างด้านการปฏิบัติงานที่สำคัญระหว่างการปฏิบัติงานหลักและการปฏิบัติงานแบบไปป์ไลน์อยู่ที่ การจัดการการจัดทำดัชนี ซึ่งส่งผลต่อประสิทธิภาพและต้นทุนโดยตรง

Firestore มาตรฐาน - การดำเนินการหลัก Firestore Enterprise - การดำเนินการหลักและไปป์ไลน์
ข้อกำหนดในการจัดทำดัชนี ต้องมีดัชนีสำหรับการค้นหา

ระบบจะสร้างดัชนีสำหรับแต่ละช่องโดยอัตโนมัติ ส่วนการค้นหาที่ซับซ้อนกว่านั้นจะอาศัยดัชนีผสมหรือดัชนีกลุ่มคอลเล็กชันซึ่งต้องกำหนดค่าด้วยตนเอง

ไม่จำเป็นต้องมีดัชนี ดังนั้นการค้นหาจึงไม่บังคับ

คุณกำหนดดัชนีได้ตามต้องการ นอกจากนี้ รุ่น Enterprise ยังรองรับดัชนีหลายประเภทมากขึ้นด้วย ซึ่งรวมถึงดัชนีแบบไม่กระจัดกระจาย/กระจัดกระจาย และดัชนีที่ไม่ซ้ำกัน

ความเสี่ยงด้านประสิทธิภาพ คำค้นหาที่จัดทำดัชนี: ประสิทธิภาพและต้นทุนจะปรับขนาดตามขนาดของชุดผลลัพธ์

การค้นหาที่ไม่ได้จัดทำดัชนี: ประสิทธิภาพและต้นทุนจะปรับขนาดตามขนาดของชุดข้อมูล

คำค้นหาที่จัดทำดัชนี: ประสิทธิภาพและต้นทุนจะปรับขนาดตามขนาดของชุดผลลัพธ์

เราขอแนะนําให้ใช้เครื่องมืออธิบายการค้นหาและข้อมูลเชิงลึกของการค้นหาเพื่อสร้างดัชนี รวมถึงปรับปรุงประสิทธิภาพและต้นทุนของการค้นหา

ผลกระทบด้านต้นทุนของพื้นที่เก็บข้อมูล คุณจะเสียค่าใช้จ่ายในการจัดเก็บข้อมูลจากดัชนีอัตโนมัติและดัชนีแบบผสม คุณจะประหยัดค่าใช้จ่ายในการจัดเก็บข้อมูลเนื่องจากระบบจะไม่สร้างดัชนีสำหรับทุกช่องโดยอัตโนมัติ
ต้นทุน คิดค่าบริการต่อการดำเนินการอ่าน เขียน และลบเอกสาร คิดค่าบริการต่อหน่วยการอ่าน (4 KB) และหน่วยการเขียน (1 KB) การเขียนรายการดัชนีจะใช้หน่วยการเขียน

ดูข้อมูลเกี่ยวกับการกำหนดราคาใหม่พร้อมตัวอย่าง

กฎความปลอดภัย กฎความปลอดภัยจะปกป้องคอลเล็กชันโดยการยืนยันสิทธิ์อ่าน/เขียน กฎความปลอดภัยจะปกป้องคอลเล็กชันโดยการยืนยันสิทธิ์อ่าน/เขียน ดูวิธีสร้างโมเดลข้อมูลเพื่อรองรับการค้นหาไปป์ไลน์ ในคำแนะนำโมเดลข้อมูล