我正在尝试以 parquet 格式将 BQ 表导出到 GCS。由于大小限制,无法使用 API,因此必须是 SQL 查询。问题是当使用 SQL 查询时,parquet 会忽略表列模式。 所以当我创建这样的表时
CREATE or replace TABLE sandbox.newtable (x INT64, y STRING, z BOOL NOT NULL, d DATE)
partition by d
OPTIONS(
description = 'My example table')
as select 1 ,'s', false, current_date()
并使用下面的查询导出
EXPORT DATA
OPTIONS (
uri = 'gs://path/*.parquet',
format = 'PARQUET',
compression = 'SNAPPY')
AS (
SELECT x,y,z,d FROM sandbox.newtable
);
z 列将其模式更改为可为空(并且我无法覆盖负载上的列模式,因为 Parquet 将架构存储在文件内)。有没有办法使用 SQL 导出它并保持正确的模式?