导出到 是否可以在 csv 中包含列名,并在 Snowflake 中复制到语句中



例如:

COPY INTO @my_stage/my_test.csv 
FROM (select * from my_table) 
FILE_FORMAT = (TYPE = CSV) 
OVERWRITE=TRUE SINGLE=TRUE 

将生成 CSV,但不包含列标题。如果无法将副本复制到语句中,是否有任何不明显的技术可以做到这一点?

提前谢谢。

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

我们以前见过这个请求,它在我们的路线图上。如果这是您的高优先级,请联系雪花支持。

如果您正在寻找解决方法,则很难想出真正通用的解决方法。

  • 一种选择是添加具有显式列名的单行,但您需要提前了解它们,如果并非所有字段都是字符串。
  • 另一种是转换所有记录使用 OBJECT_CONSTRUCT(*) 并导出为 JSON,那么您将拥有列名称,但当然只有在您可以摄取时才有用杰森。

但我希望Snowflake能在不远的将来添加这个功能。

为了补充@Jiaxing的答案,雪花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)

相关内容

  • 没有找到相关文章

最新更新