当前位置: 首页 > 知识库问答 >
问题:

amazon dynamodb中的分区键和排序键有什么区别?

佴阳曦
2023-03-14

与主键、复合键和候选键相比,dynamodb中的分区键和排序键是什么?

共有1个答案

傅乐湛
2023-03-14

分区键用于对数据进行分区。具有相同分区键的数据存储在一起,允许您在1次查询中查询具有相同分区键的数据。

(可选)排序键确定具有相同分区键的数据的存储顺序。使用智能的排序键可以在一个查询中查询多个项目。

例如:假设我正在存储多个应用程序的日志数据。我的分区键可以是应用程序名,排序键可以是日志的时间戳。这使我可以使用BEGINS WITH操作符在1次查询中查询某个特定应用程序上一小时的所有日志,甚至可以使用BETWEEN操作符查询某个应用程序上周三的所有日志。

分区键和可选排序键构成表的主键,因此它们必须是唯一的。此外,它们是不可变的。

分区键和排序键的选择应该基于最重要的访问模式。如果您有其他访问模式,可以通过使用全局二级索引来适应它们,但这会带来成本。

 类似资料:
  • 我试图使用batchGetItem从表中返回多个项的属性,但似乎它只适用于分区键和范围键的组合,但是如果我只想通过主键识别请求的项,该怎么办?唯一的方法是创建不带范围键的表吗? 根据官方留档: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.Partitions.html 如果表有一个复合主键(分

  • 我有一个带有分区键(UUID)的DynamoDB表,其中有几个属性(如名称、电子邮件、创建日期等)。创建日期是项目中的一个属性,其格式为YYYY-MM-DD。但现在有一个要求更改-我必须根据创建日期对其进行排序,并提供整个数据(也就是说,我不能只将数据放在某个特定分区上,而是以排序方式将所有分区中的所有数据都放在一起。我知道这可能需要DynamoDB花费时间从所有分区中提取数据并在之后进行排序。我

  • 我正在尝试使用bash中的AWS CLI删除同时具有分区和排序键的DynamoDB表中的所有项目。到目前为止,我发现的最好的事情是: 但这对于同时具有分区键和排序键的表不起作用,而且我还不能使它对这样的表起作用。知道如何修改脚本以使其适用于具有复合键的表吗?

  • 我试图查询具有分区键和排序键的表(但是分区键和排序键是1:1,我只想使用分区键[仅返回一项]进行查询)。 这是我尝试过的代码,但没有成功(testId是分区键名,1234567890是字符串形式的分区键值);你们都知道我可以只使用分区键进行查询的方法吗?记住,由于分区键和排序键是1:1,所以只会返回一个项?提前非常感谢您。[这是我的第一篇堆栈溢出帖子-很抱歉,如果我用词不当,我很乐意回答关于我的措

  • 我试图优化两个spark dataframes之间的联接查询,让我们将它们称为df1、df2(在公共列“saleid”上联接)。df1非常小(5M),所以我在spark集群的节点中广播它。df2非常大(200米行),所以我尝试通过“saleid”对它进行桶/重新分区。 例如: 分区: 水桶: 我不知道哪一个是正确的技术使用。谢谢。