使用更改历史记录

通过 BigQuery 更改历史记录,您可以跟踪 BigQuery 表的更改历史记录。您可以使用 GoogleSQL functions查看指定时间范围内执行的特定更改类型,以便处理对表所做的增量更改。了解对表进行了哪些更改可帮助您在 BigQuery 外部逐步维护表副本,同时避免费用高昂的副本。

所需权限

如需查看某个表的更改历史记录,您需要拥有该表的 bigquery.tables.getData 权限。以下预定义的 Identity and Access Management (IAM) 角色包含此权限:

  • roles/bigquery.dataViewer
  • roles/bigquery.dataEditor
  • roles/bigquery.dataOwner
  • roles/bigquery.admin

如果表具有或以前具有行级访问权限政策,则只有表管理员可以访问表的历史数据。表需要 bigquery.rowAccessPolicies.overrideTimeTravelRestrictions 权限,它包含在预定义的 roles/bigquery.admin IAM 角色中。

如果表具有列级安全性,则您只能查看您有权访问的列的更改历史记录。

更改历史记录函数

您可以使用以下函数了解表的更改历史记录:

价格和费用

调用更改历史记录函数会产生 BigQuery 计算费用

当您将表的 enable_change_history 选项设为 TRUE 以使用 CHANGES 函数时,BigQuery 会存储表更改元数据。这些存储的元数据会产生 BigQuery 存储费用。所产生的费用取决于对表所做的更改数量和类型,通常很小。进行大量更改操作(尤其是大量删除操作)的表最有可能产生明显的费用。