我是亚马逊网络服务的新手。我想检索 dynamo DB 表中在其哈希键中有特定单词的所有条目。它类似于在 oracle DB 中使用 like 运算符。我该怎么做?如果不可能,我如何检索表中的所有条目而不对哈希键提供任何约束,以便稍后我可以遍历所有条目以匹配单词?
问问题
6895 次
1 回答
16
DynamoDB 的一般想法:
请不要像对待 MySQL 那样考虑 DynamoDB。DynamoDB只是一个键值存储,有几个细节。
key:value 存储的基本原理是:
要么你知道关键,得到你的价值;
要么你不这样做,你就会得到整张桌子。
在 DynamoDB 特定情况下,您可以
- 检索一个知道整个密钥的项目
GetItem
- 检索给定下
hash_key
的所有项目,可能应用过滤器,使用Query
- 检索整个表,可能应用过滤器,使用
Scan
这说Scan
起来既慢又贵。你永远不应该使用它,否则你的设计很可能是错误的。
具体到您的问题:
就您而言,听起来您希望将密钥拆分为
hash_key
range_key
然后您可以使用Query
获取所有项目共享hash_key
。使用Query
,您可以应用过滤器BEGINS_WITH
来缩小范围。
请注意,所有 ( hash_key
, range_key
) 元组都必须是唯一的。
于 2012-10-05T13:45:17.167 回答