管理日常安排
在 BigQuery 中,常式是一種資源類型,包含下列項目:
本文說明 BigQuery 中所有常式類型通用的工作。
權限
如要在 SQL 查詢中參照常式,您必須具備 bigquery.routines.get 權限。如要授予常式存取權,請在資料集或個別常式中,授予具有 bigquery.routines.get 權限的 IAM 角色。在資料集層級授予存取權,可讓主體存取資料集中的所有常式。詳情請參閱「使用 IAM 控管資源存取權」。
根據預設,您也需要有權存取常式參照的任何資源,例如資料表或檢視區塊。如果是 UDF 和資料表函式,您可以授權函式代表呼叫端存取這些資源。詳情請參閱授權函式。
建立處理常式
如要建立常式,必須具備 bigquery.routines.create 權限。
SQL
視常式類型而定,執行下列其中一個 DDL 陳述式:
API
使用已定義的Routine 資源呼叫 routines.insert 方法。
列出處理常式
如要列出資料集中的常式,您必須具備 bigquery.routines.get 和 bigquery.routines.list 權限。
主控台
- 在 Google Cloud 控制台開啟「BigQuery」頁面。 
- 在左側窗格中,按一下「Explorer」:  - 如果沒有看到左側窗格,請按一下「展開左側窗格」圖示 開啟窗格。 
- 在「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
使用加上 --routines 旗標的 bq ls 指令:
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 方法,並傳遞資料集 ID。
查看日常安排的內容
如要查看常式主體,必須具備 bigquery.routines.get 權限。
主控台
- 在 Google Cloud 控制台開啟「BigQuery」頁面。 
- 在左側窗格中,按一下「Explorer」:  
- 在「Explorer」窗格中展開專案,按一下「Datasets」(資料集),然後選取資料集。 
- 按一下「日常安排」分頁標籤。 
- 選取日常安排。日常安排主體會列在「Routine query」(日常安排查詢) 下方。 
SQL
選取 INFORMATION_SCHEMA.ROUTINES 檢視的 routine_definition 資料欄:
- 前往 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
使用加上 --routine 旗標的 bq show 指令:
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 方法,並傳遞資料集 ID 和常式名稱。常式主體會以 Routine 物件的形式傳回。
刪除處理常式
如要刪除日常安排,必須具備 bigquery.routines.delete 權限。
主控台
- 在 Google Cloud 控制台開啟「BigQuery」頁面。 
- 在左側窗格中,按一下「Explorer」:  
- 在「Explorer」窗格中展開專案,按一下「Datasets」(資料集),然後選取資料集。 
- 按一下「日常安排」分頁標籤。 
- 選取日常安排。 
- 在詳細資料窗格中,按一下「刪除」。 
- 在對話方塊中輸入 - "delete",然後按一下「刪除」確認。
SQL
視常式類型而定,執行下列其中一個 DDL 陳述式:
範例:
DROP FUNCTION IF EXISTS mydataset.AddFourAndDivide
bq
使用加上 --routine 旗標的 bq rm 指令:
bq rm --routine DATASET.ROUTINE_NAME
更改下列內容:
- DATASET:專案中的資料集名稱。
- ROUTINE_NAME:處理常式的名稱。
範例:
bq rm --routine mydataset.AddFourAndDivide
API
呼叫 routines.delete 方法,並傳遞資料集 ID 和常式名稱。