התצוגה MATERIALIZED_VIEWS

התצוגה INFORMATION_SCHEMA.MATERIALIZED_VIEWS מכילה סטטוס לגבי תצוגות מהותיות.

ההרשאות הנדרשות

כדי לקבל את ההרשאות שנדרשות לשליחת שאילתות לתצוגה INFORMATION_SCHEMA.MATERIALIZED_VIEWS, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM‏ BigQuery Metadata Viewer (צפייה במטא-נתונים של BigQuery) ‏(roles/bigquery.metadataViewer) בפרויקט או במערך הנתונים. להסבר על מתן תפקידים, קראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

ההרשאות הנדרשות

כדי להריץ שאילתות בתצוגה INFORMATION_SCHEMA.MATERIALIZED_VIEWS, נדרשות ההרשאות הבאות:

  • bigquery.tables.get
  • bigquery.tables.list

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

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

סכימה

כששולחים שאילתה לתצוגה INFORMATION_SCHEMA.MATERIALIZED_VIEWS, תוצאות השאילתה מכילות שורה אחת לכל תצוגה חומרית במערך נתונים.

לתצוגה INFORMATION_SCHEMA.MATERIALIZED_VIEWS יש את הסכימה הבאה:

שם העמודה סוג נתונים ערך
table_catalog STRING שם הפרויקט שמכיל את מערך הנתונים. נקרא גם projectId.
table_schema STRING השם של מערך הנתונים שמכיל את התצוגה החומרית. נקרא גם datasetId.
table_name STRING השם של התצוגה המהותית. נקרא גם tableId.
last_refresh_time TIMESTAMP השעה שבה התצוגה החומרית הזו רעננה לאחרונה.
refresh_watermark TIMESTAMP סימן המים של הרענון של התצוגה המהותית. הנתונים שכלולים בטבלאות הבסיס של התצוגה החומרית עד לנקודת הזמן הזו נכללים במטמון של התצוגה החומרית.
last_refresh_status RECORD תוצאת השגיאה של משימת הרענון האוטומטי האחרונה כאובייקט ErrorProto. אם השדה הזה מופיע, המשמעות היא שהרענון האוטומטי האחרון נכשל.

כדי לשמור על יציבות, מומלץ לציין במפורש את העמודות בשאילתות של סכימת המידע, במקום להשתמש בתו כל כללי (SELECT *). ציון מפורש של העמודות מונע את השבירה של השאילתות אם הסכימה הבסיסית משתנה.

היקף ותחביר

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

שם התצוגה היקף המשאבים היקף האזור
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.MATERIALIZED_VIEWS ברמת הפרויקט REGION
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.MATERIALIZED_VIEWS רמת מערך הנתונים מיקום מערך הנתונים
מחליפים את מה שכתוב בשדות הבאים:
  • אופציונלי: PROJECT_ID: מזהה הפרויקט ב- Google Cloud . אם לא מציינים פרויקט, המערכת משתמשת בפרויקט שמוגדר כברירת מחדל.
  • REGION: כל שם של אזור במערך נתונים. לדוגמה, `region-us`.
  • DATASET_ID: המזהה של מערך הנתונים. מידע נוסף מופיע במאמר בנושא מאפיין מסנן של מערך נתונים.

לדוגמה:

-- Returns metadata for views in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS;

-- Returns metadata for all views in a region.
SELECT * FROM region-us.INFORMATION_SCHEMA.MATERIALIZED_VIEWS;

דוגמאות

דוגמה 1:

בדוגמה הבאה מאחזרים את כל התצוגות החומריות הלא תקינות מהתצוגה INFORMATION_SCHEMA.MATERIALIZED_VIEWS. הפונקציה מחזירה את התצוגות החומריות עם ערכים שאינם NULL last_refresh_status בעמודה mydataset בפרויקט ברירת המחדל שלכם – myproject.

כדי להריץ את השאילתה על פרויקט שאינו פרויקט ברירת המחדל, מוסיפים את מזהה הפרויקט למערך הנתונים בפורמט הבא: `project_id`.dataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS. לדוגמה: `myproject`.mydataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS.

SELECT
  table_name, last_refresh_status
FROM
  mydataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS
WHERE
  last_refresh_status IS NOT NULL;
INFORMATION_SCHEMA

התוצאה אמורה להיראות כך:

  +---------------+---------------------------------------------------------------------+
  |  table_name   |                        last_refresh_status                          |
  +---------------------------------------------------------------------+---------------+
  |  myview       |   {"reason":"invalidQuery","location":"query","message":"..."}      |
  +---------------------------------------------------------------------+---------------+
  

דוגמה 2:

בדוגמה הבאה מאחזרים את last_refresh_time ואת refresh_watermark של תצוגה חומרית myview ב-mydataset בפרויקט ברירת המחדל – myproject. בתוצאה מוצג מתי בוצע הרענון האחרון של התצוגה החומרית, ועד מתי נאספו נתונים מטבלאות הבסיס במטמון של התצוגה החומרית.

כדי להריץ את השאילתה על פרויקט שאינו פרויקט ברירת המחדל, מוסיפים את מזהה הפרויקט למערך הנתונים בפורמט הבא: `project_id`.dataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS. לדוגמה: `myproject`.mydataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS.

SELECT
  table_name, last_refresh_time, refresh_watermark
FROM
  mydataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS
WHERE
  table_name = 'myview';
INFORMATION_SCHEMA

התוצאה אמורה להיראות כך:

  +---------------+------------------------------------------------+
  |  table_name   |  last_refresh_time     | refresh_watermark     |
  +---------------+------------------------------------------------+
  |  myview       | 2023-02-22 19:37:17    | 2023-03-08 16:52:57   |
  +---------------+------------------------------------------------+