תצוגות מורשות
במאמר הזה מוסבר איך ליצור תצוגות מורשות ותצוגות מורשות מגובות בחומר ב-BigQuery. אדמינים של נתונים יכולים ליצור תצוגה מורשית כדי לשתף קבוצת משנה של נתונים במערך נתונים עם משתמשים וקבוצות ספציפיים (גורמים ראשיים). החשבונות הראשיים יכולים לראות את הנתונים שאתם משתפים ולהריץ עליהם שאילתות, אבל הם לא יכולים לגשת ישירות למערך הנתונים המקורי.
סוגי צפיות
תצוגה לוגית היא סוג התצוגה שמוגדר כברירת מחדל ב-BigQuery, ותצוגה מגובה בחומר היא תצוגה שחושבה מראש ושומרת במטמון באופן תקופתי את התוצאות של שאילתה כדי לשפר את הביצועים והיעילות.
תצוגה מורשית של תצוגה לוגית נקראת תצוגה מורשית, אבל תצוגה מורשית של תצוגה מהותית נקראת תצוגה מהותית מורשית.
אם תצוגה לוגית מסתמכת על שאילתה גדולה או על שאילתה שדורשת הרבה משאבי מחשוב, אפשר ליצור במקומה תצוגה מהותית. כדי להבין את תרחישי השימוש בתצוגה לוגית ובתצוגה מגובה בחומר, אפשר לעיין במאמר סקירה כללית של תצוגות לוגיות ותצוגות מגובות בחומר.
שלבים כלליים ליצירת תצוגות מורשות
כדי ליצור ולשתף תצוגה, צריך לעיין בשלבים הבאים ברמה גבוהה, שזהים לתצוגות לוגיות מורשות ולתצוגות מהותיות מורשות.
- יוצרים מערך נתונים שיכיל את נתוני המקור.
- מריצים שאילתה כדי לטעון נתונים לטבלת יעד במערך נתוני המקור.
- יוצרים מערך נתונים שיכיל את התצוגה המורשית.
- אפשר ליצור תצוגה מורשית משאילתת SQL שמגבילה את העמודות שאנליסטים של הנתונים יכולים לראות בתוצאות השאילתה.
- נותנים לאנליסטים של הנתונים הרשאה להריץ משימות של שאילתות.
- נותנים למנתחי הנתונים גישה למערך הנתונים שמכיל את התצוגה המורשית.
- מעניקים לתצוגה המורשית גישה למערך נתוני המקור.
חלופות
למרות שתצוגות מורשות הן גמישות וניתנות להרחבה, יכול להיות שאחת מהשיטות הבאות תתאים יותר לתרחיש השימוש שלכם:
- הגדרת מדיניות ברמת השורה בטבלה.
- הגדרת מדיניות ברמת העמודה בטבלה.
- אחסון הנתונים בטבלה נפרדת.
- שיתוף כל התצוגות המפורטות במערך נתונים (מערכי נתונים מורשים).
שימוש באבטחה ברמת השורה או ברמת העמודה, או בטבלאות נפרדות
אדמינים של נתונים יכולים להגביל את היכולת של משתמשים לצפות במידע אישי רגיש על ידי הגדרת מדיניות גישה ברמת השורה בטבלה, או על ידי יצירת טבלה נפרדת שתכיל את המידע האישי הרגיש. אחסון נתונים בטבלה נפרדת מבודד את הנתונים ומבטל את האפשרות לראות כמה שורות קיימות בטבלה.
בנוסף, על ידי יצירה והחלה של תגי מדיניות, אדמין נתונים יכול להגביל את היכולת של המשתמשים להציג עמודות בטבלה.
אחסון נתונים בטבלה נפרדת הוא השיטה הכי מאובטחת אבל הכי פחות גמישה. הגדרת מדיניות ברמת השורה היא גמישה ומאובטחת, ושיתוף תצוגות מורשות הוא גמיש ומספק את הביצועים הטובים ביותר.
כדי להשוות בין השיטות האלה בפירוט, אפשר לעיין במקורות המידע הבאים:
- השוואה בין תצוגות מורשות, אבטחה ברמת השורה וטבלאות נפרדות
- מבוא לאבטחה ברמת השורה
- תרחישי שימוש לדוגמה באבטחה ברמת השורה
- מבוא לבקרת גישה ברמת העמודה
שיתוף כל התצוגות בקבוצת נתונים
אם רוצים לתת גישה למערך נתונים לאוסף של תצוגות מפורטות בלי להעניק הרשאה לכל תצוגה מפורטת בנפרד, אפשר לקבץ את התצוגות המפורטות למערך נתונים, ואז לתת למערך הנתונים שמכיל את התצוגות המפורטות גישה למערך הנתונים שמכיל את הנתונים.
לאחר מכן תוכלו להעניק לחשבונות משתמשים גישה למערך הנתונים שמכיל את קבוצת התצוגות המפורטות, או לתצוגות מפורטות ספציפיות במערך הנתונים, לפי הצורך. מערך נתונים שיש לו גישה למערך נתונים אחר נקרא מערך נתונים מורשה. מערך הנתונים שמאשר למערך נתונים אחר לגשת לנתונים שלו נקרא מערך נתונים משותף.
ברשימת בקרת הגישה של מערך נתונים יכולים להיות עד 2,500 משאבים מורשים בסך הכול, כולל תצוגות מורשות, מערכי נתונים מורשים ופונקציות מורשות. אם חרגתם מהמגבלה הזו בגלל מספר גדול של תצוגות מורשות, כדאי לקבץ את התצוגות במערכי נתונים מורשים. כשיטה מומלצת, כדאי לקבץ תצוגות שקשורות זו לזו במערכי נתונים מורשים כשמעצבים ארכיטקטורות חדשות של BigQuery, במיוחד ארכיטקטורות מרובות דיירים.
מידע נוסף מופיע במאמרים מערכי נתונים מורשים ומתן הרשאה למערך נתונים.
מגבלות
- כשיוצרים תצוגה מורשית או תצוגה מורשית מגובה בחומרים במערך נתונים אחר, מערך נתוני המקור ומערך נתוני התצוגה המורשית צריכים להיות באותו מיקום אזורי.
- כשמוחקים תצוגה עם הרשאת גישה, יכולות לחלוף עד 24 שעות עד שהיא תוסר מרשימת התצוגות. במהלך התקופה הזו, לא תהיה לכם גישה לתצוגה המורשית, אבל התצוגה המורשית שנמחקה יכולה להופיע ברשימת התצוגות, והיא נספרת במגבלת התצוגות המורשות. המגבלה הזו יכולה למנוע יצירה של תצוגות מורשות נוספות אם התצוגה המורשית החדשה תחרוג מהמגבלה.
- אי אפשר ליצור תצוגה מורשית בעותק משני. מידע נוסף זמין במאמר התנהגות של משאבים בשכפול של מערכי נתונים.
לפני שמתחילים
הקצאת תפקידים בניהול הזהויות והרשאות הגישה (IAM) שנותנים למשתמשים את ההרשאות הנדרשות לשליחת שאילתות לתצוגות המורשות או לתצוגות חומריות מורשות ששיתפתם.
תצוגות מורשות ו-VPC Service Controls
כשמשתמשים בתצוגות מורשות ב-גבולות גזרה של VPC Service Controls, כללי תעבורת נתונים נכנסת (ingress) ויוצאת (egress) צריכים לאפשר לישויות מורשות גישה לפרויקט שמכיל את התצוגה ולכל פרויקט אחר שמכיל את נתוני המקור שהתצוגה ניגשת אליהם.
לדוגמה, בתרשים הבא, המתקשר בפרויקט R ניגש לתצוגה המורשית בפרויקט A, שטבלת המקור שלה נמצאת בפרויקט B. במקרה כזה, הכללים לתעבורת נתונים נכנסת (ingress) ויוצאת (egress) ב-VPC Service Controls צריכים לאפשר למי שמבצע את הקריאה בפרויקט R לגשת גם לפרויקט A וגם לפרויקט B באמצעות שירות BigQuery.
הרשאות שנדרשות לגישה ל-VPC Service Controls
לגורם המורשה לא צריכות להיות הרשאות לניהול זהויות וגישה בפרויקט של נתוני המקור, אבל כלל הכניסה צריך לאפשר גישה לשירות BigQuery בפרויקט המקור שמכיל את טבלת המקור, בנוסף לאפשר גישה לפרויקט שמכיל את התצוגה.
מידע על התפקידים וההרשאות הנדרשים מופיע במאמר הרשאות משתמשים בפרויקט ובמערך הנתונים.
כללים לתעבורת נתונים נכנסת (ingress) ויוצאת (egress)
בדוגמאות הבאות של כללי תעבורת נתונים נכנסת (ingress) ויוצאת (egress) ב-VPC Service Controls, מופעלת גישה של BigQuery API לפרויקטים של המקור והתצוגה.
- פרטים על הגדרת כללי כניסה ויציאה מופיעים במאמר בנושא הגדרת מדיניות כניסה ויציאה.
- מידע על מגבלות בהגדרת כללים לתעבורת נתונים נכנסת (ingress) ויוצאת (egress) ב-BigQuery זמין במאמר מוצרים נתמכים של VPC Service Controls: BigQuery.
לדוגמה, אם יוצרים תצוגה מפורטת ב-PROJECT_A (תצוגה מפורטת) שמקבלת גישה לנתונים ב-PROJECT_B (מקור), צריך להגדיר קבוצה של כללי תעבורת נתונים נכנסת (ingress) עבור PROJECT_B וקבוצה נוספת של כללי תעבורת נתונים נכנסת (ingress) עבור PROJECT_A:
- ingressFrom:
identityType: caller_r
sources:
- resource:
- projects/project_r
ingressTo:
operations:
- serviceName: bigquery.googleapis.com
methodSelectors:
- method: *
resources:
- projects/project_b
title: Ingress rules for the source project
קובץ ה-YAML הבא מציג את קבוצת כללי היציאה עבור PROJECT_B (מקור). תצטרכו גם להגדיר קבוצה של כללים לתעבורת נתונים יוצאת (egress) עבור
PROJECT_A (תצוגה):
- egressTo:
operations:
- serviceName: bigquery.googleapis.com
methodSelectors:
- method: *
resources:
- projects/project_b
egressFrom:
identityType: caller_r
sources:
- resource:
- projects/project_r
title: Egress rules for the source project
התפקידים הנדרשים
כדי ליצור או לעדכן תצוגה מורשית, צריך הרשאות למערך הנתונים שמכיל את התצוגה ולמערך הנתונים שמאפשר גישה לתצוגה.
צריך גם להעניק למשתמשים או לקבוצות גישה לפרויקט ולמערך הנתונים שמכילים את התצוגה.
הרשאות במערך הנתונים שמכיל את התצוגה
תצוגות נחשבות למשאבי טבלה ב-BigQuery, ולכן כדי ליצור תצוגה צריך את אותן הרשאות שנדרשות ליצירת טבלה. צריכות להיות לכם גם הרשאות להריץ שאילתות על כל הטבלאות שהשאילתת SQL של התצוגה מפנה אליהן.
- כדי ליצור מערך נתונים, צריך הרשאת
bigquery.datasets.createIAM בפרויקט. - כדי ליצור תצוגה, אתם צריכים הרשאת
bigquery.tables.createIAM במערך הנתונים. תפקיד ה-IAM המוגדר מראשroles/bigquery.dataEditorכולל את ההרשאות שנדרשות ליצירת תצוגה. - כדי ליצור תצוגה שמבצעת שאילתה בטבלה שאין לכם גישה אליה, אתם צריכים לקבל את ההרשאה
bigquery.tables.getDataבטבלה שעליה מבוצעת השאילתה בתצוגה.
במאמר תפקידים והרשאות מוגדרים מראש יש מידע נוסף על תפקידים והרשאות ב-IAM ב-BigQuery.
הרשאות במערך הנתונים שמכיל את נתוני המקור
כדי לתת הרשאה לתצוגה, צריך להעניק לה הרשאות קריאה למערך הנתונים של נתוני המקור.
כדי לבצע את ההרשאה הזו, צריך את ההרשאות הבאות במערך הנתונים שמכיל את נתוני המקור:
bigquery.datasets.updatedatasets.getIamPolicydatasets.setIamPolicy
במאמר בנושא הרשאות נדרשות מפורטות הרשאות נוספות שנדרשות לעדכון מערכי נתונים.
הרשאות משתמש בפרויקט ובמערך הנתונים לתצוגה
כדי לשתף תצוגה מורשית עם משתמשים או קבוצות, צריך לתת למשתמשים או לקבוצות את הרשאות ה-IAM הבאות:
תפקיד ה-IAM
roles/bigquery.jobUser(אוroles/bigquery.user) בפרויקט שבו מופעלת משימת השאילתה (פרויקט החיוב או פרויקט ההפעלה). התפקיד הזה מעניק את ההרשאהbigquery.jobs.createשנדרשת להרצת שאילתות על התצוגה.תפקיד ה-IAM
roles/bigquery.jobUserנדרש רק לפרויקט שבו רוצים להריץ את העבודה, בלי קשר למיקום האירוח של התצוגה.תפקיד ה-IAM
roles/bigquery.dataViewerשל מערך הנתונים שמכיל את התצוגה המפורטת המורשית. התפקיד הזה נותן את ההרשאהbigquery.tables.getData, שנדרשת כדי לשלוח שאילתות לתצוגה.אם משתמש שולח שאילתה לתצוגה המורשית מפרויקט נפרד, הוא לא צריך את התפקיד
roles/bigquery.jobUserבפרויקט שמארח את התצוגה. הם צריכים את התפקידroles/bigquery.dataViewerבמערך הנתונים שמכיל את התצוגה המפורטת, ואת התפקידroles/bigquery.jobUserבפרויקט שבו השאילתה מופעלת.
עבודה עם תצוגות מורשות
בקטעים הבאים מוסבר איך לעבוד עם תצוגות מורשות ותצוגות חומריות מורשות.
יצירת תצוגה מורשית
כדי ליצור תצוגה מורשית, בוחרים באחת מהאפשרויות הבאות. הוראות מלאות לאישור, לשיתוף ולמחיקה של תצוגה מאושרת מופיעות במדריך יצירת תצוגה מאושרת.
המסוף
עוברים לדף BigQuery.
בעורך השאילתות, מקלידים את השאילתה שרוצים לבסס עליה את התצוגה המורשית.
לוחצים על קובץ > שמירה > שמירת התצוגה.
בתיבת הדו-שיח Save view:
בשדה פרויקט, מקלידים את הפרויקט שבו רוצים לשמור את התצוגה.
בשדה Dataset (מערך נתונים), מקלידים את מערך הנתונים שבו רוצים לשמור את התצוגה. הנתונים האלה חייבים להיות שונים ממערך הנתונים שמשמש בשאילתת המקור.
בשדה Table, מקלידים את שם התצוגה.
לוחצים על Save.
נותנים הרשאות נדרשות למשתמשים שיכולים להשתמש בתצוגה המורשית.
בחלונית Explorer, בוחרים את מערך הנתונים שבו נעשה שימוש בשאילתת המקור.
בחלונית Details (פרטים), לוחצים על Sharing (שיתוף) > Authorize views (אישור צפיות).
בחלונית Authorized views (תצוגות מורשות), בשדה Authorized view (תצוגה מורשית), מקלידים את השם המלא של התצוגה בפורמט PROJECT_ID.DATASET_ID.VIEW_NAME.
לוחצים על הוספת הרשאה.
Terraform
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
כדי להחיל את הגדרות Terraform בפרויקט ב- Cloud de Confiance , מבצעים את השלבים בקטעים הבאים.
הכנת Cloud Shell
- מפעילים את Cloud Shell.
-
מגדירים את פרויקט ברירת המחדל שבו רוצים להחיל את ההגדרות של Terraform. Cloud de Confiance
תצטרכו להריץ את הפקודה הזו רק פעם אחת לכל פרויקט, ותוכלו לעשות זאת בכל ספרייה.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
אם תגדירו ערכים ספציפיים בקובץ התצורה של Terraform, הם יבטלו את ערכי ברירת המחדל של משתני הסביבה.
הכנת הספרייה
לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).
-
יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת
.tf, למשלmain.tf. במדריך הזה, הקובץ נקראmain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.
מעתיקים את הקוד לדוגמה בקובץ
main.tfהחדש שיצרתם.לחלופין, אפשר גם להעתיק את הקוד מ-GitHub. כדאי לעשות את זה כשקטע הקוד של Terraform הוא חלק מפתרון מקצה לקצה.
- בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
- שומרים את השינויים.
-
מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
terraform init
אופציונלי: תוכלו לכלול את האפשרות
-upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:terraform init -upgrade
החלה של השינויים
-
בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
terraform plan
מתקנים את ההגדרות לפי הצורך.
-
מריצים את הפקודה הבאה ומזינים
yesבהודעה שמופיעה, כדי להחיל את הגדרות Terraform:terraform apply
ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!".
- פותחים את Cloud de Confiance הפרויקט כדי לראות את התוצאות. במסוף Cloud de Confiance , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.
ניהול משתמשים או קבוצות בתצוגות מפורטות מורשות
אחרי שמאשרים גישה לתצוגה, אפשר לשמור על הגישה אליה על ידי השלמת המשימות הבאות עבור מערך נתונים, טבלה או תצוגה:
- צפייה במדיניות הגישה.
- נותנים גישה.
- ביטול הגישה.
- דחיית הגישה.
מידע נוסף זמין במאמר שליטה בגישה למשאבים באמצעות IAM.
הסרת ההרשאה לתצוגה
כדי להסיר הרשאה לתצוגה מפורטת, בוחרים באחת מהאפשרויות הבאות:
המסוף
נכנסים לדף BigQuery במסוף Cloud de Confiance .
בחלונית הימנית, לוחצים על כלי הניתוחים:

אם החלונית הימנית לא מוצגת, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.
בחלונית Explorer, מרחיבים את הפרויקט, לוחצים על Datasets ובוחרים מערך נתונים.
לוחצים על סקירה כללית > טבלאות ובוחרים טבלה.
לוחצים על שיתוף > הרשאת צפייה.
לוחצים על הסרת ההרשאה.
לוחצים על Close.
BQ
כדי להסיר הרשאה מתצוגה, משתמשים בפקודה bq rm. מזינים את table_id של התצוגה המפורטת שרוצים לבטל את ההרשאה שלה.
bq rm \ project_id:dataset:table_id
API
קוראים למתודה tables.delete ומשתמשים במאפיינים projectID, datasetID ו-tableID כדי להסיר את התצוגה המפורטת המורשית של מערך הנתונים. מידע נוסף מופיע במאמר בנושא טבלאות.
מכסות ומגבלות
- תצוגות מורשות כפופות למגבלות של מערך הנתונים. מידע נוסף מופיע במאמר בנושא מגבלות על מערכי נתונים.
- אם מסירים תצוגה מורשית, יכול להיות שיעברו עד 24 שעות עד שכל ההפניות לתצוגה יוסרו מהמערכת. כדי להימנע משגיאות, צריך להמתין 24 שעות לפני שימוש חוזר בשם של תצוגה שהוסרה, או ליצור שם ייחודי לתצוגה.
נושאים מתקדמים
בקטעים הבאים מתוארות שיטות מתקדמות לשימוש בתצוגות מורשות.
שילוב של אבטחה ברמת השורה עם תצוגות מורשות
הנתונים שמוצגים בתצוגה לוגית או בתצוגה מגובהת מסוננים בהתאם למדיניות הגישה ברמת השורה של טבלת המקור הבסיסית.
פרטים על האינטראקציה בין אבטחה ברמת השורה לבין תצוגות חומריות זמינים במאמר בנושא שימוש באבטחה ברמת השורה עם תכונות אחרות של BigQuery.
שילוב של אבטחה ברמת העמודה עם תצוגות מורשות
ההשפעה של אבטחה ברמת העמודה על תצוגות לא תלויה בשאלה אם התצוגה היא תצוגה מורשית או לא.
לתיאור מפורט של אופן ההחלה של ההרשאות, אפשר לעיין במאמר בנושא תצוגות שאילתה לקבלת מידע על אבטחה ברמת העמודה.
שימוש ב-BigQuery sharing עם תצוגות מורשות
שיתוף ב-BigQuery (לשעבר Analytics Hub) הוא פלטפורמה להחלפת נתונים עם היכולות הבאות:
- מאפשר לכם לשתף נתונים ותובנות בהיקף נרחב בין יחידות שונות בארגון.
- נעשה שימוש ב-framework חזק של אבטחה ופרטיות.
- תמיכה בפרסום של מערך נתונים ב-BigQuery, שנקרא מערך נתונים משותף, והתצוגות המורשות ומערכי הנתונים המורשים שמשויכים אליו, לקבוצה של מנויים.
מערך נתונים מקושר הוא מערך נתונים ב-BigQuery שמוגדר לקריאה בלבד ומשמש כאינדיקטור או כהפניה למערך נתונים משותף. כשנרשמים למינוי של כרטיס מוצר לשיתוף, נוצר מערך נתונים מקושר בפרויקט, אבל לא נוצר עותק של מערך הנתונים. לכן, המנויים יכולים לקרוא את הנתונים אבל לא יכולים להוסיף או לעדכן אובייקטים בתוכו.
אין תמיכה בתצוגות חומריות שמפנות לטבלאות במערך הנתונים המקושר.
מידע נוסף זמין במאמר מבוא לשיתוף.
המאמרים הבאים
- במאמר יצירת תצוגה מורשית יש הדרכה ליצירת תצוגה מורשית.
- כדי ליצור תצוגה לוגית, אפשר לעיין במאמר יצירת תצוגות לוגיות.
- כדי ליצור תצוגה מהותית שתומכת בסוגים אחרים של בקרת גישה, אפשר לעיין במאמר בנושא יצירת תצוגות מהותיות.
- במאמר קבלת מידע על תצוגות מוסבר איך מקבלים מטא-נתונים של תצוגות.
- במאמר ניהול תצוגות מוסבר איך לנהל את התצוגות.