נתונים סטטיסטיים של טבלאות
ב-Bigtable יש נתונים סטטיסטיים של טבלאות – מטא-נתונים על טבלה – שנותנים מידע מסכם על הטבלה, כמו מספר השורות או מספר התאים הממוצע בכל עמודה.
במאמר הזה מוסבר מהם נתונים סטטיסטיים של טבלאות ואיך לקבל אותם באמצעות Google Cloud CLI. לפני שאתם קוראים את הדף הזה, חשוב שתבינו את מודל האחסון של Bigtable ותכירו את השיטות המומלצות לעיצוב סכימה ואת איסוף האשפה.
הנתונים הסטטיסטיים של הטבלה מספקים תצפיתיות על טבלת Bigtable. הם יכולים לעזור לכם לפתור בעיות בביצועים או באחסון, או לזהות את המקור של עלויות האחסון. הם גם יכולים לעזור לכם להבין אם אתם מאחסנים יותר נתונים ממה שאתם צריכים.
רמת הדיוק הצפויה
כשמאחזרים נתונים סטטיסטיים של טבלה, הנתונים שמתקבלים הם משוערים – הנתונים הסטטיסטיים של הטבלה משקפים את מצב הטבלה באחד מהאשכולות של המכונה, נכון לדחיסה האחרונה.
קבוצה מלאה של נתונים סטטיסטיים של טבלה זמינה רק אחרי הדחיסה הראשונית, שבדרך כלל מתרחשת כשבוע אחרי יצירת הטבלה. הנתונים הסטטיסטיים בטבלה מדויקים נכון לדחיסה האחרונה, שיכולה להיות לפני שבוע.
שדות של נתונים סטטיסטיים בטבלה
בקשה לסטטיסטיקות של טבלה מחזירה את השדות הבאים. פרטים ודוגמאות מופיעים בקטע הבא.
| שדה הנתונים הסטטיסטיים של הטבלה | שם ה-API | תיאור |
|---|---|---|
| מספר השורות | row_count |
מספר השורות בטבלה. לפרטים נוספים, ראו מספר השורות. |
| מספר העמודות הממוצע בכל שורה | average_columns_per_row |
המספר הממוצע של עמודות בכל שורה בטבלה כולה. לפרטים נוספים ולדוגמה, ראו מספר ממוצע של עמודות בכל שורה . |
| מספר התאים הממוצע לכל עמודה | average_cells_per_column |
המספר הממוצע של תאים שמאוחסנים בכל העמודות בכל השורות. לפרטים נוספים, ראו מספר התאים הממוצע לכל עמודה. |
| נתונים לוגיים בבייטים | logical_data_bytes |
כמה מקום הטבלה תופסת. לפרטים נוספים, ראו נתונים לוגיים בבייטים. |
הנתונים הסטטיסטיים של הטבלה כוללים גם את השדות הבאים לכל קבוצת עמודות בטבלה.
| השדה Column family stats | שם ה-API | תיאור |
|---|---|---|
| מספר העמודות הממוצע בכל שורה | average_columns_per_row |
המספר הממוצע של עמודות בכל שורה בקבוצת העמודות. לפרטים ולדוגמה, ראו מספר ממוצע של עמודות בכל שורה. |
| מספר התאים הממוצע לכל עמודה | average_cells_per_column |
מספר התאים בכל עמודה, בממוצע על פני כל השורות שיש בהן עמודות בקבוצת העמודות. לפרטים ולדוגמה, ראו מספר התאים הממוצע לכל עמודה. |
| נתונים לוגיים בבייטים | logical_data_bytes |
נפח האחסון שקבוצת העמודות תופסת. למידע נוסף, קראו את המאמר נתונים לוגיים בבייטים. |
פרטי השדות בטבלת הנתונים הסטטיסטיים
מספר השורות
מספר השורות הוא מספר השורות בטבלה. כל שורה מזוהה באמצעות מפתח השורה שלה.
מספר העמודות הממוצע בכל שורה
כדי להגיע למספר הממוצע של עמודות בכל שורה בטבלה, Bigtable סופר את מספר העמודות בטבלה כולה ומחלק את הערך הזה במספר השורות בטבלה.
לדוגמה, נבחן את הטבלה הבאה. בשורה הראשונה יש שלוש עמודות, ובשורה השנייה יש שתי עמודות.
| מפתח שורה | קבוצת עמודות family-A | קבוצת העמודות family-B | ||
|---|---|---|---|---|
| מפתח שורה 1 | family-A:qualifier-W | family-A:qualifier-X | family-B:qualifier-Y | |
| מפתח שורה 2 | family-A:qualifier-W | family-B:qualifier-Z | ||
בטבלה יש חמש עמודות ושתי שורות, כך שהמספר הממוצע של עמודות בכל שורה הוא 2.5.
הנתון הסטטיסטי הזה נותן לכם מושג כללי אם הטבלה גבוהה וצרה (מעט עמודות בכל שורה) או נמוכה ורחבה (הרבה עמודות בכל שורה).
מספר התאים הממוצע לכל עמודה
כדי לחשב את המספר הממוצע של תאים לכל עמודה בטבלה, Bigtable מחלק את המספר הכולל של התאים שמאוחסנים בטבלה במספר העמודות בטבלה.
בהתאם לעיצוב הסכימה ולמדיניות איסוף האשפה, יכול להיות שבטבלה יהיו כמה תאים בעמודה, או רק תא אחד. מספר התאים שאפשר לאחסן מוגבל על ידי מגבלות גודל הנתונים שמפורטות בדף "מכסות ומגבלות" בקטע גודל הנתונים בטבלאות.
אם המספר הזה גבוה מהצפוי, כדאי לבדוק את הכללים לאיסוף אשפה כדי לראות אם אתם שומרים יותר תאים מהנדרש. כדאי גם לשאול אם צריך לשנות את הסכימה ואת דפוסי הכתיבה.
נתונים לוגיים בבייטים (טבלה)
הערך הזה מייצג את המספר המשוער של בייטים לא דחוסים שצריך כדי לקרוא את כל הטבלה. הנתון הסטטיסטי הזה נותן לכם מושג לגבי נפח הנתונים הגולמיים שמאוחסנים בטבלה.
השוואה בין הגודל הלוגי לבין ניצול נפח האחסון
Bigtable דוחס נתונים באופן אוטומטי כשהוא כותב אותם בדיסק. כתוצאה מכך, גודל הטבלה שמדווח כ-Storage utilization (bytes) ב-Cloud Monitoring ובדף הסקירה הכללית של האשכול משקף את האחסון הפיזי הדחוס בדיסק, ולא את גודל הנתונים הלוגיים הלא דחוסים. גם החיוב על האחסון מבוסס על הגודל הפיזי הדחוס הזה.
הידיעה של שני הערכים עוזרת לכם להעריך את יחס הדחיסה בפועל:
חיסכון בדחיסה: חלוקת הנתונים הלוגיים בבייטים בניצול האחסון בבייטים נותנת אומדן של יחס הדחיסה. לדוגמה, אם בטבלה יש 10TB של נתונים לוגיים והיא צורכת 2.5TB של נפח אחסון בדיסק, יחס הדחיסה הוא בערך 4:1.
נתונים לא דחוסים או דחוסים מראש: אם ניצול האחסון ב-Cloud Monitoring שווה לנתונים הלוגיים בבייטים או גדול מהם, יכול להיות שהנתונים מאוחסנים בפורמט שלא נדחס בקלות (כמו נתונים שהוצפנו או נדחסו לפני הכתיבה ב-Bigtable), או שהטבלה מכילה ערכי תאים שגדולים מ-1MiB, ש-Bigtable לא דוחס באופן אוטומטי. למידע נוסף על האופן שבו Bigtable דוחס נתונים, ראו דחיסת נתונים.
נתונים שנמחקו או הוחלפו וממתינים לדחיסה: מוטציות חדשות נדחסות ברגע שהן נכתבות בדיסק, ולא במהלך הדחיסה. עם זאת, כשאתם מחליפים או מוחקים נתונים, הגרסאות הישנות של התאים וסמני המחיקה (tombstones) נשארים בדיסק – ונכללים בניצול נפח האחסון – עד שהדחיסה הבאה מסירה אותם באופן סופי. בנוסף, הנתונים הסטטיסטיים של הטבלה משקפים את הטבלה נכון לדחיסה האחרונה, ואילו ניצול האחסון ב-Cloud Monitoring מתעדכן באופן רציף כשנכתבים נתונים חדשים.
פרטי השדות של הנתונים הסטטיסטיים של קבוצת העמודות
הנתונים הסטטיסטיים של טבלה כוללים את השדות הבאים לכל קבוצת עמודות בטבלה.
מספר העמודות הממוצע בכל שורה
המספר הזה מחושב לפי מספר העמודות בקבוצת העמודות חלקי מספר השורות בטבלה.
לדוגמה, נבחן את הטבלה הבאה. בטבלה יש שלוש שורות עם עמודות בקבוצות העמודות family-A ו-family-B.
| מפתח שורה | קבוצת עמודות family-A | קבוצת העמודות family-B | ||
|---|---|---|---|---|
| מפתח שורה 1 | family-A:qualifier-W | family-A:qualifier-X | family-B:qualifier-Y | |
| מפתח שורה 2 | family-A:qualifier-W | |||
| מפתח שורה 3 | family-A:qualifier-W | family-A:qualifier-X | family-B:qualifier-Y | family-B:qualifier-Z |
בקבוצת העמודות family-A יש חמש עמודות בטבלה. אם נחלק את המספר הזה ב-3 שורות, נקבל את המספר הממוצע של תאים לכל עמודה ב-family-A, שהוא 1.67 (מעוגל כאן לשתי ספרות אחרי הנקודה העשרונית).
בקבוצת העמודות family-B יש שלוש עמודות בטבלה. אם מחלקים את זה ל-3 שורות, המספר הממוצע של עמודות בכל שורה ב-family-A הוא 1.
מספר התאים הממוצע לכל עמודה
כדי לקבוע את המספר הממוצע של תאים לכל עמודה בקבוצת עמודות, Bigtable סופר את כל התאים בקבוצת העמודות בכל השורות בטבלה ומחלק את המספר הזה במספר השורות בטבלה.
לדוגמה, נבחן את השורות הבאות במשפחת העמודות family-D.
| מפתח שורה | קבוצת העמודות family-D | ||
|---|---|---|---|
| מפתח שורה 1 | family-D:qualifier-W (3 cells) | family-D:qualifier-X (תא אחד) | |
| מפתח שורה 2 | family-D:qualifier-X (10 cells) | ||
| מפתח שורה 3 | family-D:qualifier-W (7 cells) | family-D:qualifier-Y (6 cells) | |
מספר התאים בקבוצת העמודות הוא 3 + 1 + 10 + 7 + 6 = 27. הערך הזה חלקי 3 (מספר השורות) אומר שבמשפחת העמודות family-D יש בממוצע 9 תאים לכל עמודה.
נתונים לוגיים בבייטים (קבוצת עמודות)
הנתונים הלוגיים בבייטים משקפים את המרחב הלא דחוס שקבוצת העמודות תופסת. הערך הזה הוא בערך מספר הבייטים הלא דחוסים שצריך כדי לקרוא את כל הנתונים בקבוצת העמודות בזמן שהנתונים הסטטיסטיים של הטבלה הוחזרו. בדומה לבייטים לוגיים ברמת הטבלה, הערך הזה לא משקף את החיסכון באחסון כתוצאה מדחיסת נתונים בדיסק.
דוגמה לשימוש ב-CLI של gcloud
כדי לקבל נתונים סטטיסטיים של טבלה שנקראת sample-table, משתמשים בפקודה bigtable instances table describe:
gcloud bigtable instances tables describe TABLE_ID \
--instance=INSTANCE_ID --view stats
מחליפים את מה שכתוב בשדות הבאים:
-
TABLE_ID: המזהה הקבוע של הטבלה -
INSTANCE_ID: המזהה הקבוע של המכונה
הפלט אמור להיראות כך:
columnFamilies:
my-family:
stats:
averageCellsPerColumn: 12.34
averageColumnsPerRow: 56.78
logicalDataBytes: 314159
name: projects/my-project/instances/INSTANCE_ID/tables/TABLE_ID
stats:
averageCellsPerColumn: 12.34
averageColumnsPerRow: 56.78
logicalDataBytes: 314159
rowCount: 271828