[我有一条数据管道将DynamoDB表导出到S3存储桶,因此我可以将S3文件用于QuickSight,Athena和Forecast等服务。
但是,要使我的S3文件可与这些服务一起使用,我需要将文件格式化为csv格式:
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等服务?我最好也使用Data Pipeline进行数据转换。
雅典娜可以读取JSON data。
您还可以使用DynamoDB streams将数据流式传输到S3。这是博客文章的链接,其中包含最佳实践和设计模式,用于将数据从DynamoDB流到S3 to be used with Athena。
您可以使用DynamoDB streams to trigger和AWS Lambda函数,该函数可以将transform the data并将其存储在Amazon S3,Amazon Redshift等中。使用AWS Lambda,您还可以触发Amazon Forecast重新训练或传递数据到Amazon Forecast进行预测。
或者,您可以使用Amazon Data Pipeline将数据写入当前拥有的S3存储桶中。然后,使用计划运行Lambda函数的cloud watch event或运行Lambda函数的S3 event notification。 lambda函数可以转换文件并将其存储在另一个S3存储桶中以进行进一步处理。