אופטימיזציה של האחסון לביצועים של שאילתות

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

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

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

קיבוץ נתונים בטבלה

שיטה מומלצת: ליצור טבלאות מקובצות.

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

נתונים של טבלת מחיצות

שיטה מומלצת: כדאי לחלק טבלאות גדולות למחיצות.

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

מידע נוסף על מחיצות זמין במאמר מבוא לטבלאות מחולקות.

שימוש בהגדרות של הטבלה ותאריך התפוגה של המחיצה

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

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

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

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

אם הטבלאות מחולקות למחיצות לפי תאריך, תפוגת ברירת המחדל של הטבלה במערך הנתונים חלה על המחיצות הנפרדות. אפשר גם לשלוט בתאריך התפוגה של המחיצה באמצעות הדגל time_partitioning_expiration בכלי שורת הפקודה של BigQuery או בהגדרת התצורה expirationMs ב-API. כשמחיצה מסוימת מתפוגגת, הנתונים במחיצה נמחקים אבל הטבלה המחולקת לא נמחקת, גם אם היא ריקה.

לדוגמה, הפקודה הבאה מגדירה את תוקף המחיצות לשלושה ימים:

bq mk \
--time_partitioning_type=DAY \
--time_partitioning_expiration=259200 \
project_id:dataset.table

צבירת נתונים לטווח ארוך

שיטה מומלצת: כדאי לבדוק אם יש צורך לאחסן נתונים ברמת השורה לטווח ארוך. אם לא, כדאי לאחסן לטווח ארוך רק נתונים מצטברים.

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

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