当一个列包含特定字符时,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
EXPERT
asked 6 months ago35 views
1 Answer
0

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

profile picture
EXPERT
answered 6 months ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions