【问题标题】:Import csv file in s3 bucket with semi colon separated fields在 s3 存储桶中导入带有分号分隔字段的 csv 文件
【发布时间】: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


【解决方案1】:

试试 AWS Glue,您可以在其中整理数据,然后再插入 dynamoDB。

【讨论】:

  • 你有什么具体的例子吗?
  • 不方便@Khan
猜你喜欢
  • 2019-09-26
  • 2017-02-14
  • 2021-08-16
  • 1970-01-01
  • 1970-01-01
  • 2018-03-13
  • 2013-08-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多