【发布时间】:2018-01-06 23:44:04
【问题描述】:
我正在尝试将 CSV 文件加载到 redshift。
分隔符“|”
第 1 列 CSV:
1 |Bhuvi|"This is ok"|xyz@domain.com
我用这个命令加载。
copy tbl from 's3://datawarehouse/source.csv'
iam_role 'arn:aws:iam:::role/xxx'cas-pulse-redshift'
delimiter '|'
removequotes
ACCEPTINVCHARS ;
错误:
raw_field_value | This is ok" |xyz@domain.com
err_code | 1214
err_reason | Delimited value missing end quote
那我也试过了。
copy tbl from 's3://datawarehouse/source.csv'
iam_role 'arn:aws:iam:::role/xxx'
CSV QUOTE '\"'
DELIMITER '|'
ACCEPTINVCHARS ;
【问题讨论】:
-
iam_role 字符串中的第一个查询中可能有一个太多的单引号。我正在使用带有 aws_access_key、aws_secret_access_key 的“凭据”配置,但我无法重现您的错误:/
-
当您尝试第二个 COPY 命令时发生了什么?你有同样的错误吗?尝试使用没有转义反斜杠的 CSV QUOTE AS '"'。
-
我尝试运行第一个 COPY 命令,它对我来说很好,我认为您的数据实际上可能有一些缺少引号的行。无论使用 REMOVEQUOTES 还是不使用它,该查询都适用于我。如果您想简单地忽略缺少双引号的行,您可以在 COPY 命令的末尾添加 MAXERROR 10,这将在给您和错误之前最多跳过 10 行包含损坏/无效数据的行。您可以根据需要更改值“10”。
标签: csv amazon-web-services amazon-s3 amazon-redshift