Lakehouse for Apache Iceberg 支持创建、管理和查询存储在 Cloud Storage 中的 Lakehouse Iceberg REST 目录表。
这些表通过 Lakehouse 运行时目录 进行管理,可由 BigQuery 和连接的开源引擎读取。写入操作仍仅限于最初创建表的特定引擎。除了查询引擎集成之外,Lakehouse 运行时目录还实现了开源 Iceberg REST 目录 API 规范,允许兼容的 REST 客户端直接与表资源进行交互。
准备工作
请参阅表概览,了解 不同类型的表以及使用这些表的影响。
-
验证是否已为您的 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 目录 API (
CreateIcebergTable) 在目录命名空间内创建 Apache Iceberg 表。 - 列出表: 使用 Google Cloud 控制台、Spark、Trino 或 Iceberg REST 目录 API (
ListIcebergTableIdentifiers) 查看命名空间内的表标识符。 - 获取表详细信息: 使用 Google Cloud 控制台、Spark、Trino 或 Iceberg REST 目录 API (
GetIcebergTable、LoadIcebergTableCredentials) 检查表架构、属性和凭据。 - 插入数据: 使用 Spark 或 Trino 将数据行附加到 Iceberg 表。
- 查询表: 使用四部分表命名从 Spark、Trino 或 BigQuery 对 Iceberg 表执行查询。
- 更改表: 使用 Google Cloud 控制台、Spark、Trino 或 Iceberg REST 目录 API (
UpdateIcebergTable) 演变表架构并更新元数据属性。 - 删除表: 使用 Google Cloud 控制台、Spark、Trino 或 Iceberg REST 目录 API (
DeleteIcebergTable) 从目录中删除表注册,而不会清除底层存储文件。