צבירת ערכים בזמן הכתיבה

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

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

  • משתמשים פעילים לשבוע
  • מספר החשיפות של המודעות
  • צפיות או שיתופים של תוכן ברשתות החברתיות
  • מספר מקורות המידע של המדיה

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

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

צבירת הנתונים ב-Bigtable בזמן הכתיבה מבטלת את הצורך בתוכנה לחילוץ, שינוי וטעינה (ETL) או בתוכנה לעיבוד סטרימינג כדי לצבור את הנתונים לפני או אחרי הכתיבה שלהם ל-Bigtable. אם האפליקציה שלכם משתמשת ב-Dataflow כדי לצבור נתונים של סטרימינג לפני שהיא כותבת אותם ל-Bigtable, אתם יכולים לשלוח את הנתונים ישירות לתאים מצטברים ב-Bigtable.

סוגי נתונים משוכפלים ללא קונפליקטים

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

אם אתם מבצעים מיגרציה ל-Bigtable ממסדי נתונים כמו Apache Cassandra,‏ Redis או Valkey, מבנים דומים במערכות האלה נקראים counters (מונים).

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


פעולה

תיאור

סכום

הערך בתא מוחלף בסכום של הערך החדש שנוסף ושל הערך הנוכחי בתא.

מינימום

הערך בתא מוחלף בערך הנמוך מבין הערך החדש שנוסף והערך הנוכחי בתא.

מקסימום

הערך של התא מוחלף בערך הגבוה יותר מבין הערך החדש שנוסף לבין הערך הנוכחי של התא.

HyperLogLog

הערך שנכתב מתווסף לקבוצה הסתברותית של כל הערכים שנוספו מאז האיפוס האחרון. הערך בתא מייצג את המצב של הקבוצה. מידע כללי נוסף על אלגוריתם HLL זמין במאמר HyperLogLog.

אפשר לקרוא ערכי HLL באמצעות ספריית Zetasketch.

סוגי המוטציות שאפשר לשלוח כדי ליצור ולעדכן תאים מצטברים הם AddToCell ו-MergeToCell.

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

קריאה ואז כתיבה

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

תצוגות מהותיות רציפות

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

המאמרים הבאים