[英]DynamoDB best solution to making queries without using the primary key
我在DyamoDB中有一个与此表类似的表:
StaffID, Name, Email, Office
1514923 Winston Smith, SmithW@company.com, 101
它只有大约100行。
我正在尝试使用Amazon的Alexa,并可能将其用于基于语音的查询,例如
“温斯顿·史密斯在哪里?”
问题在于,当使用Alexa函数从表中提取结果时,永远不会通过主键StaffID
-因为您不会让用户问:
1514923在哪里?
根据我的阅读,查询非主键值的速度非常慢...将Python与DynamoDB结合使用时,是否有合适的解决方案?
我知道只有100行可以忽略不计-但是我想以正确的行业标准方式来做事情。 还是这种情况的最佳解决方案,就是简单地扫描表-在表太大时将它们拆分为不同的用户组?
根据您的应用程序,这里有两种方法:
Name
字段查询该表,请更改该表,使其具有Name
的分区键而不是StaffID
。 DynamoDB不是SQL-除非您实际使用它,否则无需将所有内容都键入ID字段。 (请注意,您实际上无法“更改”现有DynamoDB表上的分区键-您必须重建表)。 StaffID
和Name
有效查询,请使用Name
字段为表创建一个全局二级索引 。 请注意,全局二级索引既需要它们自己的预配置吞吐量,又需要存储,这两者当然是相等的。 除了一点点:这与您使用Python接口无关,它适用于所有DynamoDB访问。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.