בוחרים מסד נתונים: Cloud Firestore או Realtime Database

ב-Firebase יש שני מסדי נתונים מבוססי-ענן של מסמכים, שנגישים ללקוחות. אנחנו ממליצים ללקוחות חדשים להתחיל עם Cloud Firestore:

  • ‫Cloud Firestore הוא מסד נתונים של מסמכים שתואם ל-JSON ברמה שמתאימה לארגונים, ומומלץ על ידי יותר מ-600,000 מפתחים. הוא מתאים לאפליקציות עם מודלים עשירים של נתונים שדורשים יכולת שאילתות, מדרגיות וזמינות גבוהה. הוא גם תומך בסנכרון לקוחות עם זמן אחזור נמוך ובגישה לנתונים אופליין.

  • ‫Realtime Database הוא מסד הנתונים הקלאסי של Firebase בפורמט JSON. הוא מתאים לאפליקציות עם מודלים פשוטים של נתונים שדורשים חיפושים פשוטים וסנכרון עם זמן אחזור קצר, עם יכולת התאמה מוגבלת לעומס.

מה עוד חשוב לקחת בחשבון?

אחרי שתחשבו על הנקודות המרכזיות שצוינו למעלה, תוכלו לבחור מסד נתונים. אם אתם עדיין מתלבטים, בחלק הזה נסביר על הבדלים נוספים בין Cloud Firestore ל-Realtime Database.

מודל נתונים

גם Realtime Database וגם Cloud Firestore הם מסדי נתונים מסוג NoSQL.

Cloud Firestore [ PREFERRED ] Realtime Database
הנתונים נשמרים כאוספים של מסמכים.
  • קל לאחסן נתונים פשוטים במסמכים, שדומים מאוד ל-JSON.
  • קל יותר לארגן נתונים היררכיים מורכבים בקנה מידה גדול באמצעות אוספי משנה בתוך מסמכים.
  • נדרשת פחות דה-נורמליזציה ושיטוח נתונים.

מידע נוסף על מודל הנתונים של Cloud Firestore

הנתונים נשמרים כעץ JSON אחד גדול.
  • קל מאוד לאחסן נתונים פשוטים.
  • נתונים מורכבים והיררכיים קשה יותר לארגן בקנה מידה רחב.

מידע נוסף על מודל הנתונים של Realtime Database

תמיכה בזמן אמת ובמצב אופליין

שניהם כוללים ערכות SDK לנייד בזמן אמת, ושניהם תומכים באחסון נתונים מקומי לאפליקציות שמוכנות לשימוש אופליין.

Cloud Firestore [ PREFERRED ] Realtime Database
תמיכה אופליין בלקוחות Apple, ‏Android ואינטרנט. תמיכה אופליין בלקוחות אפל ו-Android.

נוכחות

כדאי לדעת מתי הלקוח מחובר או לא מחובר. ‫Firebase Realtime Database יכול לתעד את סטטוס החיבור של הלקוח ולספק עדכונים בכל פעם שסטטוס החיבור של הלקוח משתנה.

Cloud Firestore [ PREFERRED ] Realtime Database
אין תמיכה מובנית. אתם יכולים להרחיב את הנוכחות של Realtime Database על ידי סנכרון של Cloud Firestore ו-Realtime Database באמצעות Cloud Functions. מידע נוסף זמין במאמר יצירת נוכחות ב-Cloud Firestore. יש תמיכה בנוכחות.

שליחת שאילתות

אחזור, מיון וסינון של נתונים מכל אחד ממסדי הנתונים באמצעות שאילתות.

Cloud Firestore [ PREFERRED ] Realtime Database
שאילתות עם אינדקסים עם מיון וסינון מורכבים.
  • אפשר לשרשר מסננים ולשלב סינון ומיון של מאפיין בשאילתה אחת.
  • השאילתות הן שטחיות: הן מחזירות רק מסמכים באוסף מסוים או בקבוצת אוספים מסוימת, ולא מחזירות נתונים של אוספי משנה.
  • שאילתות תמיד צריכות להחזיר מסמכים שלמים.
  • השאילתות נוספות לאינדקס כברירת מחדל: ביצועי השאילתות הם ביחס ישר לגודל של קבוצת התוצאות, ולא לגודל של קבוצת הנתונים.
שאילתות עמוקות עם תכונות מיון וסינון מוגבלות.
  • שאילתות יכולות למיין או לסנן לפי מאפיין, אבל לא את שניהם.
  • השאילתות הן עמוקות כברירת מחדל: הן תמיד מחזירות את כל עץ המשנה.
  • שאילתות יכולות לגשת לנתונים בכל רמת פירוט, עד לערכים של צומתי עלה ספציפיים בעץ ה-JSON.
  • שאילתות לא דורשות אינדקס, אבל הביצועים של שאילתות מסוימות יורדים ככל שקבוצת הנתונים גדלה.

כתיבה ועסקאות

Cloud Firestore [ PREFERRED ] Realtime Database
פעולות כתיבה וטרנזקציות מתקדמות.
  • פעולות כתיבת נתונים באמצעות פעולות הגדרה ועדכון, וגם טרנספורמציות מתקדמות כמו אופרטורים של מערכים ואופרטורים מספריים.
  • עסקאות יכולות לקרוא ולכתוב נתונים באופן אטומי מכל חלק של מסד הנתונים.
פעולות כתיבה ועסקאות בסיסיות.

אמינות וביצועים

Cloud Firestore [ PREFERRED ] Realtime Database
‫Cloud Firestore הוא פתרון אזורי ובמספר אזורים שמתרחב אוטומטית.
  • פתרון עם זמן אחזור קצר, שבו זמני התגובה בדרך כלל לא עולים על 30 אלפיות השנייה.
  • הנתונים מאוחסנים בכמה מרכזי נתונים באזורים שונים, כדי להבטיח יכולת התאמה גלובלית ואמינות גבוהה.
  • זמין בהגדרות אזוריות או במספר אזורים ברחבי העולם.
מידע נוסף על מאפייני הביצועים והאמינות של Cloud Firestore זמין בהסכם רמת השירות (SLA).
‫Realtime Database הוא פתרון אזורי.
  • האפשרות הזו זמינה בהגדרות לפי אזור. מסדי הנתונים מוגבלים לזמינות אזורית בתוך אזור.
  • זמן אחזור נמוך במיוחד, עם זמני תגובה אופייניים של עד 10 אלפיות השנייה. אפשרות אידיאלית לסנכרון מצב תכוף.
מידע נוסף על מאפייני הביצועים והאמינות של Realtime Database זמין בהסכם רמת השירות.

זמן הפעולה התקינה

Cloud Firestore [ PREFERRED ] Realtime Database
זמן פעולה תקינה ארוך במיוחד.
  • זמן פעולה תקינה אופייני של 99.999%.
  • אם הזמינות חשובה מאוד, למשל באפליקציות של מסחר אלקטרוני, השתמשו ב-Cloud Firestore.
זמן פעולה תקינה ארוך.
  • זמן פעולה תקינה אופייני של 99.95%.

מדרגיות

Cloud Firestore [ PREFERRED ] Realtime Database
ההתאמה לעומס היא אוטומטית.
  • התאמה אוטומטית לחלוטין של העומס. אין הגבלות על חיבורים בו-זמניים או על קצב הכתיבה הכולל למסד הנתונים בשנייה.
  • יש מגבלות על קצבי הכתיבה למסמכים או לאינדקסים ספציפיים.
כדי להגדיל או להקטין את המערכת צריך להשתמש בפיצול נתונים.
  • אפשר להגדיל את קנה המידה לכ-200,000 חיבורים בו-זמנית ו-1,000 כתיבות בשנייה במסד נתונים אחד. כדי להגדיל את הנפח מעבר לכך, צריך לפצל את הנתונים לכמה מסדי נתונים.
  • אין מגבלות מקומיות על קצבי הכתיבה של נתונים ספציפיים.

אבטחה

Cloud Firestore [ PREFERRED ] Realtime Database
כללים לא מדורגים שמשלבים הרשאה ואימות.
  • קריאה וכתיבה מערכות SDK לנייד שמאובטחות על ידי Cloud Firestore Security Rules.
  • פעולות קריאה וכתיבה מ-SDK של שרתים שמאובטחים באמצעות ניהול זהויות והרשאות גישה (IAM).
  • הכללים לא חלים על כל התיקיות, אלא אם משתמשים בתו כללי לחיפוש.
  • כללים יכולים להגביל שאילתות: אם תוצאות השאילתה עשויות להכיל נתונים שלמשתמש אין גישה אליהם, השאילתה כולה תיכשל.
שפת כללים מדורגת שמפרידה בין הרשאה לאימות.

תמחור

שני הפתרונות זמינים בתוכניות התמחור Spark ו-Blaze.

Cloud Firestore [ PREFERRED ] Realtime Database
החיובים הם בעיקר על פעולות שבוצעו במסד הנתונים (קריאה, כתיבה, מחיקה), ובשיעור נמוך יותר על רוחב פס ואחסון.

ב-Cloud Firestore אפשר להגדיר תקציבים חודשיים והתראות כדי להימנע מהוצאות גבוהות מדי.

מידע נוסף על תוכניות התמחור והתשלומים של Cloud Firestore

חיובים רק על רוחב פס ואחסון, אבל בתעריף גבוה יותר.

מידע נוסף על תוכניות התמחור והתשלומים של Realtime Database

שימוש גם ב-Cloud Firestore וגם ב-Realtime Database

אפשר להשתמש בשני מסדי הנתונים באותה אפליקציית Firebase או באותו פרויקט ב-Firebase. שני מסדי הנתונים NoSQL יכולים לאחסן את אותם סוגי נתונים, וספריות הלקוח פועלות באופן דומה. אם אתם מחליטים להשתמש בשני מסדי הנתונים באפליקציה, חשוב לזכור את ההבדלים שצוינו קודם.

מידע נוסף על התכונות שזמינות ב-Realtime Database וב-Cloud Firestore.

מוכנים לבחור מסד נתונים?

אנחנו מקווים שההשוואה הזו עזרה לכם לבחור פתרון למסד נתונים ב-Firebase. עכשיו אתם יכולים ללמוד איך להוסיף מסד נתונים לפרויקטים שלכם ב-Firebase.