是否可以在 csv 中包含列名,并在 Snowflake 中复制 into 语句?
Is it possible to include column names in the csv with a copy into statement in Snowflake?
例如:
COPY INTO @my_stage/my_test.csv
FROM (select * from my_table)
FILE_FORMAT = (TYPE = CSV)
OVERWRITE=TRUE SINGLE=TRUE
将生成 csv,但不包括列 headers。如果无法使用 copy into 语句,是否可能有任何 non-obvious 技术可以实现此目的?
提前致谢。
我们以前见过这个请求,它在我们的路线图上。如果它对您来说是高优先级,请联系 Snowflake 支持。
如果您正在寻找解决方法,很难想出一个真正通用的方法。
- 一个选项是添加带有明确列名的单行,但是
您需要提前了解它们,如果
并非所有字段都是字符串。
- 另一种是转换所有记录
使用 OBJECT_CONSTRUCT(*) 并导出为 JSON,那么您将拥有
列名,但它当然只有在您可以摄取时才有用
JSON.
但我希望 Snowflake 能在不久的将来添加此功能。
雪花已添加此功能。您可以简单地添加一个选项 HEADER=TRUE
:
COPY INTO @my_stage/my_test.csv
FROM (select * from my_table)
FILE_FORMAT = (TYPE = CSV)
OVERWRITE=TRUE SINGLE=TRUE HEADER=TRUE
为了补充@Jiaxing 的回答,Snowflake HEADER
功能还允许您通过 AS
:
命名列来明确定义列名
COPY INTO @my_stage/my_test.csv
FROM (
SELECT
column1 AS "Column 1",
column2 AS "Column 2"
FROM my_table
) FILE_FORMAT = (TYPE = CSV)
例如:
COPY INTO @my_stage/my_test.csv
FROM (select * from my_table)
FILE_FORMAT = (TYPE = CSV)
OVERWRITE=TRUE SINGLE=TRUE
将生成 csv,但不包括列 headers。如果无法使用 copy into 语句,是否可能有任何 non-obvious 技术可以实现此目的?
提前致谢。
我们以前见过这个请求,它在我们的路线图上。如果它对您来说是高优先级,请联系 Snowflake 支持。
如果您正在寻找解决方法,很难想出一个真正通用的方法。
- 一个选项是添加带有明确列名的单行,但是 您需要提前了解它们,如果 并非所有字段都是字符串。
- 另一种是转换所有记录 使用 OBJECT_CONSTRUCT(*) 并导出为 JSON,那么您将拥有 列名,但它当然只有在您可以摄取时才有用 JSON.
但我希望 Snowflake 能在不久的将来添加此功能。
雪花已添加此功能。您可以简单地添加一个选项 HEADER=TRUE
:
COPY INTO @my_stage/my_test.csv
FROM (select * from my_table)
FILE_FORMAT = (TYPE = CSV)
OVERWRITE=TRUE SINGLE=TRUE HEADER=TRUE
为了补充@Jiaxing 的回答,Snowflake HEADER
功能还允许您通过 AS
:
COPY INTO @my_stage/my_test.csv
FROM (
SELECT
column1 AS "Column 1",
column2 AS "Column 2"
FROM my_table
) FILE_FORMAT = (TYPE = CSV)