如何使用保留策略在 S3 存储桶上获得 EMRFS 一致视图?

How to have EMRFS consistent view on S3 buckets with retention policy?

我正在使用 AWS EMR 计算集群(版本 5.27.0),它使用 S3 进行数据持久化。 该集群同时读取和写入 S3。

S3 有一个问题 eventual consistency, because of which after writing data, it cannot be immediately listed. Due to this I use EMRFS 与 DynamoDB 存储新写入的路径以立即列出。

现在的问题是我必须在 S3 上设置保留策略,因为超过一个月的数据将从 S3 中删除。但是,这样做时,数据不会从 EMRFS DynamoDB table 中删除,从而导致一致性问题。

我的问题是,如何确保在 S3 中设置保留策略时,相同的路径从 DynamoDB 中删除 table?

我想出的一个天真的解决方案是定义一个定期触发的 Lambda,并在 DynamoDB 记录上手动设置 TTL,比如 1 天。有比这更好的方法吗?

您可以使用与 S3 对象相同的过期策略配置 DynamoDB

https://aws.amazon.com/blogs/aws/new-manage-dynamodb-items-using-time-to-live-ttl/

在这种情况下,您要确保 DynamoDB 和 S3 具有相同的现有对象