תצוגת עמודות
התצוגה INFORMATION_SCHEMA.COLUMNS מכילה שורה אחת לכל עמודה (שדה) בטבלה.
ההרשאות הנדרשות
כדי לשלוח שאילתה לתצוגה INFORMATION_SCHEMA.COLUMNS, צריך את ההרשאות הבאות בממשק לניהול זהויות והרשאות גישה (IAM):
bigquery.tables.getbigquery.tables.list
כל אחד מהתפקידים הבאים שמוגדרים מראש ב-IAM כולל את ההרשאות שצוינו למעלה:
roles/bigquery.adminroles/bigquery.dataViewerroles/bigquery.dataEditorroles/bigquery.metadataViewer
מידע נוסף על הרשאות ב-BigQuery זמין במאמר בקרת גישה באמצעות IAM.
סכימה
כשמריצים שאילתה בתצוגה INFORMATION_SCHEMA.COLUMNS, תוצאות השאילתה מכילות שורה אחת לכל עמודה (שדה) בטבלה.
לתצוגה INFORMATION_SCHEMA.COLUMNS יש את הסכימה הבאה:
| שם העמודה | סוג נתונים | ערך |
|---|---|---|
table_catalog |
STRING |
מזהה הפרויקט שמכיל את מערך הנתונים. |
table_schema |
STRING |
שם מערך הנתונים שמכיל את הטבלה, שנקרא גם datasetId. |
table_name |
STRING |
השם של הטבלה או התצוגה, שנקרא גם tableId. |
column_name |
STRING |
שם העמודה. |
ordinal_position |
INT64 |
ההיסט של העמודה בטבלה, מבוסס על אינדקס שמתחיל מ-1. אם זו עמודה וירטואלית כמו _PARTITIONTIME או _PARTITIONDATE, הערך הוא NULL. |
is_nullable |
STRING |
YES או NO, בהתאם למצב של העמודה שמאפשר ערכי NULL. |
data_type |
STRING |
סוג הנתונים ב-GoogleSQL של העמודה. |
is_generated |
STRING |
הערך הוא ALWAYS אם העמודה היא עמודת הטמעה שנוצרה באופן אוטומטי. אחרת, הערך הוא NEVER. |
generation_expression |
STRING |
הערך הוא ביטוי הדור שמשמש להגדרת העמודה אם העמודה היא עמודת הטמעה שנוצרת באופן אוטומטי. אחרת, הערך הוא NULL. |
is_stored |
STRING |
הערך הוא YES אם העמודה היא עמודת הטמעה שנוצרה באופן אוטומטי, אחרת הערך הוא NULL. |
is_hidden |
STRING |
YES או NO, בהתאם לשאלה אם העמודה היא עמודה פסאודו כמו _PARTITIONTIME או _PARTITIONDATE. |
is_updatable |
STRING |
הערך הוא תמיד NULL. |
is_system_defined |
STRING |
YES או NO, בהתאם לשאלה אם העמודה היא עמודה פסאודו כמו _PARTITIONTIME או _PARTITIONDATE. |
is_partitioning_column |
STRING |
YES או NO, בהתאם לשאלה אם העמודה היא עמודת חלוקה. |
clustering_ordinal_position |
INT64 |
ההיסט של העמודה בטבלה, מבוסס על אינדקס של 1, בתוך עמודות האשכולות של הטבלה. הערך הוא NULL אם הטבלה לא מסודרת באשכולות. |
collation_name |
STRING |
השם של הגדרת ה-collation
אם היא קיימת, אחרת, NULL.אם מועבר STRING או ARRAY<STRING>, מוחזרת הגדרת ה-collation אם היא קיימת. אחרת, מוחזר NULL.
|
column_default |
STRING |
ערך ברירת המחדל של העמודה אם היא קיימת, אחרת הערך הוא NULL.
|
rounding_mode |
STRING |
אופן העיגול שמשמש לעיגול ערכים שנכתבים בשדה אם הסוג שלו הוא NUMERIC או BIGNUMERIC עם פרמטרים. אחרת, הערך הוא NULL.
|
data_policies.name |
STRING |
רשימת מדיניות הנתונים שמצורפת לעמודה כדי לשלוט בגישה ובהסתרת נתונים. השדה הזה נמצא בגרסת טרום-השקה (Preview). |
policy_tags |
ARRAY<STRING> |
רשימת תגי המדיניות שמצורפים לעמודה. |
כדי לשמור על יציבות, מומלץ לציין במפורש את העמודות בשאילתות של סכימת המידע, במקום להשתמש בתו כל כללי (SELECT *). ציון מפורש של העמודות מונע את השבירה של השאילתות אם הסכימה הבסיסית משתנה.
היקף ותחביר
שאילתות שמופעלות על התצוגה הזו חייבות לכלול מערך נתונים או מסווג אזור. לשאילתות עם מזהה מערך נתונים, צריכות להיות לכם הרשאות למערך הנתונים. כדי להריץ שאילתות עם מסנן אזור, צריך הרשאות בפרויקט. מידע נוסף מופיע במאמר בנושא תחביר. בטבלה הבאה מוסברות רמות הפירוט של האזור והמשאבים בתצוגה הזו:
| שם התצוגה | היקף המשאבים | היקף האזור |
|---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.COLUMNS |
ברמת הפרויקט | REGION |
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.COLUMNS |
רמת מערך הנתונים | מיקום מערך הנתונים |
-
אופציונלי:
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . אם לא מציינים פרויקט, המערכת משתמשת בפרויקט שמוגדר כברירת מחדל. -
REGION: כל שם של אזור במערך נתונים. לדוגמה,`region-us`. -
DATASET_ID: המזהה של מערך הנתונים. מידע נוסף מופיע במאמר בנושא מאפיין מסנן של מערך נתונים.
דוגמה
בדוגמה הבאה מאחזרים מטא-נתונים מהתצוגה INFORMATION_SCHEMA.COLUMNS של הטבלה population_by_zip_2010 במערך הנתונים census_bureau_usa. מערך הנתונים הזה הוא חלק מתוכנית מערכי הנתונים הציבוריים של BigQuery.
מכיוון שהטבלה שאתם שולחים לה שאילתה נמצאת בפרויקט אחר, פרויקט bigquery-public-data, אתם מוסיפים את מזהה הפרויקט למערך הנתונים בפורמט הבא:
`project_id`.dataset.INFORMATION_SCHEMA.view;
לדוגמה,
`bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES.
העמודה הבאה לא נכללת בתוצאות השאילתה:
IS_UPDATABLE
SELECT * EXCEPT(is_updatable) FROM `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'population_by_zip_2010';
התוצאה תהיה דומה לזו שמופיעה בהמשך. כדי שהתוצאה תהיה קריאה, חלק מהעמודות לא נכללות בה.
+------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+ | table_name | column_name | ordinal_position | is_nullable | data_type | is_hidden | is_system_defined | is_partitioning_column | clustering_ordinal_position | policy_tags | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+ | population_by_zip_2010 | zipcode | 1 | NO | STRING | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | geo_id | 2 | YES | STRING | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | minimum_age | 3 | YES | INT64 | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | maximum_age | 4 | YES | INT64 | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | gender | 5 | YES | STRING | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | population | 6 | YES | INT64 | NO | NO | NO | NULL | 0 rows | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+