[英]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.