Amazon web services 数据管道(DynamoDB到S3)-如何格式化S3文件?
我有一个数据管道,可以将DynamoDB表导出到S3 bucket,这样我就可以将S3文件用于QuickSight、Athena和Forecast等服务 但是,为了使我的S3文件能够使用这些服务,我需要将文件格式化为csv格式,如下所示:Amazon web services 数据管道(DynamoDB到S3)-如何格式化S3文件?,amazon-web-services,amazon-s3,amazon-dynamodb,amazon-data-pipeline,Amazon Web Services,Amazon S3,Amazon Dynamodb,Amazon Data Pipeline,我有一个数据管道,可以将DynamoDB表导出到S3 bucket,这样我就可以将S3文件用于QuickSight、Athena和Forecast等服务 但是,为了使我的S3文件能够使用这些服务,我需要将文件格式化为csv格式,如下所示: date, journal, id 1589529457410, PLoS Genetics, 10.1371/journal.pgen.0030110 1589529457410, PLoS Genetics, 10.1371/journal.pgen.10
date, journal, id
1589529457410, PLoS Genetics, 10.1371/journal.pgen.0030110
1589529457410, PLoS Genetics, 10.1371/journal.pgen.1000047
但是,我导出的文件如下所示:
{"date":{"s":"1589529457410"},"journal":{"s":"PLoS Genetics"},"id":{"s":"10.1371/journal.pgen.0030110"}}
{"date":{"s":"1589833552714"},"journal":{"s":"PLoS Genetics"},"id":{"s":"10.1371/journal.pgen.1000047"}}
如何在S3中指定导出文件的格式,以便使用QuickSight、Athena和Forecast等服务进行操作?我最好也使用数据管道进行数据转换。雅典娜可以读取
您还可以使用将数据流传输到S3。这里有一个链接,指向一篇博客文章,其中介绍了将数据从DynamoDB流式传输到web的最佳实践和设计模式
您可以使用DynamoDB函数,该函数可以存储数据,等等。通过AWS Lambda,您还可以触发重新训练,或者将数据传递给Amazon Forecast进行预测
或者,您可以使用将数据写入当前拥有的S3存储桶。然后使用计划的运行lambda函数,或使用运行lambda函数。lambda函数可以转换文件并将其存储在另一个S3存储桶中以供进一步处理。因此,我猜不可能使用数据管道进行任何类型的数据转换。如果我理解正确,我需要设置一个Kinesis Firehose流,并使用Lambda函数指定数据转换,然后将该流保存到S3文件。使用DynamoDB streams而不是将DynamoDB表作为一个整体进行数据转换有什么好处?@incnnu您不能使用数据管道进行转换,但可以将文件写入S3,然后让CloudWatch事件触发lambda,或者S3触发lambda读取文件并将其转换为csv,然后将文件放入另一个桶中。我会更新我的答案