当一个列包含特定字符时,Redshift unload命令会出现故障。

0

【以下的问题经过翻译处理】 我们正在使用UNLOAD命令以TSV格式将数据转储到S3中,然后使用其他程序进行读取。我们的UNLOAD命令如下所示:

UNLOAD ('SELECT column1, column2, column2 FROM some_table')
TO 's3://bucket/and/a/prefix/'
CREDENTIALS'aws_access_key_id = <put_access_key_id_here>; aws_secret_access_key = <put_secret_access_key_here>'
ALLOWOVERWRITE
NULL AS '$$NULL$$'
ESCAPE
ADDQUOTES
DELIMITER'\ t';

这种方法可以正常工作,但我们注意到当column1包含以下字符串时:“1% G”,它会破坏输出格式。

示例数据如下:

column1 = "some text 1% General more text" column2 = 10 column3 = "whatever"

我们期望得到一个TSV,看起来像下面这样:

"some text 1% General more text"\t"10"\t"whatever"

而我们得到的是:

"some text 1-NANeneral more text\t"10"\t"whatever"

错误如下:

1.我们得到的TSV是不正确的-第一列未被引号包含。 2.1%G已变成1-NAN。

profile picture
专家
已提问 3 个月前17 查看次数
1 回答
0

【以下的回答经过翻译处理】 可以在Redshift控制台中升级到1.0.6230或更高版本来解决此问题。https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html#rs-mgmt-cluster-version

profile picture
专家
已回答 3 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则