系统过程参考文档

BigQuery 支持以下系统过程,其使用方法类似于用户创建的存储过程

BQ.ABORT_SESSION

语法

CALL BQ.ABORT_SESSION([session_id]);

说明

终止当前会话。

您可以选择指定会话 ID,这可让您在未从该会话调用系统过程时终止会话。

如需了解详情,请参阅终止会话

BQ.JOBS.CANCEL

语法

CALL BQ.JOBS.CANCEL(job);

说明

取消正在运行的作业。

将作业指定为 '[project_id.]job_id' 格式的字符串。如果您从作业之外的其他项目运行此系统过程,则还必须包含项目 ID。您必须在作业所在的位置中运行该过程。

如需了解详情,请参阅取消作业

BQ.REFRESH_EXTERNAL_METADATA_CACHE

语法

CALL BQ.REFRESH_EXTERNAL_METADATA_CACHE(table_name [, [subdirectory_uri, ]]);

说明

刷新 BigLake 表或对象表的元数据缓存。如果您对元数据缓存模式设置为 AUTOMATIC 的表运行此过程,则此过程会失败。

如需运行此系统过程,您需要 bigquery.tables.updatebigquery.tables.updateData 权限。

将表的名称指定为字符串,格式为 '[project_id.]dataset.table'。如果您从表之外的其他项目运行此系统过程,则还必须包含项目 ID。

对于 BigLake 表,您可以选择在 Cloud Storage 中指定表数据目录的一个或多个子目录,格式为 'gs://table_data_directory/subdirectory/.../'。这样,您就可以仅刷新这些子目录中的表元数据,从而避免不必要的元数据处理。

示例

如需刷新表的所有元数据,请执行以下操作:

CALL BQ.REFRESH_EXTERNAL_METADATA_CACHE('myproject.test_db.test_table')

如需有选择地刷新 BigLake 表的元数据,请执行以下操作:

CALL BQ.REFRESH_EXTERNAL_METADATA_CACHE('myproject.test_db.test_table', ['gs://source/uri/sub/path/d1/*', 'gs://source/uri/sub/path/d2/*'])

限制

不支持对通过外部数据集关联的数据集引用的表刷新元数据缓存。

BQ.REFRESH_MATERIALIZED_VIEW

语法

CALL BQ.REFRESH_MATERIALIZED_VIEW(view_name);

说明

刷新物化视图。

将物化视图的名称指定为 '[project_id.]dataset.table' 格式的字符串。如果您从物化视图之外的其他项目运行此系统过程,则还必须包含项目 ID。

如需了解详情,请参阅手动刷新