מבוא ל-INFORMATION_SCHEMA

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

ב-BigQuery, אתם שולחים שאילתות לתצוגות של INFORMATION_SCHEMA באמצעות GoogleSQL, על ידי ציון היקף ותצוגה. לדוגמה, כדי לקבל מטא-נתונים של טבלאות במערך נתונים, מציינים את myDataset.INFORMATION_SCHEMA.TABLES.

בטבלה הבאה מפורטות התצוגות הזמינות:

סוג המשאב תצוגת INFORMATION_SCHEMA
בקרת גישה OBJECT_PRIVILEGES
BI Engine BI_CAPACITIES
BI_CAPACITY_CHANGES
הגדרות אישיות EFFECTIVE_PROJECT_OPTIONS
ORGANIZATION_OPTIONS
ORGANIZATION_OPTIONS_CHANGES
PROJECT_OPTIONS
PROJECT_OPTIONS_CHANGES
מערכי נתונים SCHEMATA
SCHEMATA_LINKS
SCHEMATA_OPTIONS
SHARED_DATASET_USAGE
SCHEMATA_REPLICAS
SCHEMATA_REPLICAS_BY_FAILOVER_RESERVATION
גרפים PROPERTY_GRAPHS
תעסוקה JOBS_BY_PROJECT†
JOBS_BY_USER
JOBS_BY_FOLDER
JOBS_BY_ORGANIZATION
משימות לפי פרוסת זמן JOBS_TIMELINE_BY_PROJECT†
JOBS_TIMELINE_BY_USER
JOBS_TIMELINE_BY_FOLDER
JOBS_TIMELINE_BY_ORGANIZATION
המלצות ותובנות INSIGHTS
RECOMMENDATIONS
RECOMMENDATIONS_BY_ORGANIZATION
הזמנות ASSIGNMENTS_BY_PROJECT†
ASSIGNMENT_CHANGES_BY_PROJECT†
CAPACITY_COMMITMENTS_BY_PROJECT†
CAPACITY_COMMITMENT_CHANGES_BY_PROJECT†
FAILOVER_HISTORY_BY_PROJECT†
RESERVATIONS_BY_PROJECT†
RESERVATION_CHANGES_BY_PROJECT†
RESERVATIONS_TIMELINE_BY_PROJECT†
תרחישים PARAMETERS
ROUTINES
ROUTINE_OPTIONS
אינדקסים של חיפוש SEARCH_INDEXES
SEARCH_INDEX_COLUMNS
SEARCH_INDEX_COLUMN_OPTIONS
SEARCH_INDEX_OPTIONS
SEARCH_INDEXES_BY_ORGANIZATION
סשנים SESSIONS_BY_PROJECT†
SESSIONS_BY_USER
סטרימינג STREAMING_TIMELINE_BY_PROJECT†
STREAMING_TIMELINE_BY_FOLDER
STREAMING_TIMELINE_BY_ORGANIZATION
Tables COLUMNS
COLUMN_FIELD_PATHS
CONSTRAINT_COLUMN_USAGE
KEY_COLUMN_USAGE
PARTITIONS
TABLES
TABLE_OPTIONS
TABLE_CONSTRAINTS
TABLE_SNAPSHOTS
TABLE_STORAGE_BY_PROJECT†
TABLE_STORAGE_BY_FOLDER
TABLE_STORAGE_BY_ORGANIZATION
TABLE_STORAGE_USAGE_TIMELINE
TABLE_STORAGE_USAGE_TIMELINE_BY_FOLDER
TABLE_STORAGE_USAGE_TIMELINE_BY_ORGANIZATION
אינדקסים של וקטורים VECTOR_INDEXES
VECTOR_INDEX_COLUMNS
VECTOR_INDEX_OPTIONS
תצוגות VIEWS
MATERIALIZED_VIEWS
Write API WRITE_API_TIMELINE_BY_PROJECT†
WRITE_API_TIMELINE_BY_FOLDER
WRITE_API_TIMELINE_BY_ORGANIZATION

‫† בתצוגות של *BY_PROJECT, הסיומת BY_PROJECT היא אופציונלית. לדוגמה, שאילתות על INFORMATION_SCHEMA.JOBS_BY_PROJECT ועל INFORMATION_SCHEMA.JOBS יחזירו את אותן תוצאות.

תמחור

בפרויקטים שמשתמשים בתמחור על פי דרישה, שאילתות בתצוגות של INFORMATION_SCHEMA צוברות חיובים על עיבוד נתונים של 10MB לפחות, גם אם מספר הבייטים שעובדו בשאילתה קטן מ-10MB. ‫10MB הוא סכום החיוב המינימלי לשאילתות על פי דרישה. למידע נוסף, קראו את המאמר תמחור על פי דרישה.

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

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

לא תחויבו בעמלות אחסון על התצוגות של INFORMATION_SCHEMA.

תחביר

צריך להגדיר תצוגה של INFORMATION_SCHEMA עם קבוצת נתונים או אזור.

מגדיר קבוצת הנתונים

אם קיים, מגביל את התוצאות למערך הנתונים שצוין. לדוגמה:

-- Returns metadata for tables in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.TABLES;

התצוגות הבאות של INFORMATION_SCHEMA תומכות במאפיינים של קבוצות נתונים:

  • COLUMNS
  • COLUMN_FIELD_PATHS
  • MATERIALIZED_VIEWS
  • PARAMETERS
  • PARTITIONS
  • ROUTINES
  • ROUTINE_OPTIONS
  • TABLES
  • TABLE_OPTIONS
  • VIEWS

מגדיר אזור

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

  • region-us
  • region-asia-east2
  • region-europe-north1

אם יש מזהה אזור, התוצאות מוגבלות למיקום שצוין. מגדירי האזורים לא היררכיים, כלומר, האזור הגיאוגרפי הנרחב של האיחוד האירופי לא כולל את האזורים של europe-*, והאזור הגיאוגרפי הנרחב של ארה"ב לא כולל את האזורים של us-*. לדוגמה, השאילתה הבאה מחזירה מטא-נתונים של כל מערכי הנתונים במיקום US במספר אזורים, בפרויקט שבו השאילתה מופעלת, אבל לא כוללת מערכי נתונים באזור us-west1:

-- Returns metadata for all datasets in the US multi-region.
SELECT * FROM region-us.INFORMATION_SCHEMA.SCHEMATA;

בתצוגות הבאות של INFORMATION_SCHEMA אין תמיכה במאפייני אזור:

אם לא תציינו מזהה אזור או מזהה מערך נתונים, תופיע הודעת שגיאה.

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

מגדיר הפרויקט

אם יש מגדיר פרויקט, התוצאות מוגבלות לפרויקט שצוין. לדוגמה:

-- Returns metadata for the specified project and region.
SELECT * FROM myProject.`region-us`.INFORMATION_SCHEMA.TABLES;

-- Returns metadata for the specified project and dataset.
SELECT * FROM myProject.myDataset.INFORMATION_SCHEMA.TABLES;

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

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

מגבלות

  • שאילתות BigQuery INFORMATION_SCHEMA חייבות להיות בתחביר של GoogleSQL. ב-INFORMATION_SCHEMA אין תמיכה ב-SQL מדור קודם.
  • תוצאות השאילתות של INFORMATION_SCHEMA לא נשמרות במטמון.
  • אי אפשר להשתמש בתצוגות INFORMATION_SCHEMA בהצהרות DDL.
  • תצוגות INFORMATION_SCHEMA לא מכילות מידע על מערכי נתונים מוסתרים.
  • שאילתות INFORMATION_SCHEMA עם מגדירי אזור עשויות לכלול מטא-נתונים ממשאבים באותו אזור, ממערכי נתונים שנמחקו ונמצאים בחלון הזמן של Time Travel.
  • כשמציגים רשימה של משאבים מתצוגה של INFORMATION_SCHEMA, ההרשאות נבדקות רק ברמת ההורה, ולא ברמת השורה הבודדת. לכן, המערכת מתעלמת מכל מדיניות דחייה שמטרגטת שורה ספציפית באמצעות תגים.

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