Snowflake使用COPY INTO覆盖列名称

时间:2019-10-21 20:43:44

标签: snowflake-data-warehouse

我只有一个查询,当以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

1 个答案:

答案 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