在没有 extension/file_format 的情况下将 Snowflake 数据卸载到 s3

unload Snowflake data to s3 without the extension/file_format

如何在不使用任何文件格式的情况下将雪花数据卸载到 s3?

为了将数据卸载到特定的扩展中,我们使用雪花文件格式。

例如代码

  copy into 's3://mybucket/unload/'
  from mytable
  storage_integration = myint
  file_format = (format_name = my_csv_format);

但是我想要的是不带任何扩展名的存储数据。

您可以将参数 FILE_EXTENSION = NONE 添加到您的文件格式中。使用此参数,Snowflake 不会根据您的文件格式(在本例中为 .csv)添加文件扩展名,而是使用传递的扩展名(NONE 或任何其他)。

copy into 's3://mybucket/unload/'
from mytable
storage_integration = myint
file_format = (format_name = my_csv_format file_extension = NONE);

https://docs.snowflake.com/en/sql-reference/sql/copy-into-location.html

SINGLE 是我要找的。它是我们可以与 COPY 命令一起使用的参数之一,该命令创建没有扩展名的文件。

代码:

copy into 's3://mybucket/unload/'
from mytable
storage_integration = myint
file_format = (format_name = my_csv_format)
SINGLE = TRUE;

阅读下面的注释 link 以便更好地理解:

https://docs.snowflake.com/en/sql-reference/sql/create-file-format.html#:~:text=comma%20(%2C)-,FILE_EXTENSION,-%3D%20%27string%27%20%7C%20NONE