Amazon dynamodb 如何在dynamo DB中以特定模式检索具有哈希键的所有条目?

Amazon dynamodb 如何在dynamo DB中以特定模式检索具有哈希键的所有条目?,amazon-dynamodb,data-retrieval,Amazon Dynamodb,Data Retrieval,我是亚马逊网络服务的新手。我想检索dynamo DB表中的所有条目,它们的哈希键中有一个特定的字。它类似于在oracle DB中使用like运算符。我怎么做?如果不可能,我如何检索表中的所有条目而不对哈希键提供任何约束,以便以后我可以迭代所有条目以匹配单词?General DynamoDB Thinks: 请不要像对待MySQL那样看待DynamoDB。DynamoDB只是一个键:值存储,有几个细节 键:值存储的基本原理是: 要么你知道关键,得到你的价值 要么你不这样做,你就得到了整张桌子 在D

我是亚马逊网络服务的新手。我想检索dynamo DB表中的所有条目,它们的哈希键中有一个特定的字。它类似于在oracle DB中使用like运算符。我怎么做?如果不可能,我如何检索表中的所有条目而不对哈希键提供任何约束,以便以后我可以迭代所有条目以匹配单词?

General DynamoDB Thinks: 请不要像对待MySQL那样看待DynamoDB。DynamoDB只是一个键:值存储,有几个细节

键:值存储的基本原理是:

要么你知道关键,得到你的价值

要么你不这样做,你就得到了整张桌子

在DynamoDB特定的情况下,您可以

  • 使用
    GetItem
  • 使用
    查询
    检索给定
    散列\u项下的所有项目,可能会应用筛选器
  • 使用
    扫描
    检索整个表,可能会应用过滤器
  • 也就是说,
    Scan
    既慢又贵。你不应该使用它,否则你的设计很可能是错误的

    针对您的问题: 在您的情况下,听起来您需要将密钥拆分为

    • hash\u键
    • range\u键
    然后您可以使用
    Query
    获取共享
    hash\u key
    的所有项目。使用
    Query
    ,您可以应用类似
    BEGINS\u With
    的过滤器来缩小范围


    请注意,所有(
    hash\u key
    range\u key
    )元组都必须是唯一的。

    值得一提的是,即使您执行查询,并且希望在查询中应用筛选器,结果最多只能是1MB,这意味着如果查询超过1MB,您将拥有所有要过滤的数据。这让我希望AWS和博客不要将DynamoDB作为“不仅仅是SQL”数据存储进行营销。我从来没有在任何键值商店工作过,在那里你不能要求提供键值列表。在他们的文档中,我没有看到对在另一个表/查找中维护键的要求表示赞同@yadutaf对扫描的评论恰到好处——这几乎就像他们添加了该功能,以便您可以知道何时使用了错误的数据存储。