通过 Spark 创建和查询 metastore 表
您可以使用开源引擎(例如 Spark)在 BigQuery 笔记本中查询 Apache Spark Iceberg 表。这些表是常规 Iceberg 表,其中包含存储在 BigLake metastore 中的元数据。可以通过 BigQuery 和 Spark 查询同一表。
准备工作
- 在 BigQuery 笔记本中使用 Spark 时创建 Iceberg 表。表架构存储在 BigLake metastore 中。例如,您可以使用 Dataproc、Dataproc Serverless 或存储过程创建表。
注意事项
- 仅支持 Iceberg 表。
运行查询时,请务必将命名空间和数据库名称映射为 BigQuery 数据集名称。下表列出了可用的键映射:
开源 BigQuery 命名空间 BigQuery 数据集 数据库 BigQuery 数据集 表(分区或未分区) BigQuery 表
查看和查询表
在 Spark 中创建 BigQuery 资源后,您可以在Google Cloud 控制台中查看和查询这些资源。以下示例展示了使用交互式 Spark 查询 metastore 表的一般步骤:
使用自定义 Iceberg 目录:
USE `CATALOG_NAME`;
替换以下内容:
CATALOG_NAME
:您在 SQL 作业中使用的 Spark 目录的名称。
创建命名空间:
CREATE NAMESPACE IF NOT EXISTS NAMESPACE_NAME;
替换以下内容:
NAMESPACE_NAME
:引用 Spark 表的命名空间名称。
使用创建的命名空间:
USE NAMESPACE_NAME;
创建 Iceberg 表:
CREATE TABLE TABLE_NAME (id int, data string) USING ICEBERG;
替换以下内容:
TABLE_NAME
:Iceberg 表的名称。
插入表格行:
INSERT INTO TABLE_NAME VALUES (1, "first row");
使用 Google Cloud 控制台执行以下操作之一:
SELECT * FROM `TABLE_NAME`;