如何将我的csv文件上传到Redshift / SQL?

时间:2018-03-28 18:57:06

标签: sql excel amazon-redshift

我有一个大型的CSV文件,我需要进入Redshift。

它有大约500万行。几个问题:

1)文件的前10行是我要删除/排除的乱码

2)每当我尝试上传csv文件时,我总会得到这个奇怪的故障,它表示它已成功加载,但上传了0行。我解决这个问题的方法是重新格式化CSV中的列(将数字格式化为数字,将日期格式化为自定义日期" YYYY-MM-DD")然后重新保存。无论出于何种原因,它都会在那之后起作用。

是否有人遇到类似的问题以及将此csv文件转换为红移的最佳方法是什么?

UPDATE - 所以即时使用COPY命令并将我的csv文件从S3复制到Redshift表中。但是,我得到一个错误,我查看了stl_load_errors和" colname"和" raw_field_value"不匹配。它真的很棒。例如," colname"将会像" name"但" raw_field_value"将是一个电话号码。我仔细检查了我的csv文件,但事实并非如此。有什么想法吗?它不只是一次出现而是很多,而且有几行混在一起。

2 个答案:

答案 0 :(得分:0)

Redshift需要以适当的格式加载数据。正如您所提到的那样,您的数据在开头就有乱码行,您应该通过指定IGNOREHEADER x来修复这些行或跳过加载它们,其中x是您需要跳过的起始行数。
您获得的错误是因为您的数据在列中有额外的列或更少的列或字段分隔符(逗号),而不是双引号。

为了将COPY数据保存到Redshift中,即使遇到错误,也可以在Redshift COPY命令中添加MAXERROR x。它会跳过' x'停止复制之前的错误数。

答案 1 :(得分:0)

我有同样的问题。您是否正在将数据逐块输出到csv文件中,以创建多个csv文件(这是Redshift的建议)?在这种情况下,您需要确保每个块的列输出顺序都相同。