如何将数据(纯文本)从 S3 转储到雪花表

Posted

技术标签:

【中文标题】如何将数据(纯文本)从 S3 转储到雪花表【英文标题】:How to dump data (Plain text) from S3 to snowflake table 【发布时间】:2021-03-25 15:14:55 【问题描述】:

我想使用这个查询将纯文本数据放入雪花:

copy into "BETA"."PUBLIC"."TNS"
  from s3://inbound/DnB/TNS
  credentials=(aws_key_id='my_id' aws_secret_key='my_key')
  pattern='.*TNS.*';

但是代码会导致这个错误:

字段分隔符 ',' 在期望记录分隔符 '\n' 时找到遇到错误时继续加载,对 ON_ERROR 选项使用其他值,例如“SKIP_FILE”或“CONTINUE”。有关加载选项的更多信息,请在 SQL 客户端中运行“info loading_data”。

【问题讨论】:

【参考方案1】:

您可以使用无法找到文件的字段分隔符创建文件格式,并将其与您的 COPY 命令一起使用:

create file format PLAINTEXT TYPE=CSV FIELD_DELIMITER = '*XyZ*';

copy into "BETA"."PUBLIC"."TNS"
from s3://inbound/DnB/TNS
credentials=(aws_key_id='my_id' aws_secret_key='my_key')
pattern='.*TNS.*'
file_format = PLAINTEXT;

这应该有助于您将文件中的整行作为一列读取。

创建文件格式https://docs.snowflake.com/en/sql-reference/sql/create-file-format.html

【讨论】:

以上是关于如何将数据(纯文本)从 S3 转储到雪花表的主要内容,如果未能解决你的问题,请参考以下文章

雪花 CDC 从 S3 到雪花

从命令行将 mysql 数据库转储到纯文本 (CSV) 备份

来自 S3(COPY) 的雪花负载数据与来自外部表的负载

将数据从雪花卸载到 s3 时,如何将日期时间戳添加到 zip 文件?

预计将解析从 S3 加载的雪花数据中的列时到达记录末尾

如何将查询结果从雪花直接上传到 S3?