Apache Iceberg 表概览

Lakehouse 运行时目录和 Iceberg REST 目录端点管理的 Apache Iceberg 表是开放且可互操作的 Iceberg 表,遵循开源 Apache Iceberg 表规范,可以使用任何兼容 Iceberg 的处理引擎或 BigQuery 进行读写。

在本文档中,这些表称为“Lakehouse Iceberg 表”或“Iceberg 表”。

您可以通过 配置表选项选择启用以下功能:

  1. 读写互操作性(预览版):无缝读写支持 多种引擎,包括 BigQuery、Managed Service for Apache Spark、 兼容 Iceberg 的引擎(例如开源引擎 [Apache Spark、Apache Flink 和 Trino])以及第三方引擎(例如 Snowflake)。
  2. 自动表管理(预览版):自动表管理(存储 优化),例如压缩和垃圾回收。

除了上述功能外,Lakehouse Iceberg 表(预览版)默认还支持以下功能。

  1. BigQuery 数据定义语言(预览版):除了使用 Spark、Flink 和 Trino 等兼容 Iceberg 的引擎创建或更新表之外,您还可以使用 BigQuery DDL 语句(例如 CREATE TABLEALTER TABLEDROP TABLE)创建或更新 Iceberg 表。创建表后,这些表可在这些引擎和 BigQuery 中进行读写,并且是同一目录和命名空间构造的一部分,由 Lakehouse 运行时目录管理。
  2. 对 BigQuery 的凭据销售支持(预览版):在 Lakehouse 运行时目录中读取或写入 Iceberg 表时,BigQuery 支持使用 凭据销售进行 身份验证。您可以在目录级层设置凭据销售。

管理操作

您可以对 Apache Iceberg 表执行以下管理操作:

  • 创建表:使用 Google Cloud 控制台、 Spark、Trino、gcloud、BigQuery(预览版)或 Iceberg REST 目录 API (CreateIcebergTable) 在目录命名空间内创建 Apache Iceberg 表。
  • 列出表:使用 Google Cloud 控制台、Spark、Trino、gcloud、BigQuery(预览版)或 Iceberg REST 目录 API (ListIcebergTableIdentifiers) 查看 命名空间内的表标识符。
  • 获取表详细信息:使用 Google Cloud 控制台、 Spark、Trino、gcloud、BigQuery(预览版)或 Iceberg REST 目录 API (GetIcebergTableLoadIcebergTableCredentials) 检查表 架构、属性和凭据。
  • **插入数据**:使用 Spark、Trino 或 BigQuery(预览版)将数据行附加到您的 Iceberg 表。
  • 查询表:使用四部分表命名从 Spark、Trino 或 BigQuery(预览版)对 Iceberg 表执行查询。
  • 使用 DML 修改数据:使用 BigQuery(预览版)、Spark 或 Trino 中的 DML 语句更新、 删除或合并 Iceberg 表中的数据行。
  • 更改表:使用 Google Cloud 控制台、Spark、 Trino、gcloud、BigQuery(预览版)或 Iceberg REST 目录 API (UpdateIcebergTable) 演变表架构并 更新元数据属性。
  • 配置表选项: 配置属性以启用 BigQuery(预览版)DML 和自动表管理。
  • 管理表 ACL:查看和更新 Iceberg 表的 IAM 政策,以控制特定主账号的访问权限 (get-iam-policyset-iam-policy)。
  • 将 Iceberg V1 表升级到 V2: 将现有 Iceberg V1 表升级到受支持的 V2 格式。
  • 在 Iceberg V3 表中使用二进制删除向量: 为 Iceberg V3 表启用二进制删除向量,以优化删除性能。
  • 删除表: 使用 Google Cloud 控制台、Spark、Trino、gcloud、BigQuery(预览版)或 Iceberg REST 目录 API (DeleteIcebergTable) 从目录中删除表 注册,而无需清除底层存储文件 。

后续步骤