管理例程
在 BigQuery 中,例程是一种资源类型,包含以下内容:
本文档介绍了 BigQuery 中所有例程的常见任务。
权限
如需执行例程,您必须对包含例程的数据集具有 bigquery.routines.get
权限。
默认情况下,您还需要有权访问例程引用的任何资源(例如表或视图)。对于 UDF 和表函数,您可以授权函数代表调用者访问这些资源。如需了解详情,请参阅授权函数。
创建例程
您必须拥有 bigquery.routines.create
权限才能创建例程。
SQL
根据例程类型,运行以下 DDL 语句之一:
API
使用已定义的 Routine
资源调用 routines.insert
方法。
列出例程
如需列出数据集中的例程,您必须具有 bigquery.routines.get
和 bigquery.routines.list
权限。
控制台
在 Google Cloud 控制台中,打开 BigQuery 页面。
在浏览器面板中,展开您的项目并选择数据集。
展开例程列表。
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
使用数据集 ID 调用 routines.list
方法。
查看例程的正文
如需查看例程的正文,您必须具有 bigquery.routines.get
权限。
控制台
在 Google Cloud 控制台中,打开 BigQuery 页面。
在浏览器面板中,展开您的项目并选择数据集。
展开例程列表。
选择例程。例程的正文列在例程查询下。
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
使用数据集 ID 和例程名称调用 routines.get
方法。例程的正文在 Routine
对象中返回。
删除例程
如需删除例程,您必须拥有 bigquery.routines.delete
权限。
控制台
在 Google Cloud 控制台中,打开 BigQuery 页面。
在浏览器面板中,展开您的项目并选择数据集。
展开例程列表。
选择例程。
展开
操作选项,然后点击删除。在对话框中输入
"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
使用数据集 ID 和例程名称调用 routines.delete
方法。