将数据从 Snowflake 卸载到 txt 格式文件

Posted

技术标签:

【中文标题】将数据从 Snowflake 卸载到 txt 格式文件【英文标题】:Unloading data from Snowflake to txt format file 【发布时间】:2020-09-01 21:18:16 【问题描述】:

我正在尝试从 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 格式。

【问题讨论】:

【参考方案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'

以上是关于将数据从 Snowflake 卸载到 txt 格式文件的主要内容,如果未能解决你的问题,请参考以下文章

将雪花中的数据卸载到 Postgres 中?

Snowflake数据仓库中如何使用内联文件格式从stage中查询数据

通过 JDBC 与 COPY_INTO + GET 批量卸载雪花数据

CSV 中引用的雪花空值会破坏 PostgreSQL 卸载

无法将数据从 Snowflake 复制到 Azure Blob

将数据从 Pandas 存储到 Snowflake 的最佳方式