簡體   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