插入数据会将新记录附加到 Apache Iceberg 表中。
准备工作
-
验证是否已为您的 Google Cloud 项目启用结算功能。
-
启用 BigLake API。
启用 API 所需的角色
如需启用 API,您需要拥有
serviceusage.services.enable权限。如果您 创建了项目,则可能已通过 所有者角色 (roles/owner) 拥有此权限。否则,您可以通过 Service Usage Admin 角色 (roles/serviceusage.serviceUsageAdmin) 获得此权限。 了解如何授予角色。 - 使用 Apache Iceberg REST Catalog 端点设置 Lakehouse 运行时 目录。
所需的角色
如需获得将数据插入表所需的权限,请让管理员向您授予项目和存储桶的以下 IAM 角色:
-
以 凭据自动售卖模式 写入表数据:
项目的 BigLake Editor (
roles/biglake.editor) 角色 -
以非凭据自动售卖模式写入表数据:
- 项目的 BigLake Editor (
roles/biglake.editor) 角色 - Cloud Storage 存储桶的 Storage Object User (
roles/storage.objectUser) 角色
- 项目的 BigLake Editor (
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
您也可以通过自定义 角色或其他预定义 角色来获取所需的权限。
表功能和支持
在 Lakehouse 运行时目录中使用表时,了解不同的表类型及其选择启用功能会很有帮助。如需详细了解如何专门使用 Apache Iceberg 表,请参阅 Apache Iceberg 表概览。
支持的 Iceberg 表
仅支持 Apache Iceberg V2(正式版)和 V3(预览版)表。不支持 Iceberg V1 表。如需升级现有的 V1 表,请参阅将 Iceberg V1 表升级到 V2。
使用表选项(预览版)
您可以配置特定的表属性,选择使用 BigQuery 托管功能,例如 BigQuery 数据操纵语言 (DML) 和自动表管理。这些功能的启用方式因表的创建位置而异:
- 从 BigQuery: BigQuery DML 和自动表管理默认处于启用状态。
- 从开源引擎: 如需选择启用,您必须明确配置表属性。如需了解详情,请参阅配置表 选项。
将数据插入到表中
将示例数据插入到表中。
如需从 BigQuery 插入数据,表必须启用 BigQuery DML
(gcp.biglake.bigquery-dml.enabled = true)。如需了解详细
说明,请参阅配置表
选项。
Spark
spark.sql("INSERT INTO TABLE_NAME VALUES (1, \"first row\"), (2, \"second row\"), (3, \"third row\");")
如需启用 读写互操作性和表管理(预览版),请将属性添加到 TBLPROPERTIES 子句:
TBLPROPERTIES (
'gcp.biglake.bigquery-dml.enabled' = true,
'gcp.biglake.table-management.enabled' = true
)
Trino
INSERT INTO TABLE_NAME VALUES (1, 'first row'), (2, 'second row'), (3, 'third row');
如需启用 读写互操作性和表管理(预览版),请将这些属性添加到 WITH 子句:
WITH (
"gcp.biglake.bigquery-dml.enabled" = 'true',
"gcp.biglake.table-management.enabled" = 'true'
)
BigQuery
如需从 BigQuery 将数据插入到 Lakehouse 运行时目录中的 Apache Iceberg 表中,表必须启用 BigQuery DML。请使用以下 GoogleSQL INSERT 语句:
INSERT INTO `PROJECT_ID.CATALOG_ID.NAMESPACE.TABLE_NAME` VALUES (1, "foo");
替换以下内容:
PROJECT_ID:您的 Google Cloud 项目 ID。CATALOG_ID:您的 Lakehouse 运行时目录 ID。NAMESPACE:您的 Iceberg 命名空间名称。TABLE_NAME:您的 Iceberg 表的名称。
后续步骤
- 了解如何查询表。