ניהול תרחישים
ב-BigQuery, routines הם סוג משאב שכולל את הרכיבים הבאים:
- תהליכים מאוחסנים.
- פונקציות בהגדרת המשתמש (UDF), כולל פונקציות מרוחקות.
- פונקציות של טבלאות.
במאמר הזה מתוארות משימות שמשותפות לכל סוגי השגרה ב-BigQuery.
הרשאות
כדי להפנות לתרחיש בשאילתת SQL, צריך את ההרשאה bigquery.routines.get. כדי להעניק גישה לשגרות, אפשר להעניק תפקיד IAM עם ההרשאה bigquery.routines.get במערך הנתונים או בשגרה הספציפית. כשמעניקים גישה ברמת מערך הנתונים, החשבון מקבל גישה לכל השגרה במערך הנתונים. מידע נוסף זמין במאמר בנושא שליטה בגישה למשאבים באמצעות IAM.
כברירת מחדל, נדרשת גם הרשאה לגישה לכל המשאבים שהשגרה מפנה אליהם, כמו טבלאות או תצוגות. במקרה של UDF ופונקציות טבלה, אפשר לתת הרשאה לפונקציה לגשת למשאבים האלה בשם המתקשר. מידע נוסף זמין במאמר בנושא פונקציות מורשות.
יצירת תרחיש
כדי ליצור שגרה, צריך הרשאת bigquery.routines.create.
SQL
בהתאם לסוג השגרה, מריצים אחת מהצהרות ה-DDL הבאות:
API
מבצעים קריאה לשיטה routines.insert עם משאב Routine מוגדר.
הצגת רשימת השגרה
כדי להציג את רשימת השגרות במערך נתונים, צריכות להיות לכם ההרשאות bigquery.routines.get ו-bigquery.routines.list.
המסוף
נכנסים לדף BigQuery במסוף Google Cloud .
בחלונית הימנית, לוחצים על כלי הניתוחים:

אם החלונית הימנית לא מוצגת, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.
בחלונית Explorer, מרחיבים את הפרויקט, לוחצים על Datasets ואז בוחרים מערך נתונים.
לוחצים על הכרטיסייה פעולות שגרתיות.
SQL
שליחת שאילתה לתצוגה INFORMATION_SCHEMA.ROUTINES:
במסוף Google Cloud , עוברים לדף BigQuery.
מזינים את ההצהרה הבאה בעורך השאילתות:
SELECT COLUMN_LIST FROM { DATASET | REGION }.INFORMATION_SCHEMA.ROUTINES;
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
מחליפים את מה שכתוב בשדות הבאים:
- COLUMN_LIST: רשימה מופרדת בפסיקים של עמודות מ
INFORMATION_SCHEMA.ROUTINESהתצוגה. - DATASET: השם של מערך נתונים בפרויקט.
- REGION: מסנן אזורי.
דוגמה:
SELECT routine_name, routine_type, routine_body FROM mydataset.INFORMATION_SCHEMA.ROUTINES;
+------------------+----------------+--------------+
| routine_name | routine_type | routine_body |
+------------------+----------------+--------------+
| AddFourAndDivide | FUNCTION | SQL |
| create_customer | PROCEDURE | SQL |
| names_by_year | TABLE FUNCTION | SQL |
+------------------+----------------+--------------+
BQ
משתמשים בפקודה bq ls עם הדגל --routines:
bq ls --routines DATASET
מחליפים את מה שכתוב בשדות הבאים:
- DATASET: השם של מערך נתונים בפרויקט.
דוגמה:
bq ls --routines mydataset
Id Routine Type Language Creation Time Last Modified Time
------------------ ----------------------- ---------- ----------------- --------------------
AddFourAndDivide SCALAR_FUNCTION SQL 05 May 01:12:03 05 May 01:12:03
create_customer PROCEDURE SQL 21 Apr 19:55:51 21 Apr 19:55:51
names_by_year TABLE_VALUED_FUNCTION SQL 01 Sep 22:59:17 01 Sep 22:59:17
API
מבצעים קריאה ל-routines.list method עם מזהה מערך הנתונים.
איך רואים את הפעולות בתרחיש
כדי לראות את גוף השגרה, אתם צריכים את ההרשאה bigquery.routines.get.
המסוף
נכנסים לדף BigQuery במסוף Google Cloud .
בחלונית הימנית, לוחצים על כלי הניתוחים:

בחלונית Explorer, מרחיבים את הפרויקט, לוחצים על Datasets ואז בוחרים מערך נתונים.
לוחצים על הכרטיסייה פעולות שגרתיות.
בוחרים את התרחיש. גוף השגרה מופיע בקטע Routine query.
SQL
בוחרים בעמודה routine_definition של INFORMATION_SCHEMA.ROUTINES התצוגה:
במסוף Google Cloud , עוברים לדף BigQuery.
מזינים את ההצהרה הבאה בעורך השאילתות:
SELECT routine_definition FROM { DATASET | REGION }.INFORMATION_SCHEMA.ROUTINES WHERE routine_name = ROUTINE_NAME;
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
מחליפים את מה שכתוב בשדות הבאים:
- DATASET: השם של מערך נתונים בפרויקט.
- REGION: מסנן אזורי.
- ROUTINE_NAME: השם של התרחיש.
דוגמה:
SELECT routine_definition FROM mydataset.INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'AddFourAndDivide';
+--------------------+
| routine_definition |
+--------------------+
| (x + 4) / y |
+--------------------+
BQ
משתמשים בפקודה bq show עם הדגל --routine:
bq show --routine DATASET.ROUTINE_NAME
מחליפים את מה שכתוב בשדות הבאים:
- DATASET: השם של מערך נתונים בפרויקט.
- ROUTINE_NAME: השם של התרחיש.
דוגמה:
bq show --routine mydataset.AddFourAndDivide
Id Routine Type Language Signature Definition Creation Time Last Modified Time
------------------ ----------------- ---------- ------------------------------- ------------- ----------------- --------------------
AddFourAndDivide SCALAR_FUNCTION SQL (x INT64, y INT64) -> FLOAT64 (x + 4) / y 05 May 01:12:03 05 May 01:12:03
API
מבצעים קריאה ל-routines.get method עם מזהה מערך הנתונים ושם השגרה. גוף השגרה מוחזר באובייקט Routine.
מחיקת תרחיש
כדי למחוק שגרה, צריכה להיות לכם הרשאה bigquery.routines.delete.
המסוף
נכנסים לדף BigQuery במסוף Google Cloud .
בחלונית הימנית, לוחצים על כלי הניתוחים:

בחלונית Explorer, מרחיבים את הפרויקט, לוחצים על Datasets ואז בוחרים מערך נתונים.
לוחצים על הכרטיסייה פעולות שגרתיות.
בוחרים את התרחיש.
בחלונית הפרטים, לוחצים על מחיקה.
מקלידים
"delete"בתיבת הדו-שיח ואז לוחצים על מחיקה כדי לאשר.
SQL
בהתאם לסוג השגרה, מריצים אחת מהצהרות ה-DDL הבאות:
- תהליך מאוחסן:
DROP PROCEDURE - פונקציה בהגדרת המשתמש:
DROP FUNCTION - פונקציית טבלה:
DROP TABLE FUNCTION
דוגמה:
DROP FUNCTION IF EXISTS mydataset.AddFourAndDivide
BQ
משתמשים בפקודה bq rm עם הדגל --routine:
bq rm --routine DATASET.ROUTINE_NAME
מחליפים את מה שכתוב בשדות הבאים:
- DATASET: השם של מערך נתונים בפרויקט.
- ROUTINE_NAME: השם של התרחיש.
דוגמה:
bq rm --routine mydataset.AddFourAndDivide
API
מבצעים קריאה ל-routines.delete method עם מזהה מערך הנתונים ושם השגרה.