Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 您希望何时使s3对象键更相似_Amazon S3 - Fatal编程技术网

Amazon s3 您希望何时使s3对象键更相似

Amazon s3 您希望何时使s3对象键更相似,amazon-s3,Amazon S3,因此S3在分区数据时使用对象键,并且您应该使键具有一定的随机性,以便跨多个分区分配工作负载。我的问题是,在任何情况下,您是否希望使用类似的密钥?如果不是,那么为什么AWS会使用密钥对数据进行分区,而不是对数据本身进行随机分区 我这样问是因为我认为这是一种奇怪的设计,因为如果开发人员生成具有模式的键,那么他们很容易在分区中出错,但它也会阻止开发人员以逻辑方式创建密钥,因为这无疑会导致模式和数据被不正确地分区。您似乎指的是,其中说明: 本主题中的Amazon S3最佳实践指南仅适用于每秒例行处理10

因此S3在分区数据时使用对象键,并且您应该使键具有一定的随机性,以便跨多个分区分配工作负载。我的问题是,在任何情况下,您是否希望使用类似的密钥?如果不是,那么为什么AWS会使用密钥对数据进行分区,而不是对数据本身进行随机分区


我这样问是因为我认为这是一种奇怪的设计,因为如果开发人员生成具有模式的键,那么他们很容易在分区中出错,但它也会阻止开发人员以逻辑方式创建密钥,因为这无疑会导致模式和数据被不正确地分区。

您似乎指的是,其中说明:

本主题中的Amazon S3最佳实践指南仅适用于每秒例行处理100个或更多请求的情况。如果您的典型工作负载仅涉及每秒100个请求的偶尔突发,并且每秒少于800个请求,那么您不需要遵循这些准则

这不太可能影响大多数应用程序,但如果应用程序确实具有如此高的通信量,则将请求分散到keyname空间可以提高性能


AWS没有解释他们为什么以这种方式设计Amazon S3。

您似乎指的是,其中说明:

本主题中的Amazon S3最佳实践指南仅适用于每秒例行处理100个或更多请求的情况。如果您的典型工作负载仅涉及每秒100个请求的偶尔突发,并且每秒少于800个请求,那么您不需要遵循这些准则

这不太可能影响大多数应用程序,但如果应用程序确实具有如此高的通信量,则将请求分散到keyname空间可以提高性能

AWS没有解释他们为什么以这种方式设计AmazonS3

因此S3在划分数据时使用对象键

等等。你的问题似乎是以这个假设为前提的,但它是不正确的

S3不使用对象键对数据进行分区。正如你所说,这确实是一个非常“奇怪的设计”(或者更糟)

S3使用对象键来划分bucket中对象的索引——否则对象的索引将以不支持按排序顺序枚举对象键的顺序存储,这也将消除按前缀列出对象的能力,或者使用分隔符来识别公共前缀——或者需要一个二级索引,这只会加剧潜在的扩展问题,并将同一问题降低一个级别

当您希望按需查找具有公共前缀(在同一“文件夹”中)的对象时,就需要使用类似的键。存储日志文件是一个简单的例子,
yyyy/mm/dd/…
。请注意,当各种服务将日志文件存储在bucket中时(S3日志、CloudFront、ELB),对象键是按如下顺序排列的,因为日期和时间在对象键中

当S3进行分区拆分时,只拆分索引。数据已被持久存储,不会移动。潜在的性能考虑因素与索引的性能有关,而不是与对象数据的实际存储有关

因此S3在划分数据时使用对象键

等等。你的问题似乎是以这个假设为前提的,但它是不正确的

S3不使用对象键对数据进行分区。正如你所说,这确实是一个非常“奇怪的设计”(或者更糟)

S3使用对象键来划分bucket中对象的索引——否则对象的索引将以不支持按排序顺序枚举对象键的顺序存储,这也将消除按前缀列出对象的能力,或者使用分隔符来识别公共前缀——或者需要一个二级索引,这只会加剧潜在的扩展问题,并将同一问题降低一个级别

当您希望按需查找具有公共前缀(在同一“文件夹”中)的对象时,就需要使用类似的键。存储日志文件是一个简单的例子,
yyyy/mm/dd/…
。请注意,当各种服务将日志文件存储在bucket中时(S3日志、CloudFront、ELB),对象键是按如下顺序排列的,因为日期和时间在对象键中

当S3进行分区拆分时,只拆分索引。数据已被持久存储,不会移动。潜在的性能考虑因素与索引的性能有关,而不是与对象数据的实际存储有关