מבוא ל-INFORMATION_SCHEMA
תצוגות INFORMATION_SCHEMA של BigQuery מאפשרות לאחזר מטא-נתונים על האובייקטים של BigQuery. אתם יכולים לשלוח שאילתות לתצוגות האלה שמוגדרות על ידי המערכת ולקריאה בלבד, כדי לנתח משאבים כמו מערכי נתונים, משימות ובקרת גישה.
ב-BigQuery, אתם שולחים שאילתות לתצוגות של INFORMATION_SCHEMA באמצעות GoogleSQL, על ידי ציון היקף ותצוגה. לדוגמה, כדי לקבל מטא-נתונים של טבלאות במערך נתונים, מציינים את myDataset.INFORMATION_SCHEMA.TABLES.
בטבלה הבאה מפורטות התצוגות הזמינות:
† בתצוגות של *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 תומכות במאפיינים של קבוצות נתונים:
COLUMNSCOLUMN_FIELD_PATHSMATERIALIZED_VIEWSPARAMETERSPARTITIONSROUTINESROUTINE_OPTIONSTABLESTABLE_OPTIONSVIEWS
מגדיר אזור
מזהי אזורים מיוצגים באמצעות התחביר region-REGION.
אפשר להשתמש בכל שם של מיקום מערך נתונים בשביל REGION. לדוגמה, אלה מזהי אזור תקינים:
region-usregion-asia-east2region-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.PARTITIONSINFORMATION_SCHEMA.SEARCH_INDEXESINFORMATION_SCHEMA.SEARCH_INDEX_COLUMNSINFORMATION_SCHEMA.SEARCH_INDEX_OPTIONS
אם לא תציינו מזהה אזור או מזהה מערך נתונים, תופיע הודעת שגיאה.
שאילתות בתצוגה של 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, ההרשאות נבדקות רק ברמת ההורה, ולא ברמת השורה הבודדת. לכן, המערכת מתעלמת מכל מדיניות דחייה שמטרגטת שורה ספציפית באמצעות תגים.