【问题标题】:Unloading data from Snowflake to txt format file将数据从 Snowflake 卸载到 txt 格式文件
【发布时间】:2025-12-12 21:05:01
【问题描述】:

我正在尝试从 Snowflake 中提取数据,外部 S3 暂存 txt 文件格式的数据,这些数据可以使用 SFTP 发送给供应商。但我面临 SQL 编译错误 -

文件格式脚本:

create or replace file format my_format
  type = txt
  field_delimiter = '|'
  skip_header = 0
  null_if = ('NULL', 'null')
  empty_field_as_null = true

请告知我们如何在 S3 外部阶段将数据卸载为 txt 格式。

【问题讨论】:

    标签: snowflake-cloud-data-platform


    【解决方案1】:

    只需将 txt 更改为 csv 并将 file_extension 更改为 txt:

    create or replace file format my_format
      type = csv
      field_delimiter = '|'
      skip_header = 0
      null_if = ('NULL', 'null')
      empty_field_as_null = true
      file_extension = 'txt'
    

    虽然它显示的是 CSV,但它实际上是带有分隔字段的文本,并且您的竖线(竖线)会覆盖使用逗号作为列分隔符。

    【讨论】:

    • 感谢您的回复。我尝试将类型保留为 csv,但看到的是 csv.gz 而不是 txt.gz。有什么方法可以将文件名重命名为 filename.txt.gz 而不是 filename.csv.gz?最终,我们希望解压缩文件并将 txt 格式的文件发送给我们的供应商
    • 我更新了答案。您可以设置 file_extension = 'txt'