תצוגת ROUTINES

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

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

כדי לשלוח שאילתה לתצוגה INFORMATION_SCHEMA.ROUTINES, צריך את ההרשאות הבאות בממשק לניהול זהויות והרשאות גישה (IAM):

  • bigquery.routines.get
  • bigquery.routines.list

כל אחד מתפקידי ה-IAM המוגדרים מראש הבאים כולל את ההרשאות שדרושות לכם כדי לקבל מטא-נתונים שגרתיים:

  • roles/bigquery.admin
  • roles/bigquery.metadataViewer
  • roles/bigquery.dataViewer

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

סכימה

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

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

שם העמודה סוג נתונים ערך
specific_catalog STRING שם הפרויקט שמכיל את מערך הנתונים שבו מוגדרת הפרוצדורה
specific_schema STRING השם של מערך הנתונים שמכיל את השגרה
specific_name STRING שם התרחיש
routine_catalog STRING שם הפרויקט שמכיל את מערך הנתונים שבו מוגדרת הפרוצדורה
routine_schema STRING השם של מערך הנתונים שמכיל את השגרה
routine_name STRING שם התרחיש
routine_type STRING סוג התרחיש:
  • FUNCTION: פונקציה מתמידה בהגדרת המשתמש ב-BigQuery
  • AGGREGATE FUNCTION: פונקציית צבירה מוגדרת על ידי המשתמש ב-BigQuery שנשמרת באופן קבוע
  • PROCEDURE: פרוצדורה מאוחסנת ב-BigQuery
  • TABLE FUNCTION: פונקציית טבלה ב-BigQuery
data_type STRING סוג הנתונים שהשגרה מחזירה. NULL אם הפרוצדורה היא פרוצדורה מאוחסנת
routine_body STRING איך מוגדר גוף הפרוצדורה, SQL או EXTERNAL אם הפרוצדורה היא פונקציה בהגדרת המשתמש ב-JavaScript
routine_definition STRING ההגדרה של התרחיש
external_language STRING JAVASCRIPT אם השגרה היא פונקציה בהגדרת המשתמש ב-JavaScript או NULL אם השגרה הוגדרה באמצעות SQL
is_deterministic STRING YES אם ידוע שהשגרה היא דטרמיניסטית, NO אם היא לא דטרמיניסטית, או NULL אם לא ידוע
security_type STRING סוג האבטחה של התרחיש, תמיד NULL
created TIMESTAMP זמן היצירה של התרחיש
last_altered TIMESTAMP הזמן שבו בוצע השינוי האחרון בשגרה
ddl STRING הצהרת DDL שאפשר להשתמש בה כדי ליצור את השגרה, כמו CREATE FUNCTION או CREATE PROCEDURE
connection STRING שם החיבור, אם יש כזה לשגרה. אחרת NULL

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

היקף ותחביר

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

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

דוגמה

-- Returns metadata for routines in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.ROUTINES;

-- Returns metadata for routines in a region.
SELECT * FROM region-us.INFORMATION_SCHEMA.ROUTINES;

דוגמה

דוגמה

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

`PROJECT_ID`.INFORMATION_SCHEMA.ROUTINES
. לדוגמה, `myproject`.INFORMATION_SCHEMA.ROUTINES.

בדוגמה הבאה מאחזרים את כל העמודות מהתצוגה INFORMATION_SCHEMA.ROUTINES. המטא-נתונים שמוחזרים הם של כל התרחישים ב-mydataset בפרויקט שמוגדר כברירת מחדל – myproject. מערך הנתונים mydataset מכיל תרחיש בשם myroutine1.

SELECT
  *
FROM
  mydataset.INFORMATION_SCHEMA.ROUTINES;
INFORMATION_SCHEMA

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

+------------------+-----------------+---------------+-----------------+----------------+--------------+--------------+-----------+--------------+--------------------+-------------------+------------------+---------------+-----------------------------+-----------------------------+-----------------------------------------------------------+
| specific_catalog | specific_schema | specific_name | routine_catalog | routine_schema | routine_name | routine_type | data_type | routine_body | routine_definition | external_language | is_deterministic | security_type |           created           |         last_altered        |                            ddl                             |
+------------------+-----------------+---------------+-----------------+----------------+--------------+--------------+-----------+--------------+--------------------+-------------------+------------------+---------------+-----------------------------+-----------------------------+-----------------------------------------------------------+
| myproject        | mydataset       | myroutine1    | myproject       | mydataset      | myroutine1   | FUNCTION     | NULL      | SQL          | x + 3              | NULL              | NULL             | NULL          | 2019-10-03 17:29:00.235 UTC | 2019-10-03 17:29:00.235 UTC | CREATE FUNCTION myproject.mydataset.myroutine1(x FLOAT64) |
|                  |                 |               |                 |                |              |              |           |              |                    |                   |                  |               |                             |                             | AS (                                                      |
|                  |                 |               |                 |                |              |              |           |              |                    |                   |                  |               |                             |                             | x + 3                                                     |
|                  |                 |               |                 |                |              |              |           |              |                    |                   |                  |               |                             |                             | );                                                        |
+------------------+-----------------+---------------+-----------------+----------------+--------------+--------------+-----------+--------------+--------------------+-------------------+------------------+---------------+-----------------------------+-----------------------------+-----------------------------------------------------------+