系统过程参考文档
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.update
和 bigquery.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。
如需了解详情,请参阅手动刷新。