查询表

查询表时,系统会使用 Lakehouse 运行时目录管理的元数据从底层 Cloud Storage 文件读取数据。

您可以使用四部分表命名方式,从 Spark 和 Trino 等开源引擎或直接从 BigQuery 执行 SELECT 查询。

准备工作

请参阅表格概览,了解不同类型的表格以及使用这些表格的影响。

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

  2. 启用 BigLake API。

    启用 API 所需的角色

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

    启用 API

所需的角色

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

  • 凭据自动售卖模式下读取表数据:BigLake Viewer (roles/biglake.viewer) - 项目
  • 在非凭证自动售卖模式下读取表数据:
    • BigLake Viewer (roles/biglake.viewer) - 项目
    • Storage Object Viewer (roles/storage.objectViewer) - Cloud Storage 存储桶

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

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

查询表

从表中选择所有数据:

Spark

spark.sql("SELECT * FROM TABLE_NAME;").show()

Trino

SELECT * FROM TABLE_NAME;

BigQuery

如需从 BigQuery 查询 Lakehouse Iceberg REST Catalog 表,请在查询中使用四部分表名称,格式如下:PROJECT_NAME.CATALOG_ID.NAMESPACE_OR_SCHEMA_NAME.TABLE_NAME

SELECT * FROM `PROJECT_NAME.BIGLAKE_CATALOG_ID.NAMESPACE_OR_SCHEMA_NAME.TABLE_NAME`;

替换以下值:

  • PROJECT_NAME:Lakehouse 运行时目录中目录所属的Google Cloud 项目。系统会向 Google Cloud 控制台中所选的 Google Cloud 项目收取查询费用。

  • CATALOG_ID:创建目录时指定的 Lakehouse 运行时目录的 ID。此标识符用作 BigQuery 查询中的目录名称。

    此标识符也是 Cloud Storage 存储桶的名称。

    例如,如果您创建了一个用于存储目录的存储桶,并将其命名为 iceberg-bucket,则目录名称和存储桶名称均为 iceberg-bucket。稍后,当您使用 P.C.N.T 语法在 BigQuery 中查询目录时,系统会使用此值。例如 my-project.biglake_catalog_id.quickstart_namespace.quickstart_table

  • NAMESPACE_OR_SCHEMA_NAME:如果使用 Spark,则为表命名空间;如果使用 Trino,则为表架构名称。

  • TABLE_NAME:表格的名称。

后续步骤