创建持续查询
本文档介绍如何在 BigQuery 中运行持续查询。
BigQuery 持续查询是持续运行的 SQL 语句。借助持续查询,您可以实时分析 BigQuery 中的传入数据,然后将结果导出到 Bigtable、Pub/Sub 或 Spanner,或将结果写入 BigQuery 表。
选择账号类型
您可以使用用户账号创建和运行持续查询作业,也可以使用用户账号创建持续查询作业,然后使用服务账号运行该作业。您必须使用服务账号来运行将结果导出到 Pub/Sub 主题的持续查询。
当您使用用户账号时,持续查询最多运行两天。当您使用服务账号时,持续查询最多运行 150 天。如需了解详情,请参阅授权。
所需权限
本部分介绍创建和运行持续查询所需的权限。作为提到的 Identity and Access Management (IAM) 角色的替代方法,您还可以通过自定义角色获取所需的权限。
使用用户账号时需要的权限
本部分介绍了使用用户账号创建和运行持续查询所需的角色和权限。
如需在 BigQuery 中创建作业,用户账号必须具有 bigquery.jobs.create IAM 权限。以下每个 IAM 角色都可授予 bigquery.jobs.create 权限:
- BigQuery User (
roles/bigquery.user) - BigQuery Job User (
roles/bigquery.jobUser) - BigQuery Admin (
roles/bigquery.admin)
如需从 BigQuery 表导出数据,用户账号必须具有 bigquery.tables.export IAM 权限。以下每个 IAM 角色都可授予 bigquery.tables.export 权限:
- BigQuery Data Viewer (
roles/bigquery.dataViewer) - BigQuery Data Editor (
roles/bigquery.dataEditor) - BigQuery Data Owner (
roles/bigquery.dataOwner) - BigQuery Admin (
roles/bigquery.admin)
如需更新 BigQuery 表中的数据,用户账号必须具有 bigquery.tables.updateData IAM 权限。以下每个 IAM 角色都可授予 bigquery.tables.updateData 权限:
- BigQuery Data Editor (
roles/bigquery.dataEditor) - BigQuery Data Owner (
roles/bigquery.dataOwner) - BigQuery Admin (
roles/bigquery.admin)
如果用户账号必须启用持续查询用例所需的 API,则该用户账号必须具有 Service Usage Admin (roles/serviceusage.serviceUsageAdmin) 角色。
使用服务账号时需要的权限
本部分介绍了创建持续查询的用户账号和运行持续查询的服务账号所需的角色和权限。
用户账号权限
如需在 BigQuery 中创建作业,用户账号必须具有 bigquery.jobs.create IAM 权限。以下每个 IAM 角色都可授予 bigquery.jobs.create 权限:
- BigQuery User (
roles/bigquery.user) - BigQuery Job User (
roles/bigquery.jobUser) - BigQuery Admin (
roles/bigquery.admin)
如需提交使用服务账号运行的作业,用户账号必须具有 Service Account User (roles/iam.serviceAccountUser) 角色。如果您使用同一用户账号来创建服务账号,则该用户账号必须具有 Service Account Admin (roles/iam.serviceAccountAdmin) 角色。如需了解如何将用户的访问权限限制到单个服务账号(而不是项目中的所有服务账号),请参阅授予单个角色。
如果用户账号必须启用持续查询用例所需的 API,则该用户账号必须具有 Service Usage Admin (roles/serviceusage.serviceUsageAdmin) 角色。