从 Spark 创建和查询元存储表
您可以使用 Spark 等开源引擎在 BigQuery 记事本中查询 Apache Spark Iceberg 表。这些表是常规的 Iceberg 表,其元数据存储在 BigQuery 元存储空间中。您可以从 BigQuery 和 Spark 查询同一表。
准备工作
- 在 BigQuery 笔记本中使用 Spark 创建 Iceberg 表。表架构存储在 BigQuery 元存储区中。例如,您可以使用 BigQuery 笔记本、Dataproc、 Dataproc Serverless 或存储过程创建表。
注意事项
- 目前仅支持 Iceberg 表。
运行查询时,请务必将命名空间和数据库名称映射为 BigQuery 数据集名称。下表列出了要使用的适用按键映射:
开源 BigQuery 命名空间 BigQuery 数据集 数据库 BigQuery 数据集 表(分区表或非分区表) BigQuery 表
查看和查询表
在 Spark 中创建 BigQuery 资源后,您可以在Google Cloud 控制台中查看和查询这些资源。以下示例展示了使用交互式 Spark 查询元存储表的一般步骤:
使用自定义 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`;