将数据插入到表中

插入数据会将新记录和数据文件附加到 Apache Iceberg 表中。

准备工作

  1. 验证是否已为您的 Google Cloud 项目启用结算功能

  2. 启用 BigLake API。

    启用 API 所需的角色

    如需启用 API,您需要拥有 Service Usage Admin IAM 角色 (roles/serviceusage.serviceUsageAdmin),该角色包含 serviceusage.services.enable 权限。了解如何授予角色

    启用 API

  3. 使用 Apache Iceberg REST 目录端点设置 Lakehouse 运行时目录

所需的角色

如需获得将数据插入表所需的权限,请让管理员向您授予项目和存储桶的以下 IAM 角色:

  • 凭据自动售卖模式写入表数据:BigLake Editor (roles/biglake.editor) - 项目
  • 在非凭证自动售卖模式下写入表数据:
    • BigLake Editor (roles/biglake.editor) - 项目
    • Storage Object User (roles/storage.objectUser) - Cloud Storage 存储桶

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

表格功能和支持

在 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 表的名称。

后续步骤