我在DyamoDB中有一个类似的表:
StaffID, Name, Email, Office
1514923 Winston Smith, SmithW@company.com, 101
它只有大约100行。在
我正在试用Amazon的Alexa,并尝试将其用于基于语音的查询,例如
'Where is Winston Smith?'
问题是,当使用Alexa函数从表中提取结果时,它永远不会通过主键StaffID
-因为用户不会问:
'Where is 1514923?'
据我所知,查询非主键值的速度非常慢。。。在DynamoDB中使用Python时,是否有合适的解决方案?在
我知道只有100行,这是可以忽略不计的,但是我想用正确的,行业标准的方式来做事情。或者,对于这种情况,最好的解决方案是,简单地扫描表,当表太大时将它们拆分为不同的用户组?在
根据您的应用,这里有两种方法:
Name
字段查询此表,请更改该表,使其分区键为Name
,而不是StaffID
。DynamoDB不是SQL-没有必要将所有的东西都键入ID字段,除非您实际使用它。(请注意,实际上不能“更改”现有DynamoDB表上的分区键-必须重新构建表)。在StaffID
和Name
高效地查询,请使用Name
字段为表创建一个global secondary index。请注意,全局二级索引需要它们自己提供的吞吐量和存储空间,这两者当然是等价的。在次要问题:这与您使用Python接口无关,它适用于所有DynamoDB访问。在
相关问题 更多 >
编程相关推荐