סקירה כללית על תצוגות לוגיות ותצוגות מהותיות
ב-BigQuery יש שני סוגים של תצוגות: תצוגות לוגיות (רגילות) ותצוגות מהותיות. לשני הסוגים יש ממשק שאילתות משותף, אבל הם שונים במנגנונים הבסיסיים, בביצועים ובעלות. במאמר הזה אנחנו משווים בין המאפיינים, היתרונות והמגבלות של כל סוג, כדי לעזור לכם לבחור את התצוגה שמתאימה לעומס העבודה שלכם.
תצוגות לוגיות
תצוגה לוגית (רגילה) היא טבלה וירטואלית שמוגדרת על ידי שאילתת SQL. הוא לא שומר נתונים פיזיים. במקום זאת, היא מאחסנת את הלוגיקה של השאילתה שנדרשת כדי לאחזר נתונים ממסדי הנתונים הטבלאיים הבסיסיים. כששולחים שאילתה לתצוגה לוגית, מנוע השאילתות של BigQuery מרחיב את התצוגה לשאילתה הבסיסית שלה. בתהליך הזה, BigQuery מפעיל מחדש את התצוגה בכל פעם שקוראים לה.
היתרונות של תצוגות לוגיות כוללים:
- אין צורך בנפח אחסון נוסף. מכיוון שלא מאוחסנים נתונים נוספים, אתם משלמים רק על האחסון של מסדי הנתונים הטבלאיים.
- דיוק בזמן אמת. מכיוון שהשאילתה פועלת בזמן הביצוע, התוצאות תמיד משקפות את המצב העדכני ביותר של מסדי הנתונים הטבלאיים.
- הפשטה לוגית. מפשטת פעולות איחוד מורכבות או מחילה אבטחה ברמת השורה בלי לשכפל נתונים.
- גמישות ב-SQL. תמיכה בכל מגוון הפונקציות של BigQuery SQL, כולל פונקציות אנליטיות (window functions) מורכבות, פונקציות בהגדרת המשתמש (UDF) וכל סוגי הצירופים.
תצוגות מהותיות
תצוגות מהותיות הן תצוגות מחושבות מראש שמאחסנות מדי פעם את התוצאות של שאילתת SQL. בניגוד לתצוגות לוגיות, הן מאחסנות פיזית את הנתונים המחושבים, וכך BigQuery יכול להציג תוצאות מהר יותר בלי לעבד שוב ושוב את נתוני הבסיס הגולמיים. התכונה הזו יכולה להפחית את זמן האחזור של שאילתות במערכי נתונים גדולים, על ידי עיבוד מראש של שאילתות, ולהפחית את עלויות המחשוב של שאילתות שנמצאות בשימוש תכוף.
תצוגות מהותיות ב-BigQuery משלבות את המהירות של נתונים שחושבו מראש עם הדיוק של תצוגה בזמן אמת. הם עושים את זה באמצעות:
- רענון אוטומטי. תהליך ברקע מעדכן את התצוגות המהותיות כשמסדי הנתונים הטבלאיים משתנים.
- עדכניות הנתונים. אם מתבצעת שאילתה בזמן שרענון ברקע ממתין, BigQuery מפצה באופן אוטומטי על השינויים שלא עובדו במסד הנתונים הטבלאי כדי לספק תוצאות עדכניות.
- כוונון חכם. הכלי לאופטימיזציה של שאילתות יכול לנתב מחדש באופן אוטומטי שאילתות ממסדי נתונים טבלאיים לתצוגה המהותית, אם הוא קובע שהתצוגה המהותית יכולה לספק את התשובה בצורה יעילה יותר.
השוואה בין תצוגות לוגיות לתצוגות מהותיות
תצוגות לוגיות הן סוג התצוגה שמוגדר כברירת מחדל, אבל אם אתם שולחים לעיתים קרובות שאילתות לתצוגה גדולה או לתצוגה שדורשת משאבי מחשוב רבים, כדאי ליצור תצוגה מהותית. תצוגות לוגיות הן וירטואליות ומספקות הפניה לשימוש חוזר לקבוצת נתונים, אבל לא מאחסנות נתונים באופן פיזי. תצוגות מהותיות מוגדרות באמצעות SQL, כמו תצוגה לוגית, אבל הנתונים שבהם BigQuery משתמש כדי לשפר את הביצועים מאוחסנים פיזית.
בטבלה הבאה מפורטים קווי הדמיון וההבדלים בין תצוגות לוגיות לבין תצוגות מהותיות ב-BigQuery:
| מאפיין | תצוגה לוגית | תצוגה מהותית |
|---|---|---|
| שמירת נתונים | אין (וירטואלי) | פיזי (מאוחסן בדיסק) |
| ביצוע | בכל פעם שמתבצעת קריאה לתצוגה | חישוב מראש, רענון ברקע |
| נתונים לא עדכניים | אף פעם | אופציונלי 1 (באמצעות רענון) |
| ביצועים | משתנה (תלוי במסד הנתונים הטבלאי) | עקבי ומהיר |
| מורכבות ה-SQL | ללא הגבלה | מוגבלת |
| מותאם ל | אבטחה והפשטה | מהירות וחיסכון בעלויות |
| עלויות תחזוקה ואחסון | לא | כן |
1 האפשרות --max_staleness משפרת את ביצועי השאילתות עם עלויות מבוקרות כשמעבדים מערכי נתונים גדולים שמשתנים לעיתים קרובות.
מתי כדאי להשתמש בתצוגות לוגיות
- שכבות סמנטיות. לשנות שמות מורכבים של עמודות למונחים שמתאימים לעסקים, כדי שמשתמשים לא טכניים יוכלו להבין אותם.
- פיתוח מהיר. כדאי להשתמש בהן כשהלוגיקה משתנה ולא רוצים לנהל את התקורה של האחסון הפיזי.
- מקורות נתונים מאוחדים. לספק מקור נתונים לכלי המחשה חזותית כמו Data Studio או BigQuery sharing (לשעבר Analytics Hub).
מתי כדאי להשתמש בתצוגות מהותיות
- עיבוד מראש של נתונים. כדי לשפר את ביצועי השאילתות, כדאי להכין מראש צבירות, מסננים, איחודים ואשכולות.
- האצה של מרכז הבקרה. לשפר את הביצועים של כלי BI כמו Looker, ששולחים שאילתות לעיתים קרובות לאותם מדדים נצברים, כמו משתמשים פעילים ביום.
- ניתוח נתונים בזמן אמת בשידורים גדולים. יכול לספק תשובות מהירות יותר בטבלאות שמקבלות נתוני סטרימינג במהירות גבוהה.
- ניהול העלויות. להפחית את העלות של שאילתות יקרות שחוזרות על עצמן במערכי נתונים גדולים.
תצוגות מורשות
אפשר גם ליצור תצוגה מורשית כדי לשתף קבוצת משנה של נתונים ממערך נתונים של מקור לתצוגה במערך נתונים משני. אחר כך תוכלו לשתף את התצוגה הזו עם משתמשים וקבוצות ספציפיים (חשבונות משתמשים) שיכולים לראות את הנתונים שאתם משתפים ולהריץ עליהם שאילתות, אבל לא יכולים לגשת ישירות למערך הנתונים המקורי.
אפשר ליצור תצוגה מורשית לתצוגה לוגית או לתצוגה מהותית. תצוגה מורשית של תצוגה מהותית נקראת תצוגה מהותית מורשית.
שיטות מומלצות
בסביבה של BigQuery עם ארכיטקטורה טובה, תצוגות לוגיות הן כלי שימושי לאיחוד הנתונים שאתם צריכים. כדאי להשתמש בתצוגות מהותיות ככלי לאופטימיזציה של הביצועים, במקרים ספציפיים של מבני שאילתות עם תנועה גבוהה שכוללים צבירה כבדה.
במאמר התצוגה MATERIALIZED_VIEWS מוסבר איך לעקוב אחרי השימוש בתצוגות המהותיות והביצועים שלהן.