删除表

删除或舍弃表只会从 Lakehouse 运行时目录中移除表注册信息和元数据。存储在 Cloud Storage 中的底层数据文件不会被清除或删除。

您可以使用 Google Cloud 控制台、Spark 和 Trino 中的 SQL drop 命令或 REST API 删除表。

准备工作

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

  2. 启用 BigLake API。

    启用 API 所需的角色

    如需启用 API,您需要拥有 serviceusage.services.enable 权限。如果您创建了项目,则可能已经通过 Owner 角色 (roles/owner) 获得了此权限。否则,您可以通过 Service Usage Admin 角色 (roles/serviceusage.serviceUsageAdmin) 获得此权限。了解如何授予角色

    启用 API

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

所需的角色

如需获得删除表所需的权限,请让管理员向您授予项目的以下 IAM 角色:

  • 删除表:BigLake Admin (roles/biglake.admin) - 您的项目

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

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

表格功能和支持

在 Lakehouse 运行时目录中使用表时,了解不同的表类型及其选择启用功能会很有帮助。如需详细了解如何使用 Apache Iceberg 表,请参阅 Apache Iceberg 表概览

支持的 Iceberg 表

仅支持 Apache Iceberg V2(正式版)和 V3(预览版)表。不支持 Iceberg V1 表。如需升级现有的 V1 表,请参阅将 Iceberg V1 表升级到 V2

使用表格选项(预览版)

您可以通过配置特定的表属性,选择使用 BigQuery 托管功能,例如 BigQuery 数据操纵语言 (DML) 和自动表管理。这些功能的启用方式因表格的创建位置而异:

  • 从 BigQuery 迁移:默认启用 BigQuery DML 和自动表管理。
  • 从开源引擎:如需选择启用,您必须明确配置表属性。如需了解详情,请参阅配置表格选项

从目录中删除表注册会移除相应表,无论该表是标准 Iceberg 表还是启用了 BigQuery 管理功能的表。如需了解表删除如何与后台表管理作业交互,请参阅配置表选项

删除表

删除表。

控制台

  1. 在 Google Cloud 控制台中,前往 Lakehouse

    前往 Lakehouse

  2. 选择现有目录,或者创建目录(如果您还没有目录)。

  3. 命名空间详细信息表格中,选择一个表格,然后展开菜单选项。

  4. 点击删除

  5. 在对话框中输入表格名称以确认删除。

  6. 点击删除

Spark

spark.sql("DROP TABLE TABLE_NAME;")
DROP TABLE TABLE_NAME;

gcloud

如需使用 gcloud 删除表,请运行 gcloud biglake iceberg tables delete 命令

gcloud biglake iceberg tables delete TABLE_NAME \
    --project="PROJECT_ID" \
    --catalog="CATALOG_ID" \
    --namespace="NAMESPACE_NAME"

替换以下内容:

  • TABLE_NAME:Iceberg 表的名称。
  • PROJECT_ID:您的 Google Cloud 项目 ID。
  • CATALOG_ID:目录的 ID。
  • NAMESPACE_NAME:目录命名空间的名称。

BigQuery

如需从 BigQuery 中删除 Lakehouse 运行时目录中注册的 Apache Iceberg 表,请使用以下 GoogleSQL DROP TABLE 语句:

DROP TABLE `PROJECT_ID.CATALOG_ID.NAMESPACE.TABLE_NAME`;

替换以下内容:

  • PROJECT_ID:您的 Google Cloud 项目 ID。
  • CATALOG_ID:您的 Lakehouse 运行时目录 ID。
  • NAMESPACE:您的 Iceberg 命名空间名称。
  • TABLE_NAME:Iceberg 表的名称。

REST

如需使用 REST API 删除 Iceberg 表注册,请向 DeleteIcebergTable 端点发出 DELETE 请求:

DELETE /iceberg/v1/restcatalog/v1/projects/PROJECT_ID/catalogs/CATALOG_ID/namespaces/NAMESPACE_NAME/tables/TABLE_NAME

替换以下内容:

  • PROJECT_ID:您的 Google Cloud 项目 ID。
  • CATALOG_ID:目录的 ID。
  • NAMESPACE_NAME:目录命名空间的名称。
  • TABLE_NAME:Iceberg 表的名称。

后续步骤