将多个 AWS Kinesis Firehose 流发送到具有不同前缀的同一个 S3 存储桶中有什么缺点吗?

Are there any downsides to sending multiple AWS Kinesis Firehose streams into the same S3 bucket with different prefixes?

我们的目标是将多个流从我们的应用程序发送到 Redshift 进行分析。我们中的一个人想到了将所有流发送到具有不同前缀的同一个桶中。目的是简化我们的 IAM 角色和 S3 存储桶的使用。通过这种方式,我们可以为每个环境(开发、暂存和生产)提供一个存储桶,所有流都将 运行 通过。我对这项技术有些陌生,但这似乎是一种非标准方法,我担心它可能会在未来引入意想不到的瓶颈。有人试过这个吗?结果如何?

如果前缀不同,它应该可以很好地扩展。我看到的 S3 的唯一瓶颈是当我们使用版本控制并且没有删除“删除标记”时。否则,我看到一个存储桶中的数据量较低,并且工作正常。

对于您期望的数据量 - 每月几百万条消息,5000 条或更少 - 我见过一个 S3 存储桶,它可能有相当于多年的数据,所有小对象,结构是根据 AWS建议 - 扁平结构,长随机哈希仅在根中。该应用程序成功了。

数千万以下的对象可以有一个规则的“文件夹”结构,没有任何问题。我在几个根“文件夹”中看到了超过 5000 万个较小的对象。