我只有一个查询,当以COPY INTO
执行时,无法在结果中复制列标题。我有HEADER=TRUE
,并且正在使用AS
分配显式名称。当我也没有明确分配名称时,就会发生这种情况。
如果查询在没有COPY INTO
的情况下运行,则将正确生成结果。
查询
COPY INTO 's3://<my_bucket>'
FROM (
SELECT
col1 AS "alpha",
col2 AS "beta",
col3 AS "charlie",
col4 AS "delta"
FROM
"table_1"
INNER JOIN
"table_2"
ON
col1 = col3
AND
col2 = 'foo'
AND
col4 > 1234
)
FILE_FORMAT=(TYPE='PARQUET' FIELD_DELIMITER=',' record_delimiter = '\n' field_optionally_enclosed_by='"')
HEADER=TRUE
SINGLE=FALSE
OVERWRITE=TRUE
MAX_FILE_SIZE = 5368709120
credentials=(AWS_KEY_ID='<my_id>'
AWS_SECRET_KEY='<my_key>');
结果
ROW C0 C1 C2 C3
1 foo bar baz beetle
所需结果
ROW alpha beta charlie delta
1 foo bar baz beetle
答案 0 :(得分:1)
是的,使用包含标题的COPY INTO应该可以。这是镶木地板的示例: https://docs.snowflake.net/manuals/user-guide/data-unload-considerations.html#unloading-a-relational-table-to-parquet-with-multiple-columns
仅出于测试目的,该示例有效吗?
您可能要看的一件事是文件格式选项。 Parquet没有上面的代码中指定的某些文件格式选项。 https://docs.snowflake.net/manuals/sql-reference/sql/create-file-format.html#type-parquet