You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Redshift COPY命令中指定行分隔符

在Redshift COPY命令中指定自定义行分隔符

Redshift的COPY命令提供了ROWDELIMITER参数,专门用来指定记录的行分隔符,用法和你已经在用的DELIMITER完全类似,刚好能解决你遇到的CRLF误识别问题。

  • 如果你期望的正确行分隔符是LF(\n),可以直接把ROWDELIMITER设为'\n',这样系统只会把LF当作新行的标志,混入的CR(\r)会被视为普通字符处理,不会触发误拆分:
COPY your_target_table
FROM 's3://your-data-bucket/data-file.csv'
IAM_ROLE 'arn:aws:iam::123456789012:role/your-redshift-access-role'
DELIMITER ','
ROWDELIMITER '\n';
  • 如果你的数据使用的是其他自定义行分隔符(比如'|||'这类特殊组合),直接替换参数值即可:
COPY your_target_table
FROM 's3://your-data-bucket/data-file.csv'
IAM_ROLE 'arn:aws:iam::123456789012:role/your-redshift-access-role'
DELIMITER ','
ROWDELIMITER '|||';

另外补充两个实用参数帮你进一步处理脏数据:

  • REMOVEQUOTES:如果你的字段是用引号包裹的,开启这个参数后,Redshift会忽略引号内部的所有换行符(包括CRLF),避免字段内的换行被误判为新记录:
COPY your_target_table
FROM 's3://your-data-bucket/data-file.csv'
IAM_ROLE 'arn:aws:iam::123456789012:role/your-redshift-access-role'
DELIMITER ','
ROWDELIMITER '\n'
REMOVEQUOTES;
  • ESCAPE:如果数据里的换行符是经过转义的(比如用\\n表示实际的换行),可以指定转义字符,让系统正确解析:
COPY your_target_table
FROM 's3://your-data-bucket/data-file.csv'
IAM_ROLE 'arn:aws:iam::123456789012:role/your-redshift-access-role'
DELIMITER ','
ROWDELIMITER '\n'
ESCAPE '\\';

内容的提问来源于stack exchange,提问作者Mr. Spock

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 19:45:52