如何使用散列键检索所有条目作为dynamo DB中的特定模式?

时间:2012-10-05 06:11:03

标签: amazon-dynamodb data-retrieval

我是亚马逊网络服务的新手。我想检索dynamo DB表中的所有条目,这些条目在其哈希键中有特定的单词。它类似于在oracle DB中使用like运算符。我该怎么做?如果不可能,我如何检索表中的所有条目而不对哈希键给出任何约束,以便稍后我可以遍历所有条目以匹配单词?

1 个答案:

答案 0 :(得分:14)

DynamoDB的一般想法:

请不要像在MySQL那样考虑DynamoDB。 DynamoDB 只是一个键:值存储,带有几个细节。

关键的基础:价值存储是:

  

要么你知道钥匙,要得到你的价值;

     

要么你没有,你得到了整个表。

在DynamoDB特定情况下,您可以

  1. 使用 GetItem
  2. 检索知道整个密钥的项目
  3. 使用 hash_key
  4. 检索给定 Query 下的所有项目,可能应用过滤器
  5. 使用 Scan
  6. 检索整个表格,可能应用过滤器

    这就是说,Scan 昂贵。你永远不应该使用它,否则你的设计很可能是错误的。

    特定于您的问题:

    在您的情况下,听起来您会想要将您的密钥拆分为

    • hash_key
    • range_key

    然后,您可以使用Query来获取所有共享hash_key的项目。使用Query,您可以应用BEGINS_WITH等过滤器来缩小范围。

    请注意,所有(hash_keyrange_key)元组都必须是唯一的。