יצירת תצוגה מורשית

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

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

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

מטרות

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

עלויות

במסמך הזה משתמשים ברכיבים הבאים של Cloud de Confiance by S3NS, והשימוש בהם כרוך בתשלום:

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

לפני שמתחילים

  1. In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. מוודאים שהחיוב מופעל בפרויקט Cloud de Confiance .

  3. מפעילים את BigQuery API.

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

    להפעלת ה-API

  4. חשוב לוודא שיש לכם את ההרשאות הנדרשות לביצוע המשימות שמתוארות במסמך הזה.

יצירת מערך נתונים לאחסון נתוני המקור

מתחילים ביצירת מערך נתונים לאחסון נתוני המקור.

כדי ליצור את מערך הנתונים של המקור, בוחרים באחת מהאפשרויות הבאות:

המסוף

  1. עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. בחלונית הימנית, לוחצים על כלי הניתוחים:

    כפתור מודגש לחלונית הסייר.

    אם החלונית הימנית לא מוצגת, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.

  3. בחלונית Explorer, ליד הפרויקט שבו רוצים ליצור את מערך הנתונים, לוחצים על View actions> Create dataset.

  4. בדף Create dataset, מבצעים את הפעולות הבאות:

    1. בשדה Dataset ID (מזהה מערך הנתונים), מזינים github_source_data.

    2. בשדה Location type, מוודאים שהאפשרות Multi-region מסומנת.

    3. בקטע Multi-region (מספר אזורים), בוחרים באפשרות US (ארה"ב) או EU (אירופה). כל המשאבים שיוצרים במדריך הזה צריכים להיות באותו מיקום גיאוגרפי נרחב יותר שכולל מספר אזורים.

    4. לוחצים על יצירת מערך נתונים.

SQL

משתמשים בהצהרת ה-DDL‏ CREATE SCHEMA:

  1. במסוף Cloud de Confiance , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. מזינים את ההצהרה הבאה בעורך השאילתות:

    CREATE SCHEMA github_source_data;

  3. לוחצים על הפעלה.

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

Java

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

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

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

// Create a source dataset to store your table.
Dataset sourceDataset = bigquery.create(DatasetInfo.of(sourceDatasetId));

Python

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

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

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

from google.cloud import bigquery
from google.cloud.bigquery.enums import EntityTypes

client = bigquery.Client()
source_dataset_id = "github_source_data"
source_dataset_id_full = "{}.{}".format(client.project, source_dataset_id)


source_dataset = bigquery.Dataset(source_dataset_id_full)
# Specify the geographic location where the dataset should reside.
source_dataset.location = "US"
source_dataset = client.create_dataset(source_dataset)  # API request

יצירת טבלה וטעינת נתוני המקור

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

המסוף

  1. עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. מזינים את השאילתה הבאה בעורך השאילתות:

    SELECT
      commit,
      author,
      committer,
      repo_name
    FROM
      `bigquery-public-data.github_repos.commits`
    LIMIT
      1000;
    
  3. לוחצים על עריכה > הגדרות שאילתה.

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

  5. בשדה Dataset (מערך נתונים), מזינים PROJECT_ID.github_source_data.

    מחליפים את PROJECT_ID במזהה הפרויקט.

  6. בשדה Table Id (מזהה הטבלה), מזינים github_contributors.

  7. לוחצים על Save.

  8. לוחצים על Run.

  9. אחרי שהשאילתה מסתיימת, בחלונית Explorer לוחצים על Datasets ואז על מערך הנתונים github_source_data.

  10. לוחצים על סקירה כללית > טבלאות ואז על הטבלה github_contributors.

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

Java

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

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

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

// Populate a source table
String tableQuery =
    "SELECT commit, author, committer, repo_name"
        + " FROM `bigquery-public-data.github_repos.commits`"
        + " LIMIT 1000";
QueryJobConfiguration queryConfig =
    QueryJobConfiguration.newBuilder(tableQuery)
        .setDestinationTable(TableId.of(sourceDatasetId, sourceTableId))
        .build();
bigquery.query(queryConfig);

Python

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

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

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

source_table_id = "github_contributors"
job_config = bigquery.QueryJobConfig()
job_config.destination = source_dataset.table(source_table_id)
sql = """
    SELECT commit, author, committer, repo_name
    FROM `bigquery-public-data.github_repos.commits`
    LIMIT 1000
"""
client.query_and_wait(
    sql,
    # Location must match that of the dataset(s) referenced in the query
    # and of the destination table.
    location="US",
    job_config=job_config,
)  # API request - starts the query and waits for query to finish

יצירת מערך נתונים לאחסון התצוגה המורשית

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

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

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

המסוף

  1. עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. בחלונית הימנית, לוחצים על כלי הניתוחים:

    כפתור מודגש לחלונית הסייר.

  3. בחלונית Explorer, בוחרים את הפרויקט שבו רוצים ליצור את מערך הנתונים.

  4. מרחיבים את האפשרות View actions (הצגת פעולות) ולוחצים על Create dataset (יצירת מערך נתונים).

  5. בדף Create dataset, מבצעים את הפעולות הבאות:

    1. בשדה Dataset ID (מזהה מערך הנתונים), מזינים shared_views.

    2. בשדה Location type, מוודאים שהאפשרות Multi-region מסומנת.

    3. בקטע Multi-region (מספר אזורים), בוחרים באפשרות US (ארה"ב) או EU (אירופה). כל המשאבים שיוצרים במדריך הזה צריכים להיות באותו מיקום גיאוגרפי נרחב יותר שכולל מספר אזורים.

    4. לוחצים על יצירת מערך נתונים.

SQL

משתמשים בהצהרת ה-DDL‏ CREATE SCHEMA:

  1. במסוף Cloud de Confiance , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. מזינים את ההצהרה הבאה בעורך השאילתות:

    CREATE SCHEMA shared_views;

  3. לוחצים על הפעלה.

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

Java

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

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

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

// Create a separate dataset to store your view
Dataset sharedDataset = bigquery.create(DatasetInfo.of(sharedDatasetId));

Python

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

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

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

shared_dataset_id = "shared_views"
shared_dataset_id_full = "{}.{}".format(client.project, shared_dataset_id)


shared_dataset = bigquery.Dataset(shared_dataset_id_full)
shared_dataset.location = "US"
shared_dataset = client.create_dataset(shared_dataset)  # API request

יצירת התצוגה המורשית במערך הנתונים החדש

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

טבלת המקור github_contributors מכילה שני שדות מהסוג RECORD: author ו-committer. במדריך הזה, התצוגה המורשית לא כוללת את כל נתוני המחבר, למעט שם המחבר, ולא כוללת את כל נתוני המבצע, למעט שם המבצע.

כדי ליצור את התצוגה במערך הנתונים החדש, בוחרים באחת מהאפשרויות הבאות:

המסוף

  1. עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. מזינים את השאילתה הבאה בעורך השאילתות.

    SELECT
    commit,
    author.name AS author,
    committer.name AS committer,
    repo_name
    FROM
    `PROJECT_ID.github_source_data.github_contributors`;

    מחליפים את PROJECT_ID במזהה הפרויקט.

  3. לוחצים על קובץ > שמירה > שמירת התצוגה.

  4. בתיבת הדו-שיח Save view:

    1. בקטע Project (פרויקט), מוודאים שהפרויקט שלכם נבחר.

    2. בשדה Dataset (מערך נתונים), מזינים shared_views.

    3. בשדה טבלה, מזינים github_analyst_view.

    4. לוחצים על Save.

SQL

משתמשים בהצהרת ה-DDL‏ CREATE VIEW:

  1. במסוף Cloud de Confiance , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. מזינים את ההצהרה הבאה בעורך השאילתות:

    CREATE VIEW shared_views.github_analyst_view
    AS (
      SELECT
        commit,
        author.name AS author,
        committer.name AS committer,
        repo_name
      FROM
        `PROJECT_ID.github_source_data.github_contributors`
    );

    מחליפים את PROJECT_ID במזהה הפרויקט.

  3. לוחצים על הפעלה.

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

Java

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

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

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

// Create the view in the new dataset
String viewQuery =
    String.format(
        "SELECT commit, author.name as author, committer.name as committer, repo_name FROM %s.%s.%s",
        projectId, sourceDatasetId, sourceTableId);

ViewDefinition viewDefinition = ViewDefinition.of(viewQuery);

Table view =
    bigquery.create(TableInfo.of(TableId.of(sharedDatasetId, sharedViewId), viewDefinition));

Python

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

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

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

shared_view_id = "github_analyst_view"
view = bigquery.Table(shared_dataset.table(shared_view_id))
sql_template = """
    SELECT
        commit, author.name as author,
        committer.name as committer, repo_name
    FROM
        `{}.{}.{}`
"""
view.view_query = sql_template.format(
    client.project, source_dataset_id, source_table_id
)
view = client.create_table(view)  # API request

מתן הרשאה לאנליסטים של הנתונים להריץ משימות של שאילתות

כדי להריץ שאילתות בתצוגה המפורטת, לנתח הנתונים שלכם צריכה להיות הרשאת bigquery.jobs.create כדי שהם יוכלו להריץ משימות של שאילתות. ההרשאה הזו נדרשת רק בפרויקט שבו מופעלת עבודת השאילתה (הפרויקט לחיוב או הפרויקט לביצוע), שיכול להיות שונה מהפרויקט שמכיל את התצוגה.

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

כדי להקצות לקבוצת אנליסטים של נתונים את התפקיד bigquery.user בפרויקט שבו הם משתמשים כדי להריץ את העבודות שלהם:

  1. נכנסים לדף IAM במסוף Cloud de Confiance .

    כניסה לדף IAM

  2. מוודאים שבחרתם את הפרויקט שבו האנליסטים משתמשים כדי להריץ את העבודות שלהם.

  3. לוחצים על Grant access.

  4. בתיבת הדו-שיח Grant access to (הענקת גישה אל):

    1. בשדה New principals, מזינים את הקבוצה שמכילה את האנליסטים של הנתונים. לדוגמה, data_analysts@example.com.

    2. בשדה Select a role (בחירת תפקיד), מחפשים את התפקיד BigQuery User (משתמש ב-BigQuery) ובוחרים אותו.

    3. לוחצים על Save.

מתן הרשאה לאנליסטים של הנתונים להריץ שאילתות על התצוגה המורשית

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

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

כדי לתת לנתוני הניתוח bigquery.dataViewer גישה למערך הנתונים שמכיל את התצוגה המורשית, צריך לבצע את הפעולות הבאות:

המסוף

  1. עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. בחלונית הימנית, לוחצים על כלי הניתוחים:

    כפתור מודגש לחלונית הסייר.

  3. בחלונית Explorer, לוחצים על Datasets ואז בוחרים את מערך הנתונים shared_views כדי לפתוח את הכרטיסייה Details.

  4. לוחצים על שיתוף > הרשאות.

  5. בחלונית Share permissions, לוחצים על Add principal.

  6. בשדה New principals, מזינים את הקבוצה שמכילה את אנליסטים הנתונים שלכם – לדוגמה, data_analysts@example.com.

  7. לוחצים על בחירת תפקיד ובוחרים באפשרות BigQuery > BigQuery Data Viewer (מציג נתונים ב-BigQuery).

  8. לוחצים על Save.

  9. לוחצים על Close.

Java

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

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

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

// Assign access controls to the dataset containing the view
List<Acl> viewAcl = new ArrayList<>(sharedDataset.getAcl());
viewAcl.add(Acl.of(new Acl.Group("example-analyst-group@google.com"), Acl.Role.READER));
sharedDataset.toBuilder().setAcl(viewAcl).build().update();

Python

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

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

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

# analyst_group_email = 'data_analysts@example.com'
access_entries = shared_dataset.access_entries
access_entries.append(
    bigquery.AccessEntry("READER", EntityTypes.GROUP_BY_EMAIL, analyst_group_email)
)
shared_dataset.access_entries = access_entries
shared_dataset = client.update_dataset(
    shared_dataset, ["access_entries"]
)  # API request

מתן הרשאה לתצוגה לגשת למערך נתוני המקור

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

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

המסוף

  1. עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. בחלונית הימנית, לוחצים על כלי הניתוחים:

    כפתור מודגש לחלונית הסייר.

  3. בחלונית Explorer, לוחצים על Datasets ואז בוחרים את מערך הנתונים github_source_data כדי לפתוח את הכרטיסייה Details.

  4. לוחצים על שיתוף > הרשאת צפייה.

  5. בחלונית תצוגות מורשות, בשדה תצוגה מורשית מזינים את הערך PROJECT_ID.shared_views.github_analyst_view.

    מחליפים את PROJECT_ID במזהה הפרויקט.

  6. לוחצים על הוספת הרשאה.

Java

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

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

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

// Authorize the view to access the source dataset
List<Acl> srcAcl = new ArrayList<>(sourceDataset.getAcl());
srcAcl.add(Acl.of(new Acl.View(view.getTableId())));
sourceDataset.toBuilder().setAcl(srcAcl).build().update();

Python

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

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

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

access_entries = source_dataset.access_entries
access_entries.append(
    bigquery.AccessEntry(None, EntityTypes.VIEW, view.reference.to_api_repr())
)
source_dataset.access_entries = access_entries
source_dataset = client.update_dataset(
    source_dataset, ["access_entries"]
)  # API request

אימות ההגדרה

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

כדי לאמת את ההגדרה, אנליסט נתונים צריך להריץ את השאילתה הבאה:

  1. עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. מזינים את ההצהרה הבאה בעורך השאילתות:

    SELECT
      *
    FROM
      `PROJECT_ID.shared_views.github_analyst_view`;

    מחליפים את PROJECT_ID במזהה הפרויקט.

  3. לוחצים על הפעלה.

תוצאות השאילתה דומות לתוצאות הבאות. בתוצאות מוצגים רק שם המחבר ושם המבצע.

תוצאות השאילתה אחרי שליחת שאילתה לתצוגה המורשית

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

קוד מקור מלא

לנוחותך, מצורף קוד המקור המלא של המדריך.

Java

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

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

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

// Create a source dataset to store your table.
Dataset sourceDataset = bigquery.create(DatasetInfo.of(sourceDatasetId));

// Populate a source table
String tableQuery =
    "SELECT commit, author, committer, repo_name"
        + " FROM `bigquery-public-data.github_repos.commits`"
        + " LIMIT 1000";
QueryJobConfiguration queryConfig =
    QueryJobConfiguration.newBuilder(tableQuery)
        .setDestinationTable(TableId.of(sourceDatasetId, sourceTableId))
        .build();
bigquery.query(queryConfig);

// Create a separate dataset to store your view
Dataset sharedDataset = bigquery.create(DatasetInfo.of(sharedDatasetId));

// Create the view in the new dataset
String viewQuery =
    String.format(
        "SELECT commit, author.name as author, committer.name as committer, repo_name FROM %s.%s.%s",
        projectId, sourceDatasetId, sourceTableId);

ViewDefinition viewDefinition = ViewDefinition.of(viewQuery);

Table view =
    bigquery.create(TableInfo.of(TableId.of(sharedDatasetId, sharedViewId), viewDefinition));

// Assign access controls to the dataset containing the view
List<Acl> viewAcl = new ArrayList<>(sharedDataset.getAcl());
viewAcl.add(Acl.of(new Acl.Group("example-analyst-group@google.com"), Acl.Role.READER));
sharedDataset.toBuilder().setAcl(viewAcl).build().update();

// Authorize the view to access the source dataset
List<Acl> srcAcl = new ArrayList<>(sourceDataset.getAcl());
srcAcl.add(Acl.of(new Acl.View(view.getTableId())));
sourceDataset.toBuilder().setAcl(srcAcl).build().update();

Python

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

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

לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.

# Create a source dataset
from google.cloud import bigquery
from google.cloud.bigquery.enums import EntityTypes

client = bigquery.Client()
source_dataset_id = "github_source_data"
source_dataset_id_full = "{}.{}".format(client.project, source_dataset_id)


source_dataset = bigquery.Dataset(source_dataset_id_full)
# Specify the geographic location where the dataset should reside.
source_dataset.location = "US"
source_dataset = client.create_dataset(source_dataset)  # API request

# Populate a source table
source_table_id = "github_contributors"
job_config = bigquery.QueryJobConfig()
job_config.destination = source_dataset.table(source_table_id)
sql = """
    SELECT commit, author, committer, repo_name
    FROM `bigquery-public-data.github_repos.commits`
    LIMIT 1000
"""
client.query_and_wait(
    sql,
    # Location must match that of the dataset(s) referenced in the query
    # and of the destination table.
    location="US",
    job_config=job_config,
)  # API request - starts the query and waits for query to finish

# Create a separate dataset to store your view
shared_dataset_id = "shared_views"
shared_dataset_id_full = "{}.{}".format(client.project, shared_dataset_id)


shared_dataset = bigquery.Dataset(shared_dataset_id_full)
shared_dataset.location = "US"
shared_dataset = client.create_dataset(shared_dataset)  # API request

# Create the view in the new dataset
shared_view_id = "github_analyst_view"
view = bigquery.Table(shared_dataset.table(shared_view_id))
sql_template = """
    SELECT
        commit, author.name as author,
        committer.name as committer, repo_name
    FROM
        `{}.{}.{}`
"""
view.view_query = sql_template.format(
    client.project, source_dataset_id, source_table_id
)
view = client.create_table(view)  # API request

# Assign access controls to the dataset containing the view
# analyst_group_email = 'data_analysts@example.com'
access_entries = shared_dataset.access_entries
access_entries.append(
    bigquery.AccessEntry("READER", EntityTypes.GROUP_BY_EMAIL, analyst_group_email)
)
shared_dataset.access_entries = access_entries
shared_dataset = client.update_dataset(
    shared_dataset, ["access_entries"]
)  # API request

# Authorize the view to access the source dataset
access_entries = source_dataset.access_entries
access_entries.append(
    bigquery.AccessEntry(None, EntityTypes.VIEW, view.reference.to_api_repr())
)
source_dataset.access_entries = access_entries
source_dataset = client.update_dataset(
    source_dataset, ["access_entries"]
)  # API request

הסרת המשאבים

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

מחיקת הפרויקט

המסוף

  1. במסוף Cloud de Confiance , נכנסים לדף Manage resources.

    כניסה לדף Manage resources

  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  3. כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.

gcloud

    כדי למחוק Cloud de Confiance פרויקט:

    gcloud projects delete PROJECT_ID

מחיקת משאבים בודדים

לחלופין, כדי להסיר את המשאבים הספציפיים שבהם השתמשתם במדריך הזה, מבצעים את הפעולות הבאות:

  1. מחיקת התצוגה המורשית.

  2. מוחקים את מערך הנתונים שמכיל את התצוגה המורשית.

  3. מוחקים את הטבלה במערך הנתונים של המקור.

  4. מוחקים את מערך הנתונים המקורי.

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

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