由 Lakehouse 运行时目录管理并通过 Apache Iceberg REST 目录端点提供服务的 Apache Iceberg 表可让您使用符合开源 Apache Iceberg 表规范的开放且可互操作的数据。您可以使用 BigQuery 或任何与 Iceberg 兼容的处理引擎来读取和写入这些表。
本文档将这些表称为托管式 Apache Iceberg 表或 Iceberg 表。如需比较表类型,请参阅比较表类型。
表格选项
您可以通过配置表选项来选择启用以下功能:
- 读写互操作性(预览版):为多个引擎提供无缝读写支持,包括 BigQuery、Managed Service for Apache Spark、与 Iceberg 兼容的引擎(例如开源引擎 [Apache Spark、Apache Flink 和 Trino])以及第三方引擎(例如 Snowflake)。
- 自动表管理(预览版):自动表管理(存储优化),例如压缩和垃圾回收。
除了上述功能之外,Lakehouse 管理的 Apache Iceberg 表默认还支持以下功能:
- BigQuery 数据定义语言(预览版):除了使用 Spark、Flink 和 Trino 等 Iceberg 兼容引擎创建或更新表之外,您还可以使用 BigQuery DDL 语句(例如
CREATE TABLE、ALTER TABLE和DROP TABLE)创建或更新 Iceberg 表。创建表后,这些表可在这些引擎和 BigQuery 中进行读写,并且属于由 Lakehouse 运行时目录管理的同一目录和命名空间构造。 - BigQuery 的凭证发放支持:在 Lakehouse 运行时目录中读取或写入 Iceberg 表时,BigQuery 支持使用凭证发放进行身份验证。您可以在目录级别设置凭据发放。
管理操作
您可以对 Apache Iceberg 表执行以下管理操作:
- 创建表:使用 Google Cloud 控制台、Spark、Trino、gcloud、BigQuery(预览版)或 Iceberg REST Catalog API (
CreateIcebergTable) 在目录命名空间中创建 Apache Iceberg 表。 - 注册表:使用 gcloud 或 Iceberg REST Catalog API (
RegisterIcebergTable) 在目录命名空间中注册现有 Apache Iceberg 表。 - 列出表:使用 Google Cloud 控制台、Spark、Trino、gcloud、BigQuery(预览版)或 Iceberg REST Catalog API (
ListIcebergTableIdentifiers) 查看命名空间中的表标识符。 - 获取表详细信息:使用 Google Cloud 控制台、Spark、Trino、gcloud、BigQuery(预览版)或 Iceberg REST Catalog API(
GetIcebergTable、LoadIcebergTableCredentials)检查表架构、属性和凭据。 - 插入数据:使用 Spark、Trino 或 BigQuery(预览版)将数据行附加到 Iceberg 表。
- 查询表:使用由四部分组成的表命名方式,从 Spark、Trino 或 BigQuery 对 Iceberg 表执行查询。
- 使用 DML 修改数据:使用 BigQuery(预览版)、Spark 或 Trino 中的 DML 语句更新、删除或合并 Iceberg 表中的数据行。
- 更改表:使用 Google Cloud 控制台、Spark、Trino、gcloud、BigQuery(预览版)或 Iceberg REST Catalog API (
UpdateIcebergTable) 演进表架构并更新元数据属性。 - 配置表选项:配置属性以启用 BigQuery(预览版)DML 和自动表管理。
- 管理表 ACL:查看和更新 Iceberg 表的 IAM 政策,以控制特定主体的访问权限(
get-iam-policy、set-iam-policy)。 - 将 Iceberg V1 表升级到 V2:将现有 Iceberg V1 表升级到受支持的 V2 格式。
- 在 Iceberg V3 表中使用二进制删除向量:启用二进制删除向量,以优化 Iceberg V3 表中的删除性能。
- 删除表:使用 Google Cloud 控制台、Spark、Trino、gcloud、BigQuery(预览版)或 Iceberg REST Catalog API (
DeleteIcebergTable) 从目录中删除表注册,而无需清除底层存储文件。
后续步骤
- 请参阅设置 Apache Iceberg REST Catalog 端点。
- 了解如何查询表。
- 了解如何管理表 ACL。