שיטות מומלצות לטעינת נתונים בכמות גדולה

טעינת נתונים בכמות גדולה ל-Cloud Firestore באמצעות כלים כמו mongoimport ו-mongorestore.

Cloud Firestore היא מערכת מבוזרת מאוד שמציעה התאמה אוטומטית לעומס (scaling) כדי לענות על הצרכים של העסק שלכם. ‫Cloud Firestore מפצלת ומשלבת את הנתונים באופן דינמי על סמך העומס שהמערכת מקבלת.

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

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

שיטות מומלצות

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

mongoimport

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

mongorestore

כשמשתמשים בכלי mongorestore, צריך להסיר את הפרמטר retryWrites=false ממחרוזת החיבור כדי לשפר את העמידות לכשלים זמניים.

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

תכנות אסינכרוני

כשמפתחים תוכנה משלכם באמצעות פעולות שתואמות ל-MongoDB, אפשר לשפר את ההרצה המקבילית בדרכים הבאות:

  • מסגרות אסינכרוניות: שימוש במסגרות אסינכרוניות מאפשר לעבד בקשות ולהגיב להן במקביל. כשמבצעים קריאות למסד הנתונים, אין צורך לפתח מאגרי חיבורים או תורים מורכבים. כל תהליך בקשה יכול להשתמש בחיבורים עצמאיים ולבצע את הקריאות למסד הנתונים במקביל.
  • שימוש בשירותי מחשוב מקבילי: באמצעות שירותים כמו Cloud Run, המערכת יכולה לשנות את מספר העובדים שנדרשים לעיבוד הנתונים.

כשלים זמניים

כשעובדים עם מערכת גדולה ומבוזרת כמו Cloud Firestore, יכול להיות שתיתקלו בכשלים זמניים כמו שיבושים ברשת או התנגשות בעריכת מסמך.

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