繁体   English   中英

DynamoDB无需使用主键即可进行查询的最佳解决方案

[英]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行可以忽略不计-但是我想以正确的行业标准方式来做事情。 还是这种情况的最佳解决方案,就是简单地扫描表-在表太大时将它们拆分为不同的用户组?

根据您的应用程序,这里有两种方法:

  1. 如果您只想通过“ Name字段查询该表,请更改该表,使其具有Name的分区键而不是StaffID DynamoDB不是SQL-除非您实际使用它,否则无需将所有内容都键入ID字段。 (请注意,您实际上无法“更改”现有DynamoDB表上的分区键-您必须重建表)。
  2. 如果要通过StaffIDName有效查询,请使用Name字段为表创建一个全局二级索引 请注意,全局二级索引既需要它们自己的预配置吞吐量,又需要存储,这两者当然是相等的。

除了一点点:这与您使用Python接口无关,它适用于所有DynamoDB访问。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM