当一个列包含特定字符时,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
EXPERTE
gefragt vor 6 Monaten34 Aufrufe
1 Antwort
0

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

profile picture
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen