将 csv 文件从 s3 复制到 redshift 的问题
Posted
技术标签:
【中文标题】将 csv 文件从 s3 复制到 redshift 的问题【英文标题】:problems in copying a csv file from s3 to redshift 【发布时间】:2017-03-15 18:05:19 【问题描述】:如果我运行复制命令将 s3 中的 .csv 文件的内容复制到 redshift 中的表,则会收到以下错误。
错误:“字符串长度超过 DDL 长度”。
我正在使用以下复制命令:
COPY enjoy from 's3://nmk-redshift-bucket/my_workbook.csv' CREDENTIALS 'aws_access_key_id=”****”;aws_secret_access_key=’**** ' CSV QUOTE '"' DELIMITER ',' NULL AS '\0'
我想可以通过控制台打开 s3 为我的文件提供的链接。 工作簿的链接是: link to my s3bucket cvs file
上面的文件充满了许多我真的不明白的奇怪字符。 复制命令使用这些字符而不是我在 csv 文件中输入的信息。因此导致字符串长度超出错误。
我使用 sql 工作台进行查询。我在 redshift 中的 'stl_load_errors' 表有 raw_field_values 组件,类似于我上面提到的链接中的字符,这就是我如何知道它是如何接受输入的
我是 aws 和 utf-8 配置的新手。所以请感谢您对此的帮助
【问题讨论】:
【参考方案1】:您提供的链接指向一个.xlsx
文件(但扩展名为.csv
而不是.xlsx
),它实际上是一个zip 文件。
这就是为什么你会看到那些奇怪的字符,前两个是'PK'
,这意味着它是一个zip文件。
因此,您必须先导出到.csv
,然后才能使用该文件。
【讨论】:
没问题,很乐意提供帮助。以上是关于将 csv 文件从 s3 复制到 redshift 的问题的主要内容,如果未能解决你的问题,请参考以下文章
将 csv 和 json 数据从 S3 复制到 Redshift
从充满 CSV 文件的 AWS S3 目录中复制 Redshift