ניהול תרחישים

ב-BigQuery, ‏ routines הם סוג משאב שכולל את הרכיבים הבאים:

במאמר הזה מתוארות משימות שמשותפות לכל סוגי השגרה ב-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.

המסוף

  1. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-BigQuery

  2. בחלונית הימנית, לוחצים על כלי הניתוחים:

    כפתור מודגש לחלונית הסייר.

    אם החלונית הימנית לא מוצגת, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.

  3. בחלונית Explorer, מרחיבים את הפרויקט, לוחצים על Datasets ואז בוחרים מערך נתונים.

  4. לוחצים על הכרטיסייה פעולות שגרתיות.

SQL

שליחת שאילתה לתצוגה INFORMATION_SCHEMA.ROUTINES:

  1. במסוף Google Cloud , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. מזינים את ההצהרה הבאה בעורך השאילתות:

    SELECT
      COLUMN_LIST
    FROM
       { DATASET | REGION }.INFORMATION_SCHEMA.ROUTINES;

  3. לוחצים על הפעלה.

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

מחליפים את מה שכתוב בשדות הבאים:

דוגמה:

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.

המסוף

  1. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-BigQuery

  2. בחלונית הימנית, לוחצים על כלי הניתוחים:

    כפתור מודגש לחלונית הסייר.

  3. בחלונית Explorer, מרחיבים את הפרויקט, לוחצים על Datasets ואז בוחרים מערך נתונים.

  4. לוחצים על הכרטיסייה פעולות שגרתיות.

  5. בוחרים את התרחיש. גוף השגרה מופיע בקטע Routine query.

SQL

בוחרים בעמודה routine_definition של INFORMATION_SCHEMA.ROUTINES התצוגה:

  1. במסוף Google Cloud , עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. מזינים את ההצהרה הבאה בעורך השאילתות:

    SELECT
      routine_definition
    FROM
      { DATASET | REGION }.INFORMATION_SCHEMA.ROUTINES
    WHERE
      routine_name = ROUTINE_NAME;

  3. לוחצים על הפעלה.

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

מחליפים את מה שכתוב בשדות הבאים:

  • 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.

המסוף

  1. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-BigQuery

  2. בחלונית הימנית, לוחצים על כלי הניתוחים:

    כפתור מודגש לחלונית הסייר.

  3. בחלונית Explorer, מרחיבים את הפרויקט, לוחצים על Datasets ואז בוחרים מערך נתונים.

  4. לוחצים על הכרטיסייה פעולות שגרתיות.

  5. בוחרים את התרחיש.

  6. בחלונית הפרטים, לוחצים על מחיקה.

  7. מקלידים "delete" בתיבת הדו-שיח ואז לוחצים על מחיקה כדי לאשר.

SQL

בהתאם לסוג השגרה, מריצים אחת מהצהרות ה-DDL הבאות:

דוגמה:

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 עם מזהה מערך הנתונים ושם השגרה.