תצוגת COLUMNS
התצוגה INFORMATION_SCHEMA.COLUMNS מכילה שורה אחת לכל עמודה (שדה) בטבלה.
ההרשאות הנדרשות
כדי לשלוח שאילתה לתצוגה INFORMATION_SCHEMA.COLUMNS, צריך את ההרשאות הבאות לניהול זהויות והרשאות גישה (IAM):
bigquery.tables.getbigquery.tables.list
כל אחד מהתפקידים הבאים שמוגדרים מראש ב-IAM כולל את ההרשאות שצוינו למעלה:
roles/bigquery.adminroles/bigquery.dataViewerroles/bigquery.dataEditorroles/bigquery.metadataViewer
במאמר בקרת גישה באמצעות IAM יש מידע נוסף על הרשאות ב-BigQuery.
סכימה
כששולחים שאילתה לתצוגה 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. |
async_generation_status |
STRUCT |
מכיל שגיאות חסימה של משימות הטמעה ברקע, אם העמודה היא עמודת הטמעה שנוצרה באופן אוטומטי. אחרת, הערך הוא NULL. מידע על שגיאות חסימה מופיע בשדה async_generation_status.blocking_error.message.
דוגמאות לשגיאות חסימה:
async_generation_status נמחקת.
|
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 |
השם של מפרט ההשוואה, אם הוא קיים. אחרת, NULL.אם מעבירים STRING או ARRAY<STRING>, מוחזר מפרט ההשוואה אם הוא קיים, אחרת מוחזר NULL.
|
column_default |
STRING |
ערך ברירת המחדל של העמודה, אם הוא קיים. אחרת, הערך הוא NULL.
|
rounding_mode |
STRING |
מצב העיגול שמשמש לערכים שנכתבים בשדה אם הסוג שלו הוא NUMERIC או BIGNUMERIC עם פרמטרים. אחרת, הערך הוא NULL.
|
data_policies.name |
STRING |
רשימת כללי מדיניות הנתונים שמצורפים לעמודה כדי לשלוט בגישה ובמיסוך. השדה הזה נמצא בגרסת טרום-השקה (Preview). |
data_governance_tags |
ARRAY<STRUCT> |
רשימת תגי משילות המידע (data governance) שמצורפים לעמודה כדי לשלוט בגישה ובמיסוך. כל STRUCT מכיל את השדות הבאים של STRING:
STRUCT (או RECORD), תגי משילות מידע שמצורפים לשדות בתצוגת עץ זמינים בתצוגה INFORMATION_SCHEMA.COLUMN_FIELD_PATHS.
|
policy_tags |
ARRAY<STRING> |
רשימת תגי המדיניות שמצורפים לעמודה. |
is_identity |
STRING |
YES או NO, בהתאם לשאלה אם העמודה היא עמודת זהות.
|
identity_generation |
STRING |
ALWAYS או BY DEFAULT, בהתאם למצב היצירה של עמודת הזהות. אם העמודה היא לא עמודת זהות, הערך הוא NULL.
|
identity_start |
INT64 |
הערך הראשון שנוצר על ידי עמודת הזהות, או NULL אם העמודה היא לא עמודת זהות.
|
identity_increment |
INT64 |
ההפרש המינימלי בין מזהים שנוצרו ברצף בעמודת הזהות, או NULL אם העמודה היא לא עמודת זהות.
|
identity_maximum |
INT64 |
הערך המקסימלי שאפשר ליצור לעמודת הזהות, או NULL אם העמודה היא לא עמודת זהות.
|
identity_minimum |
INT64 |
הערך המינימלי שאפשר ליצור לעמודת הזהות, או NULL אם העמודה היא לא עמודת זהות.
|
identity_cycle |
STRING |
אם העמודה היא עמודת זהות, הערך הוא NEVER. אחרת, הערך הוא NULL.
|
כדי לשמור על יציבות, מומלץ לציין במפורש את העמודות בשאילתות של סכימת המידע במקום להשתמש בתו כללי לחיפוש (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 | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+