通过更改历史记录,您可以跟踪附加到 Apache Iceberg 托管表(以前称为 BigQuery 中的 Apache Iceberg BigLake 表)的行的历史记录。您可以使用 GoogleSQL APPENDS 表值函数 (TVF) 查看在指定时间范围内附加到表的所有行,例如通过 CREATE TABLE DDL 语句、INSERT 和 MERGE DML 语句、批量加载作业和流式注入添加的行。
Apache Iceberg 托管表使用 BigQuery 更改历史记录概念和功能,让您能够处理对表进行的增量添加。了解向表附加了哪些行可帮助您在 BigQuery 外部逐步维护表副本、审核历史数据添加情况或触发下游流水线,而无需进行全表扫描或费用高昂的复制。
所需权限
如需查看 Apache Iceberg 托管式表的更改历史记录,您需要拥有以下权限:
- 表的
bigquery.tables.getData权限。以下预定义的 Identity and Access Management (IAM) 角色包含此权限:roles/bigquery.dataViewerroles/bigquery.dataEditorroles/bigquery.dataOwnerroles/bigquery.admin
- 对与表关联的 Google Cloud 资源连接的
bigquery.connections.delegate权限。BigQuery Connection User (roles/bigquery.connectionUser) 角色具有此权限。 - 此外,与 Google Cloud 资源连接关联的服务账号必须对底层 Cloud Storage 存储桶具有
roles/storage.objectUser和roles/storage.legacyBucketReader角色。
如需了解表使用行级或列级安全性时的其他权限要求,请参阅 BigQuery 更改历史记录文档中的所需权限。
限制
Apache Iceberg 托管表支持更改历史记录,并利用与标准 BigQuery 更改历史记录相同的概念和功能。 在 Apache Iceberg 托管式表上使用更改历史记录时,存在以下限制:
- 只有 Apache Iceberg 托管表(以前称为 BigQuery 中的 Apache Iceberg BigLake 表)支持更改历史记录。
- Apache Iceberg 托管表不支持
CHANGES表值函数 (TVF)。仅支持APPENDSTVF。 - Apache Iceberg 托管式表的限制也适用。
APPENDS更改历史记录功能的相关限制也适用。
后续步骤
如需了解详情,请参阅以下 BigQuery 文档: