פעולות הצינור של Firestore הן תכונה מרכזית במהדורת Firestore Enterprise, שמבוססת על מנוע שאילתות חדש כדי להרחיב באופן משמעותי את טווח השאילתות האפשריות. פעולות של צינורות נתונים ב-Firestore משתמשות בתחביר גמיש של שאילתות ובשיטת אינדוקס ייחודית שבה האינדקסים הם אופציונליים ולא נוצרים באופן אוטומטי. כך אפשר לבצע פעולות מתקדמות של אחזור נתונים באפליקציות.
תכונות של פעולות בצינור עיבוד נתונים של Firestore
מהדורת Firestore Enterprise והפעולות החדשות של Pipeline מתבססות על מנוע חדש ומתקדם לשאילתות, שמסיר הרבה מהמגבלות הקיימות של מהדורת Firestore Standard. פעולות של צינורות נתונים ב-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 Core במהדורת Firestore Enterprise.
Client and Tooling Integration
מהדורת Enterprise כוללת תכונות מיוחדות לאינטראקציה עם שאילתות של צינורות נתונים ולניהול שלהן:
- הסבר על שאילתות ופרופילים: אפשר להשתמש בתוצאות של Query Explain כדי להבין כמה יחידות קריאה או כתיבה צורכת שאילתה מסוימת ולנתח את הביצוע שלה.
- תובנות לגבי שאילתות: מהדורת Enterprise תומכת בתובנות לגבי שאילתות, שעוזרות לכם לקבוע איפה כדאי ליצור אינדקסים כדי לשפר את הביצועים והעלות. התובנות האלה מספקות לכם נראות של מאפייני הביצועים של השאילתות.
- סוגים חדשים של אינדקסים: אפשר ליצור אינדקסים מיוחדים למהדורת Enterprise, כולל אינדקסים דלילים. הוא תומך גם ביצירה ובעריכה של אינדקסים של חיפוש וקטורי למסדי נתונים של Enterprise.
ההבדלים בין Firestore Standard לבין Firestore Enterprise
ההבדל התפעולי העיקרי בין פעולות הליבה לפעולות הצינור הוא בניהול של יצירת אינדקסים, שמשפיע ישירות על הביצועים והעלות.
| Firestore Standard – פעולות ליבה | Firestore Enterprise – פעולות ליבה וצינורות נתונים | |
| דרישות בנוגע להוספה לאינדקס | כדי להריץ שאילתות, צריך להשתמש באינדקסים.
אינדקסים לשדות בודדים נוצרים באופן אוטומטי, אבל שאילתות מורכבות יותר מסתמכות על אינדקסים מורכבים או על אינדקסים של קבוצות אוספים שצריך להגדיר ידנית. |
האינדקסים לא נדרשים, ולכן הם אופציונליים לשאילתות.
אתם מגדירים את האינדקסים לפי הצורך. מהדורת Enterprise תומכת גם במגוון רחב יותר של סוגי אינדקסים, כולל אינדקסים לא דלילים/דלילים ואינדקסים ייחודיים. |
| סיכון ביצועים | שאילתות עם אינדקס: הביצועים והעלות משתנים בהתאם לגודל של קבוצת התוצאות. |
שאילתות שלא נוספו לאינדקס: הביצועים והעלויות משתנים בהתאם לגודל מערך הנתונים. שאילתות עם אינדקס: הביצועים והעלות משתנים בהתאם לגודל של קבוצת התוצאות. מומלץ להשתמש בכלים Query Explain ו-Query Insights כדי ליצור אינדקסים ולשפר את הביצועים והעלות של השאילתות. |
| השלכות על עלויות האחסון | אתם צוברים תקורה של אחסון ממדדים אוטומטיים וממדדים מורכבים. | אתם חוסכים בעלויות האחסון כי המערכת לא יוצרת אוטומטית אינדקסים לכל שדה. |
| מחיר מקורי | החיוב הוא על כל פעולת קריאה, כתיבה ומחיקה של מסמך. | החיוב מתבצע לכל יחידת קריאה (מנות של 4KB) ויחידת כתיבה (מנות של 1KB). כתיבת רשומות באינדקס צורכת יחידות כתיבה.
דוגמאות לתמחור החדש |
| כללי אבטחה | כללי אבטחה מגנים על אוספים על ידי אימות הרשאות קריאה/כתיבה. | כללי אבטחה מגנים על אוספים על ידי אימות הרשאות קריאה/כתיבה. במדריך מודל הנתונים מוסבר איך ליצור מודל של הנתונים כדי לתמוך בשאילתות של צינורות. |