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