我在Redshift中有一个带有以下列的表
id int,state varchar(50), name varchar(50),tsa varchar(50),countrycode varchar(50),country_id int
当我将其从AWS Lambda插入Redshift时,它希望像这样对varchar进行转义-
cursor.execute('insert into test values (81,\'tn\',\'ic\',\'ICS\',\'US\',9)'))
我正在通过以下方式从Redshift卸载数据-
方法1
unload ('select * from info')
to 's3://Info/Load/'
iam_role 'arn:aws:iam:::role'
addquotes
;
S3的输出是
80|test|test1|test2S|US|9
方法2
unload ('select * from info')
to 's3://Info/Load/'
iam_role 'arn:aws:iam:::role'
;
S3的输出是
"41"|"PA"|"PEN"|"Test"|"US"|"90"
如何以以下格式从Redshift卸载数据,所以我可以轻松运行插入。
81,\'tn\',\'ic\',\'ICS\',\'US\',9
答案 0 :(得分:0)
您可能会使用:
DELIMITER AS ','
ADDQUOTES
ESCAPE
请参阅:UNLOAD documentation。
顺便说一句,不建议通过单独的INSERT
语句将数据插入Redshift。您应该使用COPY
语句从文件中批量加载数据。