在Snowflake中,是否可以将列名包含在csv中并带有复制到语句中?

Dav*_*gan 4 csv export-to-csv snowflake-cloud-data-platform

例如:

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

将导致csv,但不包含列标题。如果使用复制到语句是不可能的,那么也许有任何非显而易见的技术可以实现这一目标吗?

提前致谢。

Jia*_*ang 5

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
Run Code Online (Sandbox Code Playgroud)


Mar*_*ski 3

我们以前见过这个请求,并且它已在我们的路线图中。如果您认为这很重要,请联系 Snowflake 支持。

如果您正在寻找一种解决方法,那么很难想出一个真正通用的解决方法。

  • 一种选择是添加具有显式列名称的单行,但您需要提前知道它们,如果并非所有字段都是字符串,则可能效率不高。
  • 另一种方法是使用 OBJECT_CONSTRUCT(*) 转换所有记录并导出为 JSON,然后您将拥有列名称,但当然只有当您可以提取 JSON 时它才有用。

但我希望 Snowflake 在不久的将来能够添加此功能。