בוחרים מסד נתונים: 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
תמיכה אופליין בלקוחות של אפל, 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מאפייני הביצועים והאמינות מופיע בהסכם רמת השירות.
Realtime Database הוא פתרון אזורי.
  • זמין בתצורות אזוריות. מסדי נתונים מוגבלים לזמינות אזורית בתוך אזור.
  • חביון נמוך במיוחד, עם זמני תגובה אופייניים שלא עולים על 10 אלפיות השנייה. אפשרות אידיאלית לסנכרון תכוף של מצב.
מידע נוסף על מאפייני הביצועים והמהימנות של Realtime Database זמין בהסכם רמת השירות.

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

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

מדרגיות

Cloud Firestore [ PREFERRED ] Realtime Database
ההתאמה מתבצעת באופן אוטומטי.
  • התאמה אוטומטית לחלוטין. אין הגבלות על מספר החיבורים בו-זמנית או על קצב הכתיבה הכולל למסד הנתונים (כתיבות לשנייה).
  • יש מגבלות על שיעורי כתיבה למסמכים או לאינדקסים ספציפיים.
כדי להגדיל או להקטין את ה-PAT, צריך לבצע שרדינג.
  • התאמה לעומס (scaling) לכ-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 או באותו פרויקט. בשני מסדי הנתונים מסוג NoSQL אפשר לאחסן את אותם סוגי נתונים, וספריות הלקוח פועלות באופן דומה. אם מחליטים להשתמש בשני מסדי הנתונים באפליקציה, חשוב לזכור את ההבדלים שצוינו קודם.

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

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

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