【发布时间】:2022-01-15 18:26:59
【问题描述】:
我正在使用 AWS Data Pipelines 将 SQL 数据复制到 AWS S3 中的 CSV 文件。一些数据在字符串引号之间有逗号,例如:
{"id":123455,"user": "some,user" .... }
在将此 CSV 数据导入 DynamoDB 时,它将逗号作为字段值的结尾。这样会导致错误,因为映射中给出的数据与我们提供的模式不匹配。
我的解决方案是 - 在将数据从 SQL 复制到 S3 存储桶时 - 用 ;(分号)分隔我们的 CSV 字段。这样,引号内的值将被视为一个。数据看起来像(注意逗号后引号字符串中的空格):
{“id”:12345; "user": "some, user";....}
我的堆栈如下所示:
- database_to_s3:
name: data-to-s3
description: Dumps data to s3.
dbRef: xxx
selectQuery: >
select * FROM USER;
s3Url: '#{myS3Bucket}/xxxx-xxx/'
format: csv
有什么方法可以使用分隔符来分隔带有;(分号)的字段?
谢谢!
【问题讨论】:
-
我已经编辑了您的问题,使其更具可读性
-
问题提到了 CSV,但像
{"id" : 12345; "user": "some, user";....}这样的数据样本都是 JSON 而不是 CSV。 -
@ElmoVanKielmo 是的,我正在考虑一个更好的标题...
-
@Khan,你的堆栈 sn-p 指的是什么?它是 Cloudformation 模板(例如 AWS::DataPipeline::Pipeline PipelineObject)还是什么?请详细说明
-
@Khan 另一个问题:您是从 RDS 导出到 S3 吗?还是进入 DynamoDB?还是先将数据从 RDS 导出到 S3,再从 S3 导出到 DynamoDB?
标签: amazon-web-services csv amazon-s3 delimiter aws-data-pipeline