如何使用AWS Glue在AWS DyanmoDB上执行ETL作业以仅在新数据上获取S3中的CSV文件

时间:2019-04-04 11:15:20

标签: apache-spark amazon-s3 amazon-dynamodb etl aws-glue

我正在尝试将DynamoDB表中存储的产品评级数据转移到一个csv文件,该文件可以由部署在AWS Sagemaker上的推荐模型进行处理。

我正在使用AWS Glue将数据转换为ML模型可以对其进行处理以进行训练的.csv文件,问题是,每次对整个数据库表进行转换时,都会创建重复数据并降低处理速度。< / p>

我找到了解决重复数据问题的方法,方法是在执行ETL作业之前删除旧的s3对象,但感觉像是暂时的 错误修复。

我想做的是在dyanmodb表中收集新数据。 ETL作业每天或每周收集一次新数据,如果在指定期间内有新数据,则将新数据添加到s3存储桶中,并对模型进行重新训练。

1 个答案:

答案 0 :(得分:0)

如果您仅关注新记录,而不必担心对旧记录的更新,则

  • 您可以在dynamodb表上启用流
  • 具有lambda函数读取它们并将新记录追加到s3bucket / new / date-file.csv中的csv文件中。
  • 在每个ETL之后,将文件移至s3bucket / archive / date-file.csv。