系统过程参考文档

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 表,您可以选择以 'gs://table_data_directory/subdirectory/.../' 格式指定 Cloud Storage 中表数据目录的一个或多个子目录。这样,您可以仅刷新这些子目录中的表元数据,从而避免不必要的元数据处理。

示例

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

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。

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