Ale*_*x R 2 amazon-s3 amazon-web-services aws-lambda
我需要在 AWS S3 中存储数百万个小型 JSON 对象(每个对象大约 2,500 字节),并且需要能够通过三种不同的方式检索它们:
对象键将按时间戳组织,因此按时间戳范围检索对象将非常快。此外,共享相同时间戳(例如相同分钟)的对象可以连接成每行包含一个 JSON 对象的单个 S3 对象。组合可以提高写入性能,并且还可以与 EMR 和 Athena 很好地配合。
然而,通过 ID 检索将非常慢。我需要一种方法来相对快速地检索大量 ID,例如检索 100,000 个对象的时间戳(给定 100,000 个 ID 的列表),而无需扫描整个数据集的有效负载。
在这种情况下,哪种 AWS 服务可以提供对 S3 内容进行索引的最佳方式?
在发布这个问题后的 10 个月里,我尝试使用 DynamoDB,并在基于 MySQL 的解决方案上挣扎了一段时间,该解决方案甚至投入了生产,但存在稳定性问题。最后我花了一些时间进行重构,并得出了一个我最初没有考虑过的解决方案:将索引作为 gzip 压缩的 JSON 文件存储在 S3 本身中,并将它们缓存在需要使用索引进行查询的客户端中。显然,需要考虑有关数据延迟等的一些要求,但一般来说,我发现这种方法是最简单的,在原始问题中描述的用例中具有合理的性能。
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           6171 次  |  
        
|   最近记录:  |