Lakehouse for Apache Iceberg 支持创建、管理和查询存储在 Cloud Storage 中的 Lakehouse Iceberg REST 目录表。
这些表通过 Lakehouse 运行时目录 进行管理,可由 BigQuery 和连接的开源引擎读取。写入操作仍仅限于最初创建表的特定引擎。
准备工作
请参阅表概览,了解 不同类型的表以及使用这些表的影响。
仅支持 Apache Iceberg V2(正式版)和 V3(预览版)表。不支持 Iceberg V1 表。如需升级现有 V1 表,请参阅将 Iceberg V1 表升级到 V2。
-
验证是否已为您的 Google Cloud 项目启用结算功能。
-
启用 BigLake API。
启用 API 所需的角色
如需启用 API,您需要拥有 Service Usage Admin IAM 角色 (
roles/serviceusage.serviceUsageAdmin),该角色包含serviceusage.services.enable权限。了解如何授予角色。
所需角色
如需获得管理 Lakehouse Iceberg REST 目录表所需的权限,请让管理员为您授予项目和存储桶的以下 IAM 角色:
-
创建和删除表:
- BigLake Admin (
roles/biglake.admin) - 项目 - Storage Admin (
roles/storage.admin) - Cloud Storage 存储桶
- BigLake Admin (
-
在 凭据自动售卖模式下读取表数据:
BigLake Viewer (
roles/biglake.viewer) - 项目 -
以 凭据自动售卖模式写入表数据:
BigLake Editor (
roles/biglake.editor) - 项目 -
在非凭证自动售卖模式下读取表数据:
- BigLake Viewer (
roles/biglake.viewer) - 项目 - Storage Object Viewer (
roles/storage.objectViewer) - Cloud Storage 存储桶
- BigLake Viewer (
-
在非凭证自动售卖模式下写入表数据:
- BigLake Editor (
roles/biglake.editor) - 项目 - Storage Object User (
roles/storage.objectUser) - Cloud Storage 存储桶
- BigLake Editor (
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
您也可以通过自定义 角色或其他预定义 角色来获取所需的权限。
管理操作
您可以对 Lakehouse Iceberg REST 目录表执行以下管理操作:
- 创建表: 使用 Google Cloud 控制台、Spark、Trino 或 Iceberg REST Catalog API (
CreateIcebergTable) 在目录命名空间内创建 Apache Iceberg 表。 - 列出表: 使用 Google Cloud 控制台、Spark、Trino 或 Iceberg REST Catalog API (
ListIcebergTableIdentifiers) 查看命名空间内的表标识符。 - 获取表详细信息: 使用 Google Cloud 控制台、Spark、Trino 或 Iceberg REST Catalog API (
GetIcebergTable、LoadIcebergTableCredentials) 检查表架构、属性和凭据。 - 插入数据: 使用 Spark 或 Trino 将数据行附加到 Iceberg 表。
- 查询表: 使用四部分表命名法从 Spark、Trino 或 BigQuery 对 Iceberg 表执行查询。
- 更改表: 使用 Google Cloud 控制台、Spark、Trino 或 Iceberg REST Catalog API (
UpdateIcebergTable) 演变表架构并更新元数据属性。 - 删除表: 使用 Google Cloud 控制台、Spark、Trino 或 Iceberg REST Catalog API (
DeleteIcebergTable) 从目录中删除表注册,而无需清除底层存储文件。