通过 Spark 创建和查询 metastore 表

您可以使用开源引擎(例如 Spark)在 BigQuery 笔记本中查询 Apache Spark Iceberg 表。这些表是常规 Iceberg 表,其中包含存储在 BigLake metastore 中的元数据。可以通过 BigQuery 和 Spark 查询同一表。

准备工作

注意事项

  • 仅支持 Iceberg 表。
  • 运行查询时,请务必将命名空间和数据库名称映射为 BigQuery 数据集名称。下表列出了可用的键映射:

    开源 BigQuery
    命名空间 BigQuery 数据集
    数据库 BigQuery 数据集
    表(分区或未分区) BigQuery 表

查看和查询表

在 Spark 中创建 BigQuery 资源后,您可以在Google Cloud 控制台中查看和查询这些资源。以下示例展示了使用交互式 Spark 查询 metastore 表的一般步骤:

  1. 使用自定义 Iceberg 目录:

    USE `CATALOG_NAME`;

    替换以下内容:

    • CATALOG_NAME:您在 SQL 作业中使用的 Spark 目录的名称。
  2. 创建命名空间:

    CREATE NAMESPACE IF NOT EXISTS NAMESPACE_NAME;

    替换以下内容:

    • NAMESPACE_NAME:引用 Spark 表的命名空间名称。
  3. 使用创建的命名空间:

    USE NAMESPACE_NAME;
  4. 创建 Iceberg 表:

    CREATE TABLE TABLE_NAME (id int, data string) USING ICEBERG;

    替换以下内容:

    • TABLE_NAME:Iceberg 表的名称。
  5. 插入表格行:

    INSERT INTO TABLE_NAME VALUES (1, "first row");
  6. 使用 Google Cloud 控制台执行以下操作之一:

     SELECT * FROM `TABLE_NAME`;

后续步骤