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

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

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

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

מהם עוד דברים חשובים שצריך להביא בחשבון?

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

מודל נתונים

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

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

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

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

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

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

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

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

נוכחות

כדאי לדעת מתי לקוח נמצא אונליין ומתי הוא אופליין. FirebaseRealtime Database יכול לתעד את סטטוס החיבור של הלקוח ולספק עדכונים בכל פעם שסטטוס החיבור של הלקוח משתנה.

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

שליחת שאילתה

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

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

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

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

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

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

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

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

מדרגיות

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

אבטחה

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

תמחור

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

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

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

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

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

כאן אפשר לקרוא מידע נוסף על תוכניות התמחור והתשלומים של Realtime Database.

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

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

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

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

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