使用引号将数据从 S3 加载到 Amazon Redshift
Posted
技术标签:
【中文标题】使用引号将数据从 S3 加载到 Amazon Redshift【英文标题】:Load data into Amazon Redshift from S3 with quotation marks 【发布时间】:2016-04-01 04:14:56 【问题描述】:如果我的输入文件中的数据在引号内且字段以逗号分隔,我如何从 Amazon S3 加载数据?
示例输入:
“A”,”ENGLAND”,”West, City Center”,”100”,”200”
我使用了以下查询:
copy users from 's3://awssampledbuswest2/tickit/allusers_pipe.txt'
credentials 'aws_iam_role=>iam-role-arn>'
delimiter ',' region 'us-west-2';
"West, City Center"
中的值是逗号,所以无法正常加载数据。
如何定义文本限定符来加载这些数据?
【问题讨论】:
【参考方案1】:使用 Amazon Redshift COPY
命令的 REMOVEQUOTES
参数。
来自documentation:
从传入数据中的字符串中删除周围的引号。引号内的所有字符(包括分隔符)都将保留。如果一个字符串有一个开始的单引号或双引号,但没有相应的结束标记,则 COPY 命令无法加载该行并返回错误。
【讨论】:
以上是关于使用引号将数据从 S3 加载到 Amazon Redshift的主要内容,如果未能解决你的问题,请参考以下文章
将数据从 Amazon S3 复制到 Redshift 并避免重复行
Amazon Data Pipeline“将 S3 数据加载到 RDS MySQL”查询格式?
将数据从 Amazon redshift 卸载到 Amazon s3