从 Spark 创建和查询元存储表

您可以使用 Spark 等开源引擎在 BigQuery 记事本中查询 Apache Spark Iceberg 表。这些表是常规的 Iceberg 表,其元数据存储在 BigQuery 元存储空间中。您可以从 BigQuery 和 Spark 查询同一表。

准备工作

注意事项

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

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

查看和查询表

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

  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`;

后续步骤