Amazon Redshift - 从 CSV 复制 - 行中的单个双引号 - CSV 错误的无效引号格式
Amazon Redshift - COPY from CSV - single Double Quote in row - Invalid quote formatting for CSV Error
我正在将 CSV 文件从 S3 加载到 Redshift。此 CSV 文件是包含 PageUrl(例如,查询字符串中可能包含用户搜索信息)的分析数据。
它会在有单个双引号字符的行上阻塞,例如,如果有一个 14" 玩具的页面,那么 PageUrl 将包含:
http://www.mywebsite.com/a-14"-toy/1234.html
可以理解,Redshift 无法处理此问题,因为它需要一个结束双引号字符。
我认为我的选择是:
- 预处理输入并删除这些字符
- 在 Redshift 中配置 COPY 命令以忽略这些字符但仍加载行
- 将 MAXERRORS 设置为较高的值并使用单独的进程清除错误
选项 2 比较理想,但我找不到!
如果我看起来不够努力,还有其他建议吗?
谢谢
邓肯
不幸的是,没有办法解决这个问题。在将文件加载到 Amazon Redshift 之前,您需要 预处理 文件。
您拥有的最接近的选项是 CSV [ QUOTE [AS] 'quote_character' ]
将字段包装在替代引号字符中,以及 ESCAPE
如果引号字符前面有斜杠。 las,两者都要求文件在加载前为特定格式。
参见:
现在是 2017 年,我 运行 遇到了同样的问题,很高兴地报告现在有一种方法可以让 redshift 加载数据中带有奇数 " 的 csv 文件。
诀窍是使用 ESCAPE 关键字,同时不要使用 CSV 关键字。
我不知道为什么,但在复制命令中同时使用 CSV 和 ESCAPE 关键字会导致失败并显示错误消息 "CSV is not compatible with ESCAPE;"
但是,在没有更改加载数据的情况下,一旦我从 COPY 命令中删除 CSV 关键字,我就能够成功加载。
您也可以参考此文档寻求帮助:
http://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-conversion.html#copy-escape
我正在将 CSV 文件从 S3 加载到 Redshift。此 CSV 文件是包含 PageUrl(例如,查询字符串中可能包含用户搜索信息)的分析数据。
它会在有单个双引号字符的行上阻塞,例如,如果有一个 14" 玩具的页面,那么 PageUrl 将包含:
http://www.mywebsite.com/a-14"-toy/1234.html
可以理解,Redshift 无法处理此问题,因为它需要一个结束双引号字符。
我认为我的选择是:
- 预处理输入并删除这些字符
- 在 Redshift 中配置 COPY 命令以忽略这些字符但仍加载行
- 将 MAXERRORS 设置为较高的值并使用单独的进程清除错误
选项 2 比较理想,但我找不到!
如果我看起来不够努力,还有其他建议吗?
谢谢
邓肯
不幸的是,没有办法解决这个问题。在将文件加载到 Amazon Redshift 之前,您需要 预处理 文件。
您拥有的最接近的选项是 CSV [ QUOTE [AS] 'quote_character' ]
将字段包装在替代引号字符中,以及 ESCAPE
如果引号字符前面有斜杠。 las,两者都要求文件在加载前为特定格式。
参见:
现在是 2017 年,我 运行 遇到了同样的问题,很高兴地报告现在有一种方法可以让 redshift 加载数据中带有奇数 " 的 csv 文件。
诀窍是使用 ESCAPE 关键字,同时不要使用 CSV 关键字。 我不知道为什么,但在复制命令中同时使用 CSV 和 ESCAPE 关键字会导致失败并显示错误消息 "CSV is not compatible with ESCAPE;" 但是,在没有更改加载数据的情况下,一旦我从 COPY 命令中删除 CSV 关键字,我就能够成功加载。
您也可以参考此文档寻求帮助: http://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-conversion.html#copy-escape