【发布时间】:2020-07-09 13:43:29
【问题描述】:
我正在尝试将数据从 Redshift 卸载到 csv 中的 S3。然后将此 csv 数据转换为带有所需参数的 json 消息。 它适用于普通数据列,但当数据列包含分隔符或特殊字符时,生成的 csv 文件的映射不正确。 我正在使用“|”卸载命令中的分隔符,如果“|”分隔符出现在任何数据字符串中,然后它会弄乱 csv。 例如,如果数据是:
INSERT INTO my_schema.my_table (atr_id, atr_dt, atr_name, atr_array_name, atr_array_float, atr_array_bool) VALUES('2987', '2015-06-28 05:07:00.000', 'name', '[" |name1", "name2"]', '[1.2, 1.3]', '[true, false]');
卸载命令:
unload('从 my_schema.my_table 中选择 *') 到 's3://my-bucket/filename' iam_role 'arn:aws:iam::888555888:role/my-bucket-role' DELIMITER AS '|' addquotes 转义 HEADER ALLOWOVERWRITE 并行关闭;
然后生成csv:
atr_array_boolean|atr_array_float|atr_array_name|atr_dt|atr_id [true, false]|[1.2, 1.3]|["|name1", "name2"]|2015-06-28 05:07:00|1987
如何添加更多特殊字符来转义即{}、[]、分隔符等? 因此,一旦我处理此 CSV,我将获得列中的确切数据。
【问题讨论】:
标签: amazon-web-services csv amazon-s3 amazon-redshift